software quality assurance framework

128
Software Quality Assurance Framework (SQA) Yujuan Dou 窦玉娟 2008/11/28

Upload: harunrao

Post on 07-Apr-2015

2.055 views

Category:

Documents


5 download

TRANSCRIPT

Software Quality Assurance Framework (SQA)

Yujuan Dou 窦玉娟

2008/11/28

Whole Course Plan

Software Quality Assurance Framework Test RequirementTest PlanningTest Case DesignTest Execution and Defect ManagementTest Reporting

Home WorkWrite Test RequirementWrite Test Plan (Group List)Delivery the test cases Summarize the test results and deliver a test reportHome work delivery: To: [email protected], Cc: [email protected]

AgendaWhat Is Software Quality? Software Quality Assurance Components of Quality Assurance

Software TestingQuality Control Software Configuration Management

Agenda-con.Software Quality Assurance Plan

Steps to Develop and Implement a Software Quality Assurance Plan

Quality Standards.Activities and responsibilities of SQA team.Responsibilities of testers.Characteristics of Good SQA Engineer.

What Is Software Quality?

What Is Software Quality?Professional Views about Software Quality

Conformance to requirements.The first is that quality means “meeting requirements.”

Fitness for use.Another definition of quality, the customer’s, is the one we use. With this definition, the customer defines quality as to whether the product or service does what the customer needs.

Software Quality is something everyone wants. Managers know that they want high quality, software developers know they want to produce a quality product, and users insist that software work consistently and be reliable.

Quality Assurance

Quality Assurance [ISO 9000]:All those planned and systematic actions necessary to provide adequate confidence that a product or service will satisfy requirements for quality

Software quality assurance [IEEE]:

1. A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements.2. A set of activities designed to evaluate the process by which the products are developed or manufactured.

Role of Customer

Customers don’t buy products, they buy assurances that their expectations with the products would met.

You also, can only sell assurances – in other words, Quality.

Customer is in absolute position to judge the quality.

Software Quality Assurance

A formal definition of software quality assurance is that it is the systematic activities providing evidence of the fitness for use of the total software product.Software quality assurance is achieved through the use of established guidelines for quality control to ensure the integrity and prolonged life of software.

Objectives of Software Quality Assurance

Only Quality Control (testing) is not enough:

What would you do if your software does not pass the QC test?QC is a reactive approach, not proactive one.

Quality Assurance includes Proactive as well as Reactive approaches.

PPQA in CMMI

The purpose of Process and Product Quality Assurance is to provide staff and management with objective insight into processes and associated work products.

Measuring Software Quality

Usually recognized in the form of bugs or defects.Defect rate (defect/KLOC or defects/FP)Reliability (Failure free operation)

IBM monitors CUPRIMDSO – Capability (Functionality), Usability, Performance, Reliability, Installability, Maintainability, Documentation, Service, & Overall.

HP monitors FURPS – Functionality, Usability, Reliability, Performance & Service.

Purpose of SQA Activities

Practically, zero defect product is not possible to achieve.The purpose of quality assurance practices are to minimize the number of defects.How much efforts are needed to minimize the number of defects?

are you developing a customized project or product?how critical your application is?

Quality assurance is the function responsible for managing quality. The word “assurance” means that if the processes are followed, management can be assured of product quality.Quality assurance is a catalytic function that

should encourage quality attitudes and discipline on the part of management and workers. Successful quality assurance managers know how to make people quality conscious and to make them recognize the benefits of quality to themselves and to the organization.

It is not the sole responsibility of the software quality assurance group but is determined by the consensus of the project manager, project leader, project personnel, and users.

Developer to Tester Ratio

There is no standard developer to tester ratio in IT industry.However, industry does have some norms:

For customized projects, ratio must be at least 3:1For products, ratio can be as high as 1:3

Organizational Positioning of SQA (Observed)

CEOCEO

DevelopmentManager

DevelopmentManager HR

Manager

HR Manager Admin

Manager

Admin Manager

SQAManager

