QATestLab 21, Garmatna str., Kiev, Ukraine ph.: +38(044)277-66-61 http://qatestlab.com/ contact@qa-testlab.com
In the most frequently used waterfall process for big software projects, development activities are generally divided into various consecutive steps to form a waterfall, although the overlaps are prevalent among successive pairs of phases.
A typical sequence consists of the following points arranged in chronological order: 1. 2. 3. 4. 5. 6. 7. 8.
product planning technical requirement analysis specification design coding software testing release product support after release
Software testing is the main part of quality assurance activities and an essential part of the waterfall development process. It forms a relationship in the entire development chain. Other quality assurance activities, which are not explicitly described in the waterfall process, can be used on other stages in the transition from one stage to another. 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. Different fault prevention activities are generally carried out during the earlier phases of software development, before actual errors have been penetrated into the software systems. There are some considerable reasons for using quality assurance activities during the earlier stages of development: • • •
The defect sources such as conceptual mistakes by programmers or designers Lack of knowledge about the domain Lack of experience with the certain development technologies are generally related with activities on early stages of engineering
(c) QATestLab, 2011
http://qatestlab.com/
QATestLab 21, Garmatna str., Kiev, Ukraine ph.: +38(044)277-66-61 http://qatestlab.com/ contact@qa-testlab.com
That’s why, the elimination of software bugs source is directly connected with the early development stage. Several errors can get in software product during testing or at later stages, but according to experience most of the errors from the early stages of development appear during design and implementation. Thus, successful error prevention through defect blocking needs to be performed during early stages. Because of the possibility of bugs to spread and increase cost over time, we should reduce the number of errors in the systems with the help of software bug averting measures and the usage of special quality assurance techniques. Some default detection and removal activities can be assigned to early stages, such as inspecting technical documentation, specifications, and product design. But there is barrier for finding bugs on the early phases. For instance, dynamic problems can occur directly during the performance and the relations become apparent with the execution of certain modules and components. As a result, other software bugs detection and removal deeds, such as checking, are generally focused in the center of late stages of software development. 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. This picture illustrates quality assurance activities in the waterfall process.
(c) QATestLab, 2011
http://qatestlab.com/
QATestLab 21, Garmatna str., Kiev, Ukraine ph.: +38(044)277-66-61 http://qatestlab.com/ contact@qa-testlab.com
Three key characteristics are illustrated there: • • •
Testing phase is the focus stage of quality assurance activities Such quality assurance 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 quality assurance 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 default containment in support.
(c) QATestLab, 2011
http://qatestlab.com/