This is part 2 of a 2-part article series; part 1 was featured in the September 2020 issue of the LogiGear Magazine, and you can check it out here. Part 1 discussed the mindset required for Agile, as well as explored the various quadrants of the Agile Testing Quadrants model. Part 2 will delve into how to utilize each of these quadrants in regards to planning, development, and testing in order to ensure your Automation is a success.
How to Use the Agile Quadrants
As discussed earlier in Part 1, Agile Testing Quadrants is a model that is greatly useful for test planning and execution. This model helps reduce communication gaps between teams and neatly captures all the complexities involved in the software quality.
During the iteration planning, teams can go through every quadrant and identify which types of tests are needed for their product increment. Then, teams can figure out if they have the right people with the right skills to accomplish them. Teams could also prepare the required testing infrastructure/environment, tools, and provision the appropriate test data.
QA Enablement in Agile Testing Quadrants and SAFe System Team
“Test early, test often, and test throughout” is the mantra of Agile testing.
In Agile development, testing is not a separate phase at the end of development; rather, testing activities are continuous and are integrated with development.
The fast-paced and constantly evolving world of technology demands accelerated time-to-market of new software, while reducing costs to meet the growing needs of end-users. Software Testing approaches also need to adapt to the changing needs to support the business and achieve its challenging goals.
Agile’s success is highly dependent on early feedback. In an Agile setting, teams work in compressed development cycles. Agile teams and Agile Release Trains (ARTs), as in the case of SAFe (Scaled Agile Framework), cannot ship high-quality software rapidly without Test Automation, CI/CD pipelines, and Continuous Testing.
Here is why teams cannot be Agile without Test Automation:
- Shortened test execution cycles demand rapid testing. Without Test Automation, Testers don’t have the efficiency of repeatable tasks within the test cases, and thus cannot cope with the velocity of development. Agile Teams that do not adopt Automation Testing struggle to meet tight schedules and deadlines with high quality.
- In Agile, requirements are always evolving and are subject to frequent changes. Test Automation provides agility to testing and ensures that Testers respond faster to changes. When Agile Teams rely completely on Manual Testing, they end up reworking on the same set of test cases over and over again.
- In every iteration, Testers need to ensure that the existing code is not broken due to new changes. Without Test Automation, Testers cannot test new features and also perform Regression Testing parallelly in a short duration. Test Automation saves time, money, and effort by hugely reducing the monotonous Regression Testing.
- Test Automation increases confidence and reduces risks. Agile is all about continuous feedback. Without the ability to automatically execute the tests on each commit, the feedback loop will be broken and confidence cannot be achieved on the newly written code.
Succeeding in Test Automation is challenging and multi-faceted. The Agile Teams need to ensure that they involve the right people, employ the right strategy, choose the right tools, set proper expectations, measure the ROI, and align their roadmap to their business goals.
Maintainable Test Automation is the holy grail of Agile testing. Three of the 4 quadrants (Q1, Q2, Q4) in the Agile Testing Quadrants suggest and guide employing Test Automation. Automated tests not only speed up development but also provide Testers enough time to perform deep Exploratory Testing that requires human intelligence and intuition.
Common Quality Assurance Headaches
Siloed Automation Efforts Lead to Low Automation Coverage
Organizational silos are developed when teams focus on immediate results without understanding how their team fits into the bigger picture. Most of the time, either individual or team goals are of the highest priority for every team member, which blinds them from looking at the broader organizational goals.
When automated tests are siloed between Testers and Developers, there are high chances that they are trying to solve the Automation problems separately. This prevents teams and individuals from leveraging and benefiting from each other’s work, hence increasing duplication of work and reducing test coverage. When different departments or teams work in silos, they automate some part of their testing and process; but, without a proper pipeline that stitches them together, nothing significant is accomplished as none of them understand the bigger picture. Hence, time is lost in manual approvals and handovers. Organizations innovate, grow, and have better chances of being successful when teams break out of silos.
Overcoming Automation Silos. Ensuring that Agile teams are cross-functional and self-organizing is crucial to overcome Automation silos. Below, you will find how cross-functional teams can elevate collaboration:
- The Agile Team should have all the required enablers to deliver a valuable product increment. Cross-functional teams are a way to eliminate external dependencies and handoffs, which cause delays in releases.
- A cross-functional team is formed by the collaboration of a group of people with a common goal of Agile Team enablement in mind. These teams have the ability to see across many functions of the organization and self-organize to ensure the larger benefit of the project or Agile Release Train (ART).
- Cross-functional teams promote a culture of continuous improvement, where teams take complete ownership of complex problems and come up with innovative solutions. Creating cross-functional teams is also a great way for people to share knowledge to acquire new skills.
- Cross-functional teams must consist of domain expertise. It’s important to recognize that Agile focuses heavily on development. As monolithic Quality Assurance organizations are collapsed into these new organizations or dismissed altogether, a gap of domain knowledge and testing expertise is often created. Knowledge such as the business domain, tool vendor landscape, offshoring, and test case development and triage are all aspects that should not be lost in Agile transformations. It’s of great value that organizations transition this knowledge within their Agile transformation plans and ensure cross-functional teams embrace continuous learning within such domain expertise.
Developers and Testers need to break silos, collaborate, and take responsibility for Test Automation together to accelerate development and improve quality.
The Lack of Automation Management & Maintenance can Cripple Agile Teams and ART Trains
Test Managers and Directors are often all-too-familiar with the hassles caused by broken automated tests. Broken tests are a serious problem in an Agile setting; when a CI/CD pipeline breaks, new code changes cannot be merged and wastes the time of Developers and Testers. In Agile testing, it becomes crucial to have a reliable and low-maintenance test suite in place.
Testability. The success of Test Automation projects is largely dependent on the testability and Automation friendliness of the application; for example, having clear and stable identifying properties of UI elements, or having white-box access to read or manipulate objects or data. Automation issues due to Automation unfriendliness are frustrating to Testers and block them from progressing in Test Automation initiatives. It requires a commitment by the whole team for successful Automation. Testers need the cooperation of Developers to embed testability and the ability to be automated in the product during early design phases.
Built-in Quality. Built-in Quality is one of the defined “core values” of SAFe. In SAFe, Agile Teams do not just perform testing at the end of a life cycle, rather they define and execute tests early, often, and at multiple levels. Built-in Quality aims to avoid rework and delays, ensuring that quality is not an afterthought. Think Test-First mindset enables teams to design an associated testing activity for all the development activities (features, stories, and code) ideally before or parallelly when these items are created. This applies to both functional requirements, as well as non-functional requirements.
Built-in Quality Increases Test Coverage. Test-driven development (TDD) and Behavior-Driven Development (BDD) are the biggest enablers of the Think Test-First mindset. In TDD, Developers write unit tests first before writing a single line of functional code. In this approach, the Developer will not write functional code until the test exists and it fails (as the function is not developed). BDD focuses on enhancing the shared understanding between the business and technical teams. BDD tools leverage natural language like syntax that allows Developers, Testers, and Product Owners to be on the same page about the user stories in the sprint.
A CI/CD pipeline that is powered with a test-first strategy makes it possible to drive releases on demand. The Think Test-First mindset and Built-in Quality values of SAFe assure that all the required tests in the Agile Quadrants of Q1, Q2, and Q4 are automated parallelly along with their respective development activities. Along with the Agile Testing Quadrants, teams should leverage models like the Test Automation pyramid to have unit, API, and UI tests at the right proportions. This can greatly help to create an effective Test Automation strategy and reduce Test Automation maintenance.
Built-in Quality Resolves Testability and Automation Problems. Continuous attention to technical excellence and good design can enhance agility. If the software design and architecture lack structure and quality, then the end product quality will likely not be up to the mark. Something similar applies to test design and Automation architecture. Below are few ideas to consider to resolve testability and automatability problems:
- Keep an eye on the way tests are organized. A lack of structure makes tests hard to maintain, which in turn makes their Automation hard to maintain as well.
- Design applications with testability and Automation-friendliness in mind right from the start. In the case of legacy applications, refactor for a structure that enables maintainable Automation.
- When developing a product design and architecture, teams must consider various aspects like ease of implementation, testability, automatability, sustainability, scalability, maintainability, ability to satisfy future business requirements, etc.
Conclusion
Test Automation is a critical component to maintain agility. ‘Built-in Quality’ and ‘Think Test-First’ mindset ensures that testing is integrated into development right from the start. Creating automated tests across the Agile Testing Quadrants enables teams to come up with a comprehensive approach that assures quality. But, broken automated tests in any of the quadrants slows down the feedback loops, hinders the testing cycle, and negates all the benefits of Agile. Given the need for Automation across Project Delivery teams and the need for Automation in multiple quadrants, there must be QA governance and execution beyond project-level functions.
When discussing the Agile Quadrants, QA Managers and Directors should identify tests that are not considered due to a lack of experience and expertise. QA Managers and Directors should utilize Agile Quadrants or System Teams (SAFe) to promote QA enablement and governance. Your teams might not have the specialized skills and resources, but LogiGear can help you as your strategic testing partner by being an extension of your team. Regardless of your SDLC, whether it be Agile, SAFe, or waterfall, LogiGear has over 2 decades of experience in developing and implementing Test Automation and is one of the few firms that can put your SDLC in context with your long term QA goals, ensuring actionable milestones are being achieved, DevOps pipelines run smoothly, and software is released on time with a confidence factor that exceeds business owner expectation. Whether it is about Agile or SAFe, QA staffing, or no code/low code tooling through TestArchitect, LogiGear is here and ready to scale to meet your needs.