SQAManager

SCMManager

SCMManager

Project Manager 1

Project Manager 1

ProjectManager 2

ProjectManager 2

Organizational Positioning of SQA (Recommended)

CEOCEO

DevelopmentManager

DevelopmentManager SQA

Manager

SQA Manager SCM

Manager

SCM Manager Support

Manager

SupportManagerAdmin

Manager

AdminManager

Project Manager 1

Project Manager 1

ProjectManager 2

ProjectManager 2

Top Management Support to SQA Department

Proper staffing and hiringSeparate budget for payroll and running expensesSeparate capital budget Test facilities and environmentTrust and confidenceAuthority

• Don’t force to close defects• Don’t force to sign acceptance• Act as an arbitrator for the conflicts between QA/Dev.

Components of Quality Assurance

Components of Quality Assurance

Most software quality assurance activities can be categorized into software testing, that is, verification and validation, software configuration management, and quality control. But the success of a software quality assurance program also depends on a coherent collection of standards, practices, conventions, and specifications, as shown in Exhibit 1.1.

Exhibit 1.1. Quality Assurance Components

Software Testing

Software testing is a popular risk management strategy. It is used to verify that functional requirements were met. The limitation of this approach,however, is that by the time testing occurs, it is too late to build quality into the product.

Software Testing

Tests are only as good as the test cases, but they can be inspected to ensure that all the requirements are tested across all possible combinations of inputs and system states.However, not all defects are discovered during testing.

Software TestingSoftware testing includes the activities outlined in this text, including verification and validation activities. In many organizations, these activities, or their supervision, are included within the charter for the software quality assurance function. The extent to which personnel independent of design and coding should participate in software quality assurance activities is a matter of institutional, organizational, and project policy.

Software TestingThe major purpose of verification and validation activities is to ensure that software design, code, and documentation meet all the requirements imposed on them. Examples of requirements include user requirements; specifications derived from and designed to meet user requirements; code review and inspection criteria; test requirements at the modular, subsystem, and integrated software levels; and acceptance testing of the code after it has been fully integrated with hardware.

Software Testing

During software design and implementation, verification helps determine whether the products of one phase of the software development life cycle fulfill the requirements established during the previous phase. The verification effort takes less time and is less complex when conducted throughout the development process.

Quality Control

Quality control is defined as the processes and methods used to monitor work and observe whether requirements are met. It focuses on reviews and removal of defects before shipment of products.

Quality Control

Quality control should be the responsibility of the organizational unit producing the product. It is possible to have the same group that builds the product perform the quality control function, or to establish a quality control group or department within the organizational unit that develops the product.

Quality Control

Quality control consists of well-defined checks on a product that are specified in the product quality assurance plan. For software products, quality control typically includes specification reviews, inspections of code and documents, and checks for user deliverables.

Quality Control

Usually, document and product inspections are conducted at each life cycle milestone to demonstrate that the items produced are within the criteria specified by the software quality assurance plan. These criteria are normally provided in the requirements specifications, conceptual and detailed design documents, and test plans.

The documents given to users are the requirement specifications, design documentation, results from the user acceptance test, the software code, user guide, and the operations and maintenance guide. Additional documents are specified in the software quality assurance plan.

Quality control can be provided by various sources. For small projects, the project personnel’s peer group or the department’s software quality coordinator can inspect the documents. On large projects, a configuration control board may be responsible for quality control. The board may include the users or a user representative, a member of the software quality assurance department, and the project leader.

Inspections are traditional functions of quality control, that is, independent examinations to assess compliance with some stated criteria. Peers and subject matter experts review specifications and engineering work products to identify defects and suggest improvements.They are used to examine the software project for adherence to the written project rules at a project’s milestones and at other times during the project’s life cycle as deemed necessary by the project leader or the software quality assurance personnel. An inspection may be a detailed checklist for assessing compliance or a brief checklist to determine the existence of such deliverables as documentation. A report stating the purpose of the inspection and the deficiencies found goes to the project supervisor, project leader, and project personnel for action.

