The move towards a modern QA organization
Managing the agility of application development has grown in importance as a lot of my customers are competing to dominate the market. The role of Quality Assurance teams to drive these changes is becoming more and more important. The QA teams should not only do testing but also champion the process so that our customer's software products and processes adhere to the requirements and plans......
Managing the agility of application development has grown in importance as a lot of my customers are competing to dominate the market. During my customer interactions I observed the struggles to contend with from a testing perspective towards agility and some of them are described below:
1. Very aggressive release schedules and testing lag behind.
2. Multiple development vendors develop code and code reconciliation becomes very difficult. How to ensure all the functionalities are reconciled correctly?
3. There are dependencies with Internal and external systems. Some of these system test environments may not be available resulting in partial testing which increases the risk
4. Difficulty in automated testing and maintaining tests as the application changes
5. Perception of poor value from QA investment - imbalance between cost and perceived benefit of QA.
6. Business expects to use "Customer experience" as a key differentiator in the market.
QA also needs to become increasingly effective and modernized to address complex technology needs. At the same time, QA needs to overcome its project focused heritage and turn into an enterprise wide strategy to support over a broader technology / application spectrum, in a time bound manner. We see this shift in the QA services to be a combination of the following 3 themes:
1. "Agility in testing" resulting in Faster and quality defects at lesser cost
2. "Advance quality to earlier in the software lifecycle" resulting in earlier defect detection and minimizing cost of quality
3. "Strengthen SDLC processes to for better quality" resulting in Lower App TCO
Agility in testing
Increasingly the business will not have patience for elongated QA cycles. The objective is to bring the required agility in the testing so that we can reduce the current testing cycles by 4 X . The following principles are relevant:
1. Standardize Test processes & practices
2. Automate as much testing as feasible: Tap a common set of QA tools for test automation - for different layers of the component-based architecture- UI, Web services and back end databases.
3. QA to be delivered based on pre-configured test platforms tailored to respective industry challenges.
4. Establish specialized functions for test data, test infrastructure management
Advance quality to earlier in the software lifecycle
We have followed some of the best practices discussed below for some of our clients
1. Establish a methodology and a testing framework that emphasizes early life cycle validation. Testing teams participation in requirements, sprints, etc enables emphasizes the testability and supportability of applications.
2. Improving upstream quality by use of Early Lifecycle Validation Strategies. Use of techniques like Predictive Performance Modeling, assessing Quality and Maintainability of Application code through tools can enhance the upstream Static testing process.
3. Strengthen QA by introducing more comprehensive testing services in areas that are critical to the business: usability, performance, security, and data accuracy
Strengthen SDLC processes to for better quality
There must be a close mapping of quality parameters to the SDLC processes. This will serve as a leading indicator for informing stakeholders of the progress toward achievement of quality. The following are some of the things to look out for:
1. Projects should link quality assurance deliverables with appropriate phases of the Software Life Cycle.
2. A configuration management process must include controls critical to quality of deliverables.
3. A change management process must identify and evaluate the quality issues prior to decision-making.
The role of QA teams to drive these changes is becoming more and more important. They should not only do testing but also champion the process so that our customer's software products and processes adhere to the requirements and plans.