Advertisment

Automating the Software Testing Process

author-image
PCQ Bureau
New Update

Rahul Sah

Advertisment

It wouldn't be wrong to say that we are enveloped by a sea of software, be it our daily productivity work application or within the car's engine, microwave oven, mobile phone; all devices have a bit of software in them. With the world becoming more interconnected with web, software has reached to more people and with that software bugs have also increased in frequency. Some bugs cause work disruptions while others a whopping millions of dollars in losses. To ensure quality of the product, software testing is crucial and in an era where rapid development and agile framework have shortened the development cycles, the testing phase shouldn't be compromised. However, given the smaller time frame it has become more challenging and a daunting task for testers. Incorporating test automation is one way to achieve that.

Google Test Automation Conference (GTAC) held at Hyderabad on 28th and 29th October, 2010 brought together experts and professionals to discuss and share the challenges in today's world of complex software and how different aspects of testing can ensure smooth development process. It not only focused on test automation and tools but also on the aspects of testability and developers doing the testing.

Future Predictions of the web

Advertisment

Programming tools with graphical user interfaces have dramatically improved the productivity of developers. This has put immense pressure on testers as developers can write multi-line codes in lesser time, but testers still have to incorporate all the testing methods to ensure the app is bug free. This is why, often testers are considered as bottlenecks to the delivery of software release. Testers need to dramatically improve their productivity; they seek a silver bullet that will balance the pace of development and testing process. Test automation is often this silver bullet, which can make their job simpler, easier and help them in speeding up the testing process.

Software testers should have excellent insights into the kinds of practices that are critical for software development. But with automation, the testers' insight into the development process often fades off. Since, they do not realize that test automation is itself a software development activity and that it therefore needs to adhere to critical development practices. Like developers who are stressed for time, testers are prone to skipping steps, taking the big leap, and blindly hoping to come out with a success at the other side.

With GUI based test automation suites, the challenge is reliability and maintainability that demand software engineering approach be taken to address them. Twist is one such testing IDE that makes it possible to build, evolve and execute functional tests. Twist allows test suites to be viewed as a coherent entity, and hence allows them to move beyond automating individual tests. Even if the application under tests evolves, Twist makes it possible to make changes in the test suites. Such testing tools can help testers automate the process rapidly and also help them build test suites to rigorously test the code for detecting bugs with various methodologies.

Developers as testers

So, who has to take up the ownership of the bugs that creep into the final product, the developers or the testers? Shall testers be solely responsible for testing or shouldn't developers also take up the onus of doing certain level of testing as they are only the best ones to understand the code and write the tests for them. While the testers can then focus more towards system and integration aspects of the software rather than doing redundant, mundane test runs.

A test automator should have good testing and development skills, so when a product is being designed, the test case should also be designed along with it and not afterwards. So, when a developer writes a code, he should also write the testing code as per the test cases. This is because it's the developer himself who understands his code better rather than a tester doing such testing on his code from ground up. So, newer IDEs have testing tools incorporated for the developers so that they can do the functional testing on the code which they have written. Hence, the redundant bugs in code can be eliminated at the development stage itself, while testers can focus towards more complex testing cases. These testing tools incorporated into the IDEs like IntelliJ and Eclipse help developers with feedbacks on their code they have written so that their code is as per the design and test case.

You cannot automate all your testing, you can only get real world bugs if you test your product in real worlds scenario.The reach of today's web based applications is beyond borders. And for web application's interface testing you can use crowd sourcing, i.e. using the global community of testers for your application and getting their feedback on bug reports.

With all the advancements in testing tools for automation, we are poised for a revolution for a lot higher reliability software products in near future.

Advertisment