Software Quality Assurance Testing is an integral and critical phase of any software development project. Developers and testers must ensure that
• Newly developed products or product enhancements meet functional and performance requirements
• The products are reliable and able to operate consistently under peak loads.
The risks of releasing a product that is not yet ready are greater now than ever before because of the change in expectations and demands of the end users.
We realized that lack of formal testing damaged companies. In our company, QA is given a importance within company which helps in managing budget / schedule permits. We have been able to show leadership time and again, in putting in place a comprehensive QA process, and proving its efficacy in creating not only a world-class product but also improving the manner in which the entire organization works.
As a result of the above value, our QA service for all the web development has grown rapidly. Today we are just over 10* people in this practice. We have matured our processes through 0* engagements over the last 0 years. In many cases, we own the QA organization for the client, with release responsibility. Being client-driven, we are exposed to all the industry standard tools in terms of testing (automation etc.), issue tracking, and so on. We have also set up a reasonably competent lab for compatibility testing (including multiple languages). With our clients, we have also created labs that are specific to their needs. We have built our own process and client specific process for testing.
The key measures of a test include Coverage and Quality. Test Coverage is the measurement of testing completeness. It is based on the coverage of testing expressed by the coverage of test requirements and test cases or by the coverage of executed code. Test coverage includes requirements based coverage and code based coverage. Quality is a measure of the reliability, stability, and performance of the target-of-test (system or application-under-test). Quality is based on evaluating test results and analyzing change requests (defects) identified during testing.
Today, measuring metrics is a habit. Corrective and Preventive Actions, built upon these metrics, continue to drive productivity and value for our clients. We have expertise in the development and execution of tests in client / server, internet / web and the wireless / mobile space, using both automated and manual methodologies.
We also provide maintenance and support for the release. Quality activities:
• Documented and managed test activities
• Manual testing for new functionality
Standard Regression tests:
– Manual Regression testing
• Client specific testing – client products / databases
• Independent Stakeholder Testing – testing that is based on the needs and concerns of various stakeholders
• Integration testing – to ensure that the components in the implementation model operate properly when combined to execute a use case.
• System Testing – Usually the target is the system’s end- to-end functioning elements , Extended manual regression test for functionality that is not easy to test with automated tests
• Acceptance Testing – to verify that the software is ready, and that it can be used by end users to perform those functions and tasks for which the software was built.
The test sprocess:
• Once the project and the project team have been formalized the project lead organizes a project kick off.
• The Project kick off helps the development and test teams to determine the impact in their respective areas.
• Before the kick off the test engineer(s) should be allocated to the project. The test coordinator ensures and negotiates this capacity for the project.
• The test engineer(s) should, ideally, be involved during the kick off ensuring early involvement.
• The development team starts with the development activities, the test team coordinator / test engineer(s) prepare a test plan.
A test plan contains the following:
o The objectives, purpose and scope
o Testing techniques (white box or black box or both) and methodologies (manual / automated testing) applicable for the project
• The next steps (test cases, test scenario documents, when to stop testing etc…)
• What is the expected quality of the project, a smart guess of the number of critical / medium / low priority bugs
• Go/No Go criteria
• Entry / Exit criteria
• A rough estimate of when the build(s) will be made available and what to expect in those build(s).
o Resources along with their roles and responsibilities and the time to be spent on the project.
• Human, software and hardware (if client specific branches need to be kept in mind, if test needs to be performed on Linux machines as well etc…), if applicable o Escalation channels / Risk management o More???
• Based on the test plan the test engineer(s) start writing test designs / cases / scenarios
• All activities that test engineer(s) need to perform will be a part of the planning (tracking and monitoring) sheet as used by the team.
o At present we have zeroed upon the use of TSE sheets.
o At the end of each working week a progress report (if testing activities have started) should be available along with the development progress report.
• Each inconsistency found by the test engineer(s) will be reported in a separate MR which blocks the MR used for development, hence ensuring proper traceability of issues.
• The hours should be booked in planning sheet.
• Report the time to find a defect – No. of defects in Bugzilla divided by no. of hours logged against “test execution” in Achievo
• After each phase the following documents are expected form test team:
o Defect summary
o Test summary report
• The test team will play an important role in determining the quality of the project and will participate in any post mortem analysis of the project.
• end-to-end traceability for any existing application
• Benifit: understanding the application and maintaining it becomes considerably simpler
• Bug fixing
• Database maintenance and purging
• Handling minor enhancements and modifications
• Guidance for environmental modifications
• Need based technical support to the application administrator
Set of re-engineering services covering re-architecting applications enabling them to be web-facing, porting application across platforms and performance tuning. These services ensure clients leverage existing IT investments by extending their life and future-proofing them.