Testing in an agile environment
There are many misconceptions when it comes to testing. Many think that testing is boring, not important, and that it only finds bugs but doesn’t actually fix them.
Testing in an agile environment is actually exciting, challenging and rewarding. It allows testers to become part of a continuous integrated team within a fast evolving world of web development. You have the opportunity to work alongside developers to enhance testing of source code.
At Equator, we take pride in what we deliver to our clients. Testing plays a massive part in the quality of projects delivered to clients.
Manual vs. automated testing
Manual testing can be repetitive and can sometimes mean bugs are missed due to human error or other risk factors. The introduction of an automated testing tool is essential for any successful project. You don’t need to be a developer or have experience with scripting languages to start writing automating tests. Some of the test frameworks available use words or phrases. You can control how simple or advanced the process is for yourself. You can choose what tool suits you best, some of the best ones are open source.
Automated test tools have many advantages. A small change in code may be required on a specific project but impacts many components. Automated tests can reduce the testing time spent and still has the same coverage.
Not only do automated tests reduce time and therefore costs, they also improve accuracy. They can perform the same steps without the risk of human mistake. Occasionally, some tests cannot be executed manually due to their complexity or time and effort required. This can often increase the risk of a project. Again, automated tests can overcome this risk.
Automated testing in an agile environment
Within an agile environment, testers have to adapt to paid deployment cycles (sprints) which typically last 1 to 2 weeks, but can be determined by the project manager. Each sprint is equal in length and each team member has tasks to complete. Manual tests in an agile environment could result in bugs or schedules slipping as the entire project can’t be tested fully before each release. This is where automated tests are important to keep the code “clean”.
Automated tests can be shared with developers to catch bugs before they even reach the tester. They can be scheduled to run in line with changes in the source code, during build and even throughout the night. Notifications can be set up to highlight any failures, passes or warnings.
Further benefits include being able to run the same test simultaneously across multiple browsers, devices and operating systems as well as multiple environments. Reporting mechanisms can be integrated with the tests. The reporting gives a great visual of how your project is going and also gives yourselves and the client confidence in the deliverables. They can include screenshots, videos of the tests, pass and fail rates and much, much more.
Equator and automation
Within Equator, we are currently working on improving our test coverage on our client projects by using automated testing tools. At the moment, I am using Selenium Webdriver framework within Visual Studio 2015 and C# language. For reporting, I am using ExtentReports which produces a HTML report on a daily basis. We also have email alerts set up for the team when a test has passed or failed. We are looking to have the automated tests run as part of overnight builds and deployments in the very near future.
So will automated tests eventually replace testers?
Testers will always be needed. They need to maintain the automated scripts when newly developed code is available. They need to focus on testing the newly developed code until it is at the correct quality standard. Automated tests can only verify what has been coded. Manual oversight of specific parts of a project will always be required. Testers need to adapt to the constant changes in automation and testing as a whole to make sure that the delivered project is to the highest standard, always.
By Karen Petrie, Test Engineer