Knowledge Center

QA Activities in Waterfall Process

Waterfall Model of software development life cycle (SDLC) is one of the oldest and simplest approaches. The main idea of this model is to divide the software development process into separate phases and to implement them subsequently one after another without overlapping. That is why it is called ‘waterfall’. The important point is that each previous stage should be completed before moving on to the next one.

A typical structure of SDLC according to waterfall model:

  1. Product planning
  2. Technical requirement analysis
  3. Specification
  4. Design
  5. Coding
  6. Software testing
  7. Release
  8. Product support

Among quality assurance (QA) activities, software testing is the main one. Besides, it is an essential part of the waterfall development process. During this phase, several testing types are conducted. The most common ones are unit, system, and acceptance testing. As for the QA techniques, Black Box Approach is the most frequently applied one in the Waterfall Model. It requires no deep knowledge of the internal structure of the application. Issues, found during testing, should be properly logged and reported to the developers’ team.

Other QA activities, which are not explicitly described in the waterfall process, can also be applied between the phases. For instance, part of the criteria for transition from one phase to another is the quality that usually takes the form of testing. It aims to make sure that specific quality plans or standards have been accomplished or followed, as different forms, reviews or verifications demonstrate.

This picture illustrates QA activities in the waterfall process.

QA Waterfall Process

Such QA activities as inspections and reviews carried out at the transitions from one stage to the next are demonstrated as gates to penetrate. The exception is between testing and release, where the activities are conducted with acceptance testing.

Other QA activities are scattered in all phases: the general place of use is shown by the dotted line. It is focused on error averting in the early stages, on error removal during coding and testing, and on defect containment in support.

Fault prevention activities

Fault prevention activities are aimed to avert bugs and errors before they penetrate into a system. Among such activities, there is the verification of technical documentation, specifications, and product design. If documentation is not complete or clear, the software will probably have a large number of bugs.

The purpose of error prevention activities is the elimination of software bugs resources. It is an important step which should be performed in the early stages of the software development process because of several considerable reasons. They are:

  • conceptual mistakes by programmers or software designers
  • lack of knowledge about the domain
  • lack of experience with the certain development technologies.

Defect containment activities

Defect containment is aimed to reduce software costs and increase software quality. These activities imply analyzing at which phase the defect has appeared for the first time and at which it has been detected. It is usually reported as the percentage of defects captured in the stage in which they appeared.

Eventually, failure averting and containment measures, such as fault tolerance and safety assurance, are the center of phases. But their design, planning, and implementation should be carried out during the software development.

In other words, these methodologies are similar to adding some tools or references into the product in order to make them fault tolerant.