Testing and QA
“A person who sees Quality and feels it as he works is a person who cares. A person who cares about what he sees and does is a person who’s bound to have some characteristics of Quality” ― Robert M. Pirsig
We believe in this dictum. However, we let our deliveries speak for themselves. It is just not the thought; it is how we carry about this principle in practice. Be it Test Driven Development or using open-source test automation frameworks for rapid testing and verification, Quality is a subject that is close to our heart and an integral part of the entire process.
It is not by chance that we have delivered quality software running on millions of mobile handsets around the world or time-critical software running on hundreds of oil rigs out in the oceans.
Take for instance our experience while delivering a solution responsible for bettering Internet bandwidth usage experience for end consumers. This project used to follow a highly radical Agile process where daily releases were made and needed integration with Continuous Build and Integration Systems. In order to ensure smooth delivery, our test suite was built on a hodgepodge of frameworks such as Selenium, Google Robot, and AutoIT to ensure that thousands of tests could be made to run on browsers each day for each of the daily releases, defects noted and updated on Jira.
Another notable one was for a similar delivery process for an entirely different kind of software – telecom middleware for mobile phones. The software needed to be burnt on the flash memory of mobile phones. Thus there was zero tolerance for memory leaks, memory overwrites and the like with very strict constraints for stack usage. We made extensive usage of Test frameworks like SIPp and ran memory profilers like Rational Purify, Insure++, Valgrind, and others. We also made extensive use of code coverage tools like Rational Pure Coverage. In cases where available tools were not turning out to be enough owing to domain-driven constraints, we wrote our own test tools.
Another project very close to our heart is that of building up the Test Automation framework for a new database management system that utilizes the GPUs of computers to parallelize tasks for efficient operations. We worked closely with the development team right from the designing phase to ensure that the database was built right from the start following the Test Driven Development model. Right from SQL syntax testing by generating thousands of SQLs using Tcl/Tk scripts to automating the testing of the various interfaces available in different programming languages, we have been able to deliver a robust test framework to get this state-of-the-art DB up and running as a product.