It's easy to get started in TestComplete without much preparation. You can record user actions and play them back anytime instead of performing a manual test. It's quick to record a few of these tests and they can immediately help you reduce repetition and perform tests more quickly. It's really useful and there's nothing wrong with that, but if you want to get the most from TestComplete, you'll want to move beyond those first tests and take on more advanced techniques. And you'll need a good foundation if you're going to take on advanced techniques.
A lot of companies think that testing an application is a completely different process than creating an application. They give testers a PC, install Microsoft Office and the application to test, and leave the testers to do their magic. Testing does involve some unique skills, but at it's heart it's part of the development process and it can benefit from using many of the same best practices.
Here are 5 things that can help you take advantage of software development best practices to lay a solid foundation for better automated testing...
#1 - Good Testers
It sounds obvious, but you'd be surprised how many people put inexperienced testers in charge of their automated testing projects. Perhaps they think that automated testing tools are a substitute for a skilled tester?
Test automation doesn't replace QA skills. Smart QA people use test automation to get more done, more quickly. You'll want your automated test builders to be testers who are confident with testing now. They need to know how to test your software, and have a pretty good idea what they want to accomplish with automated testing.
If your automated test creators are confused about what they're testing and what they're trying to do, then automation will just amplify their mistakes and help them make more mistakes, more quickly.
#2 - Bug/Issue Tracking Database
You've probably got a bug tracking database, but if you don't, get one asap. If you have one and your team isn't using it, find a way to get them using it or get one they will use. Everyone on your QA and development team should be using that database to record and track the problems you find in your software.
#3 - Build Server
Yes, the build server is often an exclusive part of the developers' toolbox, but QA can benefit just as much from it when you add some extra functionality to the build cycle.
You can run a set of tests automatically whenever your application is built by development. When those tests fail, it provides an early warning system for development. They won't have to wait for QA to get back to them with problems, they're notified by those first tests failing, and that reduces the number of bad builds sent to QA.
When the application does pass those first tests, the build server can package it, publish it, and send an email or instant message to QA to let you know it's ready to be
abused tested in the way that only a great QA team can. These tasks are easy to set up with a tool like Automated Build Studio and you can set it up to run before you write your first test.
#4 - Version Control
Version control is an essential part of modern software development. It's simply described as an online library that stores every change to a team's source code.
TestComplete tests are stored in source files just like your application's code so you can, and should, use version control to manage your test scripts.
The development team should already be using version control. You'll want to share the same server, if possible. You can, of course, create and run tests without version control, but your life will be better if you can add it to your structure.
Version control lets you:
- Keep the entire QA team in sync with the latest changes
- Automatically update test scripts on the build server
- Merge multiple code changes
- Compare historical versions
- Version the test source code with application source code. Easily roll back the test source code when the application source code is rolled back, and keep tests and application code synchronized.
#5 - Automated Test Workstations
You can run automated tests on your tester's PCs, but the tests take over the PC so they'll have to sit idly by and watch the tests run. Your automated testing will really take off when you have extra workstations configured to run tests remotely.
- Racks of PCs - Salvage older hardware and/or buy new PCs and set them up to run remotely without keyboards or monitors. Use Windows Terminal Services/Remote Desktop or VNC to control them remotely from the tester's workstation.
- Virtual PC workstation software, like Microsoft Virtual PC and VMWare, lets your testers simulate a PC running tests in the background on their PC while they continue to work.
- Virtual PC Server software lets you set up and remotely control many simulated PCs on one server. This can be a big money saver if you have a large project.
These 5 things can provide a strong base to build automated tests on and help you succeed in moving your automated tests beyond simple record and playback.