Tips for automated software testing
Testing automation is a tool that will help the QA process be more effective. Believing that the existence of automated tests will reduce the QA members work is the wrong idea. Automated tests will let the testers focus on creating more effective test cases and avoid repeating the same tests over and over again.
Depending on the automation tool, learning how to automate tests might not take a lot of time. If the organization or the system’s requirements don’t leave too much time for the tester to learn a new scripting language, a different methodology can be used instead. For instance, Record & Playback can be a good start to understand the basics of automated testing, but always think about going further with a more robust methodology.
When to automate
It is recommended to automate most test cases that will be repeated constantly. When testing functionalities that are critical for the business, it is usually better to test manually. (Read more about what to automate).
Select the Right Automated Testing Tool
There are a lot of automated testing tools on the market. It is important to know which one is the best for your organization, depending on the desired results and the overall requirements.
Platforms used: take into account the programming languages that are used in the organization’s applications (.NET, Java, Visual Basic, etc.).
Flexibility: Does the tool permit adding checkpoint in the scripts? Is it possible to verify values or specific behaviors in the application? Is it possible to read data from external files and databases?
Tester skills: Does the QA team have experience with automation testing? Is there enough time to learn a new scripting language? What types of skills are needed?
User interface dependency: Adopt a testing tool that allows the creation of tests resistant to UI changes. Interface changes may vary between builds, leaving tests useless. Choose a tool that allows you to create unique names for controls, instead of focusing on the control’s location.
QA team skills
It is essential that a person with programming skills be responsible for the management of the tests code because the scripts are written in a specific language. It does not matter if the tester is specialized in a certain language, what matters is that this person knows how to design, develop, test, debug and document code.
Testers with lower technical skills should not be left out of the QA process. Their skills to create effective tests is as important as coding them. (Read more about how to introduce a test automation tool to your organization.)
Since there is a team that will participate in the use of automated tests, organization is also important. Use separate tests for read-only and read-write tests, this will allow using these tests repeatedly without including them in every automated test. Additionally, notice that these rules should, at least, be implemented:
Procedures for automated scripts development: define the main structure of the scripts and the management of script changes (creation date, update date, author, project, business rules documentation, etc.)
Infrastructure for data-driven testing: Repositories for tests scripts and data files.
Management of the test scripts: Manage a history of the executed tests
Management of the tests results: Manage a history of testing results.
Create automated tests that are resistant to UI changes.
Select an automated testing tool that best suits your organization’s needs.
Prepare the QA team to adopt the automated testing as a tool to improve the QA process and not a way to get rid of QA members. Commitment is essential.
Be organized. Adopt procedures to manage test scripts, testing procedures and results.
Keith Zambelich, Totally Data-Drive Automated testing, [ONLINE].