Quality ControlResponsibility for inspections is stated in the software quality assurance plan. For small projects, the project leader or the department’s quality coordinator can perform the inspections.For large projects, a member of the software quality assurance group may lead an inspection performed by an audit team, which is similar to the configuration control board mentioned previously. Following the inspection, project personnel are assigned to correct the problems on a specific schedule.

Quality Control

Quality control is designed to detect and correct defects, whereas quality assurance is oriented toward preventing them. Detection implies flaws in the processes that are supposed to produce defect-free products and services.Quality assurance is a managerial function that prevents problems by heading them off, and by advising restraint and redirection.

Software Configuration Management

Software configuration management is concerned with labeling, tracking, and controlling changes in the software elements of a system. It controls the evolution of a software system by managing versions of its software components and their relationships.

The purpose of software configuration management is to identify all the interrelated components of software and to control their evolution throughout the various life cycle phases. Software configuration management is a discipline that can be applied to activities including software development, document control, problem tracking, change control, and maintenance. It can provide a high cost savings in software reusability because each software component and its relationship to other software components have been defined.

Software Configuration Management

Elements of Software Configuration Management

Software Quality Assurance Plan

The objectives of software quality are typically achieved by following a software quality assurance plan that states the methods the project will employ to ensure the documents or products produced and reviewed at each milestone are of high quality. Such an explicit approach ensures that all steps have been taken to achieve software quality and provides management with documentation of those actions.The plan states the criteria by which quality activities can be monitored rather than setting impossible goals, such as no software defects or 100 percent reliable software.

Software Quality Assurance Plan

The software quality assurance (SQA) plan is an outline of quality measures to ensure quality levels within a software development effort. The plan is used as a baseline to compare the actual levels of quality during development with the planned levels of quality. If the levels of quality are not within the planned quality levels, management will respond appropriately as documented within the plan.

The plan provides the framework and guidelines for development of understandable and maintainable code. These ingredients help ensure the quality sought in a software project. An SQA plan also provides the procedures for ensuring that quality software will be produced or maintained in-house or under contract. These procedures affect planning, designing, writing, testing, documenting, storing, and maintaining computer software.It should be organized in this way because the plan ensures the quality of the software rather than describing specific procedures for developing and maintaining the software.

Software Quality Assurance Plan

Steps to Develop and Implement a Software Quality Assurance PlanStep 1. Document the PlanStep 2. Obtain Management AcceptanceStep 3. Obtain Development AcceptanceStep 4. Plan for Implementation of the

SQA PlanStep 5. Execute the SQA Plan

Step 1. Document the PlanThe software quality assurance plan should include the sections below:Purpose Section — This section delineates the specific purpose and scope of the particular SQA plan. It should list the name(s) of the software items covered by the SQA plan and the intended use of the software. It states the portion of the software life cycle covered by the SQA plan for each software item specified.• Reference Document Section — This section provides a complete list of documents referenced elsewhere in the text of the SQA plan.

• Management Section — This section describes the project’s organizational structure, tasks, and responsibilities.• Documentation Section — This section identifies the documentation governing the development, verification and validation, use, and maintenance of the software. It also states how the documents are to be checked for adequacy. This includes the criteria and the identification of the review or audit by which the adequacy of each document will be confirmed.

Standards, Practices, Conventions, and Metrics Section — This section identifies the standards, practices, conventions, and metrics to be applied, and also states how compliance with these items is to be monitored and assured.• Reviews and Inspections Section — This section defines the technical and managerial reviews, walkthroughs, and inspections to be conducted. It also states how the reviews, walkthroughs, and inspections are to be accomplished including follow-up activities and approvals.

Software Configuration Management Section —This section is addressed in detail in the project’s software configuration management plan.Problem Reporting and Corrective Action Section — This section is addressed in detail in the project’s software configuration management plan.Tools, Techniques, and Methodologies Section — This section identifies the special software tools, techniques, and methodologies that support SQA, states their purposes, and describes their use.

