As you look across the technology landscape you see the rise of new technologies, more processing power, and continued innovation. However, even in this dynamic environment, the need to innovate quickly and deliver software faster than ever before remains.
To meet these demands, the ability to automate QA processes can be a game-changer for a development team. QA automation improves the speed of testing and enables the ability to quickly perform regression tests and UI testing on your applications in hours instead of days.
Prior to establishing any QA automation, there are three questions you should ask of yourself and your team to ensure you are able to harness the full power of QA Automation.
1. Do we have a defined development process?
In my experience, there is no perfect way to develop software - the key is finding the right process that works for your team. As a leader, you need to understand the strengths and weaknesses of your team and know how to work within those. Some of the standards that can help you be successful are:
- The process needs to be consistent, understood, and adopted by the team
- Changes to the process should be small, measurable, and communicated
- Failure is ok, but fail fast and learn from mistakes
- Document, document, document
- The team should come up with its “Definition of Done”
2. Do we have defined requirements?
This can be broken down into two smaller questions – “Do we know what to test?” and “Are we testing the right things?
I am sure you have heard the adage How do you eat an elephant? One bite at a time. I think this applies to software development. The process of building or updating a new application can be extremely daunting. The key to knowing what to test is starting with your epic pieces and breaking that down into your user stories. A sprint map can be a helpful tool, even in just a simple excel document, to layout each sprint and break down the project into chunks. This tool can also come in handy for your management team to see where you are in the development process.
To understand if you are testing the right things, it is helpful to develop personas to understand your user and how they interact with the system. Using persona’s give a clear presentation of the users and how they interact with the system. Another key is the inclusion of the QA team in the scrum process. By giving the QA members a voice allows building detailed acceptance criteria that both QA and developers understand.
3. Do we currently unit and integration test our solutions?
Source: Ministry of Testing
Unit tests are the basis of your testing framework. This is your first line of defence and should be where most of your bugs are found. We have found these tests to be the most successful when developers are responsible for writing the unit test of their functions and is included as part of the “definition of done.” If you are not able to unit test your functions and features, you need to investigate and the question of why? Each function and feature should have some level of unit testing.
The next layer is the integration test and should follow the same requirements for the unit test but now include multiple features, functions, and connections. Using your unit and integration test as your baseline ensures that you are testing the key features and functions of the application.
While those are the three main questions you should ask before venturing into QA Automation, keep in mind that having a strong DevOps practice is also a big component of QA Automation. Additionally, having strong QA people who understand requirements and development and can write test scripts is a benefit to any team.
If you’re interested in assessing your automation readiness or want to discuss how automation can help your organization, contact us today.
Chris Smathers, Vice President of Solution Architecture
Chris Smathers has a solid history of successfully building teams and delivering large digital projects. He has over 20 years of experience in software architecture, mobile development, and consulting leadership. As vice president of solution architecture, Chris leverages his vast technology background, creative thinking, and leadership capabilities to develop and deliver meaningful technology-based solutions that help clients meet their business objectives.