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 remains for teams to innovate quickly and deliver software faster than ever before. 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 lay out 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 personas gives 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?
Unit tests are the base of your testing framework. This is your first line of defense 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 the functions they write 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.
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 for QA Automation. Additionally, having strong QA people that not only understand requirements but also 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.