Code Control Section — This section defines the methods and facilities used to maintain, store, secure, and document the controlled versions of the identified software during all phases of development. This may be implemented in conjunction with a computer program library and/or may be provided as a part of the software configuration management plan.

Media Control Section — This section states the methods and facilities to be used to identify the media for each computer product and the documentation required to store the media, including the copy and restore process, and protects the computer program physical media from unauthorized access or inadvertent damage or degradation during all phases of development. This may be provided by the software configuration management plan.

Supplier Control Section — This section states the provisions for assuring that software provided by suppliers meets established requirements. In addition, it should state the methods that will be used to assure that the software supplier receives adequate and complete requirements. For previously developed software, this section states the methods to be used to assure the suitability of the product for use with the software items covered by the SQA plan. For software to be developed, the supplier will be required to prepare and implement an SQA plan in accordance with this standard. This section will also state the methods to be employed to assure that the developers comply with the requirements of this standard.

Records Collection, Maintenance, and Retention Section — This section identifies the SQA documentation to be retained. It states the methods and facilities to assemble, safeguard, and maintain this documentation, and will designate the retention period. The implementation of the SQA plan involves the necessary approvals for the plan as well as development of a plan for execution. The subsequent evaluation of the SQA plan will be performed as a result of its execution.Testing Methodology — This section defines the testing approach, techniques, and automated tools that will be used.

Step 2. Obtain Management Acceptance

Management participation is necessary for the successful implementation of an SQA plan. Management is responsible both for ensuring the quality of a software project and for providing the resources needed for software development.

The level of management commitment required for implementing an SQA plan depends on the scope of the project. If a project spans organizational boundaries, approval should be obtained from all affected areas.Once approval has been obtained, the

SQA plan is placed under configuration control.

In the management approval process, management relinquishes tight control over software quality to the SQA plan administrator in exchange for improved software quality. Software quality is often left to software developers. Quality is desirable, but management may express concern as to the cost of a formal SQA plan. Staff should be aware that management views the program as a means of ensuring software quality, and not as an end in itself.

To address management concerns, software life cycle costs should be formally estimated for projects implemented both with and without a formal SQA plan. In general, implementing a formal SQA plan makes economic and management sense.

Step 3. Obtain Development Acceptance

Because the software development and maintenance personnel are the primary users of an SQA plan, their approval and cooperation in implementing the plan are essential. The software project team members must adhere to the project SQA plan; everyone must accept it and follow it.

No SQA plan is successfully implemented without the involvement of the software team members and their managers in the development of the plan. Because project teams generally have only a few members, all team members should actively participate in writing the SQA plan. When projects become much larger (i.e., encompassing entire divisions or departments), representatives of project subgroups should provide input. Constant feedback from representatives to team members helps gain acceptance of the plan.

Step 4. Plan for Implementation of the SQA Plan

The process of planning, formulating, and drafting an SQA plan requires staff and word-processing resources. The individual responsible for implementing an SQA plan must have access to these resources. In addition, the commitment of resources requires management approval and, consequently, management support. To facilitate resource allocation, management should be made aware of any project risks that may impede the implementation process (e.g., limited availability of staff or equipment). A schedule for drafting, reviewing, and approving the SQA plan should be developed.

Step 5. Execute the SQA PlanThe actual process of executing an SQA plan by the software development and maintenance team involves determining necessary audit points for monitoring it. The auditing function must be scheduled during the implementation phase of the software product so that improper monitoring of the software project will not hurt the SQA plan. Audit points should occur either periodically during development or at specific project milestones (e.g., at major reviews or when part of the project is delivered).

The SQA plan defines the means that will be used to ensure that software developed for a specific product satisfies the user’s requirements and is of the highest quality possible within project constraints. In order to do so, it must first ensure that the quality target is clearly defined and understood.

It must consider management, development, and maintenance plans for the software.

The SQA plan should be consistent with the software configuration management plan (refer to the Software Configuration Management KA).

The SQA plan identifies documents, standards, practices, and conventions governing the project and how they will be checked and monitored to ensure adequacy and compliance.

The SQA plan also identifies measures, statistical techniques, procedures for problem reporting and corrective action, resources such as tools, techniques, and methodologies, security for physical media, training, and SQA reporting and documentation.

Moreover, the SQA plan addresses the software quality assurance activities of any other type of activity described in the software plans, such as procurement of supplier software to the project or commercial off-the-shelf software (COTS) installation, and service after delivery of the software.

It can also contain acceptance criteria as well as reporting and management activities which are critical to software quality.

The specific quality activities and tasks are laid out, with their costs and resource requirements, their overall management objectives, and their schedule in relation to those objectives in the software engineering management, development, or maintenance plans.

Pairs of Terms

Prevention versus Detection

Quality cannot be achieved by assessing an already completed product.The aim, therefore, is to prevent quality defects or deficiencies in the first place, and to make the products assessable by quality assurance measures. 3

The total cost of effective quality management is the sum of four component costs:

prevention, inspection, internal failure, and external failure.

Prevention costs consist of actions taken to prevent defects from occurring in the first place. Inspection costs consist of measuring, evaluating, and auditing products or services for conformance to standards and specifications.Internal failure costs are those incurred in fixing defective products before they are delivered.

External failure costs consist of the costs of defects discovered after the product has been released. The latter can be devastating because they may damage the organization’s reputation or result in the loss of future sales.

The greatest payback is with prevention. Increasing the emphasis on prevention costs reduces the number of defects that go to the customer undetected, improves product quality, and reduces the cost of production and maintenance.

Verification versus Validation

Verification is proving that a product meets the requirements specified during previous activities carried out correctly throughout the development life cycle.and validation checks that the system meets the customer’s requirements at the end of the life cycle.

VV&TVerification

the process of evaluating a system or component to determine whether the products of the given development phase satisfy the conditions imposed at the start of that phase

Validationdetermination of the correctness of the products of software development with respect to the user needs and requirements

Testingthe process of exercising software to verify that it satisfies specified requirements and to detect faults

Verification, Validation and Testing

Verification

Validation

TestingAnyAny

Verification: Says “Are we building the product right?” All QC activities throughout the life cycle that ensure that interim deliverables meet their input specification.Validation: Says “Are we building the right product?” The test phase of the life cycle which assures that the end product meets the user’s needs.

QA

Quality assurance is the set of support activities needed to provide adequate confidence that processes are established and continuously improved in order to produce products that meet specifications and are fit for use.

QC & Auditing

Quality control is the process by which product quality is compared with applicable standards and the action taken when nonconformance is detected. Auditing is the inspection/assessment activity that verifies compliance with plans, policies, and procedures.

Software quality assurance is a planned effort to ensure that a software product fulfills these criteria and has additional attributes specific to the project, for example, portability, efficiency, reusability, and flexibility.It is the collection of activities and functions used to monitor and control a software project so that specific objectives are achieved with the desired level of confidence.

Quality Standards

Quality StandardsThe following describes the leading quality standards for IT.

ISO9000Capability Maturity Model (CMM)PCMMCMMIMalcom Baldrige National Quality AwardRUPSix Sigma

CMMI Introduction

There are 22 process areas, presented here in alphabetical order by acronym:

Causal Analysis and Resolution (CAR)Configuration Management (CM)Decision Analysis and Resolution (DAR)Integrated Project Management +IPPD (IPM+IPPD)[1]Measurement and Analysis (MA)Organizational Innovation and Deployment (OID)Organizational Process Definition +IPPD (OPD+IPPD)6Organizational Process Focus (OPF)Organizational Process Performance (OPP)Organizational Training (OT)

[1] This process area has "+IPPD" after its name because it contains a goal and practices that are specific to IPPD. The material specific to IPPD is called an "IPPD addition." All process areas with IPPD additions have "+IPPD" after their name.

Product Integration (PI)Project Monitoring and Control (PMC)Project Planning (PP)Process and Product Quality Assurance (PPQA)Quantitative Project Management (QPM)Requirements Development (RD)Requirements Management (REQM)Risk Management (RSKM)Supplier Agreement Management (SAM)Technical Solution (TS)Validation (VAL)Verification (VER)

Process and Product Quality Assurance

The purpose of Process and Product Quality Assurance (PPQA) is to provide staff and management with objective insight into processes and associated work products.

The Process and Product Quality Assurance process area involves the following:

Objectively evaluating performed processes, work products, and services against the applicable process descriptions, standards, and proceduresIdentifying and documenting noncompliance issuesProviding feedback to project staff and managers on the results of quality assurance activitiesEnsuring that noncompliance issues are addressed

The Process and Product Quality Assurance process area supports the delivery of high-quality products and services by providing the project staff and managers at all levels with appropriate visibility into, and feedback on, processes and associated work products throughout the life of the project.

SG 1 Objectively Evaluate Processes and Work Products

SP 1.1Objectively Evaluate ProcessesSP 1.2Objectively Evaluate Work Products and Services

SG 2 Provide Objective InsightSP 2.1Communicate and Ensure Resolution of Noncompliance IssuesSP 2.2Establish Records

Specific Goal and Practice Summary

Quality assurance should begin in the early phases of a project to establish plans, processes, standards, and procedures that will add value to the project and satisfy the requirements of the project and the organizational policies.

SOFTWARE QUALITY ASSURANCEINVOLVES

Establishing a Quality Assurance Group who has required independence.Participation of SQA in establishing the plans, standards and procedures for the project. Reviewing and auditing the software products and activities to ensure that they comply with the applicable procedures and standards.Providing the software project and other appropriate managers with the results of those reviews and audits.Escalating unresolved issues to an appropriate level of management.

Software Quality Assurance - Activities

SOFTWARE QUALITY ASSURNACE ACTIVITIES ARE PLANNED

A SQA plan is prepared for the software project according to a documented procedure.The SQA group’s activities are performed in accordance with the SQA plan.

ADHERENCE OF SOFTWARE PRODUCTS AND ACTIVITIES TO BE APPLICABLE STANDARDS, PROCEDURES, AND REQUIREMENTS IS VERIFIED OBJECTIVELY.

The SQA group’s activities are performed in accordance with the SQA planThe SQA group participates in the preparation and review of the project’s software development plan, standards and procedures.The SQA group reviews the software engineering activities to verify complianceThe SQA group audits designated software work products to verify compliance.

Software Quality Assurance - Activities

AFFECTED GROUPS AND INDIVIDUALS ARE INFORMED OF SOFTWARE QUALITY ASSURANCE ACTIVITIES AND RESULTS.

The SQA group periodically reports the results of its activities to the software engineering group.

Deviations identified in the software activities and software work products are documented and handled according to a documented procedure.The SQA group conducts periodic reviews of its activities and findings with customers SQA personnel, as appropriate.

Good Practices

Detailed plan for SQA groupStructuring of SQA functions and management of the group like a project itself with detailed plan, schedules, configuration management etcSLAs for SQA group alsoRotation mechanism for SQA team members for career planning Release approval authority for the SQAEffectiveness measurement of SQAs

RUP Steps for SQA

All the following text is from Rational Unified Process 7.0.

Ensure Quality Objectives are Defined for the Project

The Project Manager may not necessarily define the quality goals for the project, but ensures that these definitions are created and agreed by the customer, and captured ultimately in the Software Requirements Specification. The developing organization may also have a standard set of quality goals, in a quality policy statement, which can form the basis for these definitions.

Where possible, these objectives should be described in measurable terms. For example:

"Zero known severity 1 defects" (...and include a definition of a severity 1 defect) "Maximum 3 second response time" "User can pick up software and begin entering account information within 1 hour"

Define Quality Assurance Roles and Responsibilities

The next step is to define the organization, roles and responsibilities that will participate in these tasks. This should include the reporting channel for the results of Quality Assurance reviews. In many situations, the Quality Assurance task should submit its reports directly to the Project Review Authority.

The Rational Unified Process recommends that the Software Engineering Process Authority (SEPA) should have responsibility for the process aspects of quality, and perform process reviews and audits, as well as ensuring the proper planning and conduct of the review events described in the Review and Audit section of the Quality Assurance Plan.

Coordinate With Developers of Referenced Plans

The Quality Assurance Plan also references a number of other plans describing project standards and how various supporting process (e.g. configuration management) to be handled.

This information is used to help determine the types of Quality Assurance reviews that will be done, and their frequency.

The referenced plans would normally include the following:

Documentation Plan Measurement Plan Risk Management Plan Problem Resolution Plan Configuration Management Plan Software Development Plan Test Plan Subcontractor Management Plan

Define Quality Assurance Tasks and Schedule

Identify the tasks of Quality Assurance. Typically these reviews would include:

Audit/review of project plans to ensure they follow the defined delivery process for the project. Audit/review of project to ensure the work performed is following the project plans. Approval of deviations from the standard organizational project processes. Process improvement assessments

The Project Review Authority and Project Manager together determine the schedule for Quality Assurance reviews and audits, and the schedule is captured in the project and iteration plan, which may then be referenced from the Quality Assurance Plan.

The contract may also allow the customer to request audits.

SQA Responsibilities for a Project

SQA seeks to maintain the quality throughout the development and maintenance of the product by the execution of a variety of activities at each stage which can result in early identification of problems, an almost inevitable feature of any complex activity.

SQA Responsibilities for a Project

Review of documents developed by development team.Track the compliance with standards.Development of QA Plan (test plan + test cases).Implementation of test cases.Management of bug repository.Participating in code and design reviews.

SQA Responsibilities for a Project (cont...)

Requirements CollectionRequirements Collection

AnalysisAnalysis

Architecture & DesignArchitecture & Design

DevelopmentDevelopment

TestingTesting

DeploymentDeployment

Requirement SpecsRequirement Specs

Functional SpecsFunctional Specs

Design SpecsDesign Specs

Code & ExecutablesCode & Executables

Deployment DocsDeployment Docs

Typical SDLC phases and relevant Artifacts

ReviewsReviews

ReviewsReviews

ReviewsReviews

Implement Test Cases

Implement Test Cases

ReviewReview

SQA Responsibilities

SQA Artifacts for a Project

Requirement SpecsRequirement Specs

Functional SpecsFunctional Specs

Design SpecsDesign Specs

Code & ExecutablesCode & Executables

Deployment DocsDeployment Docs

Dev. Artifacts SQA Artifacts

RS ReviewsRS Reviews

FS ReviewsFS Reviews

DS ReviewsDS Reviews

Bug ReportsBug Reports

DD ReviewsDD Reviews

Test PlanTest Plan

Test CasesTest Cases

More Test CasesMore Test Cases

SQA Artifacts (more)

Communication Between SQA and Development

DevelopmentDevelopment SCMSCM SQASQA

DevelopmentDevelopment SQASQA

Responsibilities of Testing Team

Responsibilities of a tester• Design test cases• Write test scripts• Implement test cases

Responsibility of SQA manager• Give 25% time for reviewing test cases written• Lead review meetings• Resolve conflicts

Other Responsibilities of SQA

Participate in product and process audits.Initiate and participate in developing standards.Develop SQA’s own standards, processes and checklists.

The role of SQA with respect to process is to ensure that planned processes are appropriate and later implemented according to plan, and that relevant measurement processes are provided to the appropriate organization.

An Effective Testing Team

SQA Team should be composed of:Members with different backgroundMembers from different domainsTechnical gurus and user representativesMembers with more analytical abilities.

Characteristics of Good SQA Engineer

Experience & Education as a programmer or analyst.A thick skin.Good sense of humor.Tolerance for chaos.Firmness.Evidence oriented.Logical.Honest.Self sufficient.