Software Testing Life Cycle

July 17th, 2009  |  Published in Quality Assurance, Quality Control, Quality Management

The Software Testing Life Cycle is an integral component of the Software development Life Cycle (SDLC) practiced at Mindblaze Technologies.No software is released to the customer without comprehensive testing during the entire course of the project based on agile software development methodology. Our testing culture is based on the following principles and practices:
• Conversational Test Creation.
Our quality assurance team writes the test cases and encourages all stakeholders including our customers as well as developers to participate in the entire test creation process.
• Coaching Tests.
Our acceptance tests are written in a way so as to provide a means of instant feedback and progress measurement during the course of the project. We aim to write these tests in a clear, concise and non-technical manner so that any stakeholder including customers can understand them.
• Test Interfaces.
Our development team is responsible for the fixtures needed to create automated acceptance tests.
• Exploratory Learning.

As the project takes shape our testing team aims to explore and learn more about it. At the end of each iteration we look for bugs, missing features and also suggest improvements to our clients. We believe that a piece of software cannot be properly understood by us until we have thoroughly used it.During the course of the entire project our software testing cycle goes through the following steps:

Step 1
This includes a formal and informal inspection of all the documents required for software development and entails the following activities:
• All documents related to the customer’s requirements and business rules for software design and development are handed over to QA.
• QA reviews these documents to locate any discrepancy and raises it in review meetings with the developers, designers and the customer.
• Once the document is finalized QA prepares a Test Plan and shares with the relevant stakeholders.
• QA also writes test cases based on the requirements specified in the documents and then generates test data.
• The QA team Lead prepares traceability matrices and verifies test cases with actual requirements using these matrices.
• The team then prepares acceptance tests and shares with the developers, designers and the customer.
Step 2
At Mindblaze Technologies we emphasize test driven development. Our development team writes unit test cases first and then starts the actual programming. The QA team assures that all development protocols are followed and code is properly commented.
Step 3
If automated unit tests are successfully passed the development team then deploys the source code on the test servers for QA members. The development team clearly explains the testing environment to QA. This usually includes the following information:
• Tools that will be used to benchmark the testing server.
• How to take updates and install the latest builds on the test server.
QA then starts requirements mapping on the actual application by using traceability matrices, test scenario and work flows documents. The test duration is usually decided by the customer, QA Manager and the Project Manager based on scope of work.
Step 4
Depending on the needs of the project the Quality Assurance team may perform all or a certain subset
of the tests given below:

• Acceptance Testing. • Acceptance Testing. • Black Box Testing.
• White Box Testing. • Ad hoc Testing. • Accessibility Testing.
• Binary Portability Testing. • Integration Testing. • Ramp Testing.
• sanityTesting. • scalability Testing. • Boundary Testing.
• Breadth Testing. • Compatibility Testing. • Component Testing.
• concurrency Testing. • conformance Testing. • Context driven testing.
• Conversion Testing. • Data Driven Testing. • verification & validation Testing.
• workflow Testing. • Security Testing. • Dependency Testing.
• Dynamic Testing. • End to End Testing. • Exhaustive Testing.
• Gorilla Testing. • GrayBox Testing. • Localization Testing.
• Loop Testing. • Performance Testing. • Unit Testing.

Step 5
A comprehensive Bugs Report is prepared by the Testers and review/verification is performed by the QA team lead before handing over this report to Development Team. In case any clarification is required on the bugs submitted, the QA Team lead discusses the bugs with the assigned developers.The development team responds by providing time estimates for fixing the bugs and apprises the QAteam of any changes that will be made in the software during the course of these fixes.The testing team then retests or verifies the bugs fixed by the development team and also performs a ripple analysis and runs planned regression cycles for assurance. During this entire process test reports
are submitted to the QA Manager and Development Manager. The criterion for ending the regression cycles is defined by the relevant stakeholders including the customer and the QA team lead.
Step 6
Once the software has stabilized and the customer is happy with its performance QA prepares an application stability report and shares it with everyone in the team. At this point the entire team also carries out a lessons learned exercise to understand any problems faced during the project and how to improve the entire process to better serve our customers.

Leave a Response