A large part of writing software and creating websites is making sure the product actually does what it’s supposed to do, and can’t be used to do something it’s not supposed to do. Quality assurance (QA) takes a very long time and sometimes performing the same tests again and again can be tedious and time consuming. What if the regression testing could be handled automatically, freeing up QA engineers to find the really interesting bugs and writing more thorough test plans? That all sounds like some of the benefits of automated testing .
The gist of automated testing is writing test scripts to be performed by the computer at the touch of a button. This can be added to existing test processes and can even be incorporated into the process of building your application, to be run automatically whenever a new build is created. A well-maintained automated test suite can save hundreds of hours over the lifetime of a project by testing critical functionality immediately and repeatedly, leaving time for your QA team to track down the really difficult bugs.
But, you may ask, how do I know if automated testing will help my product? Can automation benefit every project? While it takes a bit of finesse to figure out exactly whether and how automated testing can help your product (which we would be happy to help with), there are several archetypes of projects and types of tasks which will definitely benefit from automated testing. Here are a few:
Products in maintenanceProducts in the maintenance stage are (usually) not changing very much. Regression tests are performed whenever minor updates occur, or every now and again to ensure nothing is breaking. If these regression tests were automated, they could be run every day without anyone having to do the tests manually! The only time cost incurred is during the initial setup of the scripts and the brief time someone spends to check the test results.
Products in continuous integrationContinuous integration lends itself well to automation because the automated test scripts can be kicked off after the build process has finished. Some cooperation will be needed from development, as the scripts will always need to be able to access some form of the website. The site might start out simply being a white page with “Hello!” Then as features are completed and incorporated, the scripts will run against that new standard, making sure that those features are functioning. This does mean the continuous integration server needs to be set up before the project begins, or at least very soon after.
Products with critical functionality
A product that performs some critical function to your business, such as your company’s e-commerce site, needs to be functioning correctly 24/7. Setting up a suite of automated tests will allow this critical functionality to be tested nightly, or even multiple times per day, letting your team know immediately if something is wrong.
Has your mind’s appetite been whetted with the possibilities of automation?Reach out to us to learn how it can improve the efficiency of your software development process.
In the next blog post, we’ll discuss the limits of automation—how much automation is too much?