White Paper – QA Standards And Process In Development Scenarios
White Paper – QA Standards And Process In Development Scenarios
Maintaining a full-fledged QA standard process is vital for a product-based environment. If a given QA standard is followed in a proper way, it leads to well-defined, user-oriented, and quality products. A good software process provides the framework for managing activities in a perfect way during a Product Development Scenario and ensures that associated activities do not go out of control. The crucial and all-important role of a QA Standard Process in a Product Development Scenario is evident from the fact that a quality software process can lead to superior products with focus on timeliness and better viability.
Standard QA Process and Businesses
At some stage or other, a business enterprise feels the need to implement QA processes to standardize their operations, product delivery, and empower business solutions. However, if the QA process implementation is neglected for long or not created at the right time, it affects the overall ability of an enterprise to deliver effective business solutions. The existing process fails to detect shortcom-ings in offered solutions leading to slackening market reputation. Recall of products not only gives a beating to the brand image but also affects the profitability. Applying critical patches can upset customer confidence and may lead to lower marketability. Again, the bigger a project, the more is the chance of critical defect due to extensive processes and procedures involved. A standard QA process, on the other hand, assure structured mechanism that controls the process by establishing different toll gates and identify and report the defect slippage, if any.
Standard QA Process: Two Principles
A standard QA process follows two basic principles.
- Fit for purpose principle: It means the process would look into various issues to validate that the product developed is perfect for the intended purpose.
- Right first time principle: Any mistake must be identified and eliminated at the first instance. The product should not be released without being certified free from defects.
- Waterfall Model:
A sequential software development model, it views the QA process akin to a waterfall, a steady flow of the process through vari-ous phases. Requirements gathering, designing a base system, imple-menting to a system, verification, and maintenance constitute different phases product development process goes through. Initially, requirement review and test planning for a given product is carried out. Then, the test case designing is completed based on review of test cases performed earlier. All types of tests execution for functional, usability, cross browser, and security testing are carried out simultaneously to log all bugs in each cycle. This is continued with the resolution of bugs accessed through a proper regression testing.
- Rapid Action Model:
With the objective of encouraging collaborative ambiance and facilitating dynamic gathering of requirements, this model favors rapid prototyping, which requires minimal planning. The absence of comprehensive pre-planning activities saves the time and allows the soft-ware writing process to proceed faster. Interspersing planning with the software writing also make it convenient to change development according to newly emerged requirements. This model also permits active participa-tion of business owners in prototyping, test case writing, and unit testing of products.
- Agile Test Framework:
In an agile framework, the QA process is carried out in close cooperation with both developers and testers. In fact, the QA process plays an extensive and vital role in the development phase only. The develop-ment is carried out in a break up released cycle followed by effective software testing process. While the product development is divided into smaller chunks, the entire team takes the responsibility for maintaining the quality. The process involves just the right amount of documentation and the response is very fast and quick. Offshore QA team always plays a very vital role in agile framework. Analysis of requirements and discussion on queries related to business flow and scope through mails/scrum call add to the overall quality.
A hybrid form of the waterfall model, this entails phase-wise prod-uct development. A graphic representation of the entire process takes shape of V, as it bents upward following the coding phase. One phase is completed thoroughly before the development process enters the next phase. Contrary to the linear process prescribed by the waterfall model, it favors a structured testing approach. The key benefits of this process include superior quality and prevention of downward fault multiplication. The phase-wise testing, verifica-tion, and validation assure development process thoroughly checked at various stages. This contributes to improved quality and reliability and reduces the need to rework to the minimum possible.
Goals of Quality Assurance
The main objective of the QA process is to ensure robust products with improved end-user experience and greater market acceptance. Like any other product devel-opment process, software development has its share of complexities and risks. Each activity contributes to the entire process and a flaw at one stage may impact the overall quality. Again the risks are multiple, both technical and nontechnical. We may often confronted with problems, such as below-par performance, opera-tional difficulties, browser stubbornness, maintenance problems, high cost, schedule overruns, etc. While we can overcome some of these using pragmatic ways, a number of risks demand thorough and standard QA process throughout the product development.
The QA process offers a reliable and effective way to reduce both programmatic and technical risks through multipronged strategy and efficient use of man, material, and money. It sets standards for each stage, defines tasks, monitors the endeavors to achieve them, and streamline the process with an eye on the objective. For example, the product coding standards. If there are no codes, it is likely that the product developed falls short of set usability requirements. If codes are set but the process lacks an explicit assurance that all parameters are fully met, there is the risk that coding does not meet the quality standard. Likewise, absence of error management in the workflow may enhance the risk that defects are not given adequate attention and if left unsolved, they may impact the end-user experience. An effective QA process helps overcome all the risks and improve the quality during the workflow and at the final delivery. It assures full control over quality stan-dards and effective mechanism to clear bugs guaranteeing superior life cycle and market acceptability.
Different Types of Testing
- Unit Testing:
The key objective of unit testing is to verify and validate software by examining all possible individual software components. It entails dividing an application into the smallest possible testable units and testing them separately to validate their behavior. The main advantage of this approach lies in its ability to identify maximum possible bugs.
- Integration Testing:
Once all modules are tested individually, they are again tested in an integrated mode. The purpose is to ensure that distinct components of the application work in accordance with customer requirements. Test sets are developed with the express purpose of examining the interfaces between various unit components. Integration test is considered successful only when the actual result meets the expected objectives.
- System Testing:
This Black-box type testing requires testing the system as a whole and takes into consideration the overall specifications, ranging from develop-ers expectations to end user requirements. Covering all combined parts of a system, it ensures that the system must meet all functional as well as business require-ments. It focuses and verifies the specifications while viewing the entire system as one unit. It validates the system that can be used for the intended purpose. The system test design is derived from the system design documents and is used in this particular phase. To make the approach more result-oriented, many specialized tests for performance, stress, function, automation, etc, are also carried out.
- Acceptance Test:
It prescribes verification and validation of an application against all given user acceptance and business requirements. Though this approach is similar to system testing, where the whole system is verified, it varies considerably in its focus. The testing is always carried out by the real users in a business environment. Known as end user testing, it allows the customer to check the acceptability of the system. Customers can perform any test based on their business processes.
Business Users Involvement
All test cases should be approved by the business team. Test plans are also shared with the business team and the strategy is finalized after its approval.
- The business users are allowed a say in the bug identification process, as the application is are directly related to the requirements.
- A thread should be opened to the business user for any requirement clarification not cleared by the test team.
- Testers are required to provide a weekly status to a business team to make sure that the requirements are being met and all pending issues can be discussed. Release notes must be business users centric.
- Before signing off, the business team should be invited for final approval. One common test environment should be arranged where testing and business experts can test and build together on the same database. Any change requested must be converted to use test cases is approved by the business team.
Bug Regression will be the main concern throughout all given testing phases. All bugs that are resolved as “fixed, needs retesting” should be regressed hen testing team is notified of the new drop containing the fixes. The test lead is responsible for all activities, from tracking and reporting to development and product manage-ment at each step. Testing is suspended on the affected software module when various levels of test case bugs are discovered. Testing is also suspended if there is any important scope change leading to impact on the Critical Path. A bug report is filed by development team. After fixing the bug, development team follows the “drop criteria” to provide its latest drop for additional testing.
There is always a question, what to review in a proper assigned manner to ensure that a given QA standard process is followed. There are many tools and techniques that are available for use. A proper bug-free testing always requires an expert tester’s creativity, experience, and intuition combined together with right techniques. Testing is more than just debugging. Testing is not only used to locate defects and correct them, but also used to verify and validate the development process and reliability measurement. A good tester must always conduct a proper gap analysis to evaluate the project results and match the original objectives. He must review all delivered documents and ensure these have been delivered with an acceptable level of quality or an acceptable substitute is in place. If still there is gap between stated and found results, the given project goals must be achieved with minimum place for errors..The necessary controls and systems in place must work properly. A proper established QA standard process assures a bug-free, well established software product within the stipulated budget.