What is Software Testing Cycle?

Software Testing Life Cycle refers to a testing process which has specific steps to be executed in a definite sequence to ensure that the quality goals have been met. In STLC process, each activity is carried out in a planned and systematic way. Each phase has different goals and deliverable. Different organizations have different phases in STLC; however the basis remains the same.

Below are the phases of STLC:

  1. Requirements phase
  2. Planning Phase
  3. Analysis phase
  4. Design Phase
  5. Implementation Phase
  6. Execution Phase
  7. Conclusion Phase
  8. Closure Phase

Requirement: Requirement manager is used to link the requirements with the tests to be carried out. Each requirement in the SRS has to be tested at least once. In the SRS, the functional requirements and performance requirements are specified. Functional requirements are generated from use case scenarios. Performance requirements are dependent on the application.

Use case: As requirements are gathered as part of informal meetings, the software engineer can create a set of scenarios that identify a thread of usage for the system to be constructed. The scenarios, often called used case provide a description of how the system will be used.
Write/ Run test case: Test cases can be defined as sets of input parameters for which the software will be tested. Test case is selected according to the requirements of the client. Then these test cases are executed and the results are compared with the expected results. Test cases have to be designed based on two criteria: reliability and validity. A set of test cases is considered to be reliable if it detects all the errors. A set of test cases are valid if at least one test case reveals the errors.

Test case format

Test Case No. Test CasePurpose Procedure Expected Result Actual Result
ID which is given to the Test Case What to test How to test What should happen What actually happened

Test Results:

When a test is run, the actual results are compared with the expected results. The test log contains the pass or fails results of various tests.
Every defect found during the testing is logged in a defect log.

Defect Tracking: the defect tracking process is given in the figure.

 
Quality

The most important requirement of a software product is that it should meet the requirement of the customer. In addition to the user requirement, the management of the development organization may put additional requirements to ensure that the product is developed at a low cost and also to ensue that the software can be maintained at low cost. If the management wants to modify customized software to make it a generic product at a later date, additional requirement may be put such as portability. In general the characteristics of a software product can be divided in to

Operational characteristics.
Transition characteristics.
Revision characteristics.

Operation characteristics specify the requirements during the operation. Transition characteristics specify the requirements for its usage in other hardware/ operating systems environment. Revision characteristics specify the requirements for making the changes to software easy.

Quality management systems

When software development is sub contracted to an organization, the prime contractor needs to ensure that the work is sub contracted to a reliable organization, which can deliver quality software. So, the prime contractor has to ensure that the subcontractor has a defined quality system. To evaluate the effectiveness of the quality system, external auditing agencies will assess the quality system and certify it. The ISO 9000 standards and capability maturity model integration (CMMI) are two important quality management systems.

The management of every software development organization has to decide which quality system has to be implemented. If the organization has already obtained ISO 9000 or CMMI certification, for each project, the quality plan has to be in place based on these standards.
All the quality have the same underlying philosophy- to develop the software based on well defined processes, with the necessary documentation and ensure that every employee is committed to the quality improvement program. The quality standards should be considered as facilitators to the quality program of the organization rather than hindrance.

The management of every software development organization has to create a culture whereby the team members work within a well defined framework to develop quality software by giving thrust to quality at each and every stage of the development process.

The credit for the success of a project goes to the people who worked on the project and not to the processes. Similarly, the failure of a project is attributed to the people and not the processes. So it is the people who are responsible for success or failure of project.

Quality Standards

Quality is most important thing in a software industry. To deliver a product that is delight of the customer should be the main objective of the project manager, every team member as well as the senior management. To achieve this objective, quality standards come in handy. The management of every organization has to adapt quality standards so the quality is ensured in every product that is delivered. Implementation of quality standards also gives visibility to the organization.

Software engineering standards play an important role in defining the quality processes. There are nearly 250 software engineering standards developed by major standardization and professional bodies on various aspects.

In any standardization, process, measure play an important role. However, it is very difficult, in the field of software engineering, to obtain objective measures, and eliminate subjectivity completely. The quantity denoted by one liter of oil is same throughout the world, but the number of lines of code in a program may be different when measured by different organizations. Hence, the software standards should be treated as guidelines for improving the quality of software.

There are international, national and organizational standards. Most of the organizational standards are derived from national or international standards. For software engineering, ISO 9000 and CMMI are most widely used international standards.