
Testers always keep their eyes peeled for finding bugs. For a product development scenario, frequency of regression testing is very high. Especially for agile development, where product is implemented incrementally, software product has to undergo periodic health checks. Continuous Integration is the nick name for the whole set of activities involved in incremental development. Enormous effort has to be spent for ensuring quality for such cases. Here we can discuss how to reduce the cost without compromising on quality by enforcing to innovative techniques.
Automated Continuous Integration(ACI) strategies
For product developments, controlling quality in a continuous integration scenario is very costly. There are many repeated tasks which are performed on daily basis and correctness of the work product has to be ensured frequently. Early detection of a failure will save tremendous effort of the entire team. For example a build error caused by a check-in by a developer may affect all others work. An automatic validation of continuous integration process will definitely save considerable amount of effort.
I shall narrate about a configurable framework which can be reused across organization for automatic continuous integration validation process. We are using an open source tool called Cruise Control (an open source tool which is easily configurable) for automating the continuous integration process. The ACI framework will address the automatic execution of the below mentioned tasks. So no manual effort is involved in the validation of continuous integration and a regular product health check report is generated on a daily basis.
i. Generation of Daily Builds
The framework will get latest source code from version management tool like Subversion, Concurrent Version Systems etc. It supports many leading version management tools. After getting the source code, it builds the code using some build tool like MSBuild.
ii. Unit Testing
Unit testing is a fire wall mechanism against quality deterioration by escalating the unfavorable code changes as early as possible. Unit testing is enforced in all the big projects in most of the organizations. Making scripts for unit testing is worth for considerably bigger projects. It ensures that each small units of code are functioning properly and any modification which affects the intention of units are caught immediately.
Unit testing scripts can be integrated to our automated continuous integration framework and executed nightly. Any unit level defect can be identified at the earliest.
iii. Generation and validation of installation setup
“First impression is the best impression.” A failure installation causes lot of negative energy in customers. Validation of installation at the time of delivery is not a good practice since we may not get time to fine tune the setup after rectifying all the errors.
Our framework prepares installation setup by invoking the scripts of installation tool used. After making installation setup, it is invoked and installation process validated. Any installation tools like Installshield and NSIS (Nullsoft Scriptable Install System) can be integrated with our framework.
iv. Regression Testing
Regression testing and UI validation is another area which takes a major chunk of effort. Automated test scripts with suitable tools can do automated tests. These scripts can be plugged in to CruiseControl framework so that the regression testing will be performed automatically after installation of the product. Any test automation tools like Selenium, QTP, AutoIt etc can be integrated with our framework.
For UI validations like boundary value analysis, illegal entries etc we parameterize data via excel sheet. All input values and corresponding error messages if any are entered in excel sheet. The script reads the values in excel sheet and enters in GUI. This helps the tests very structured and easily modifiable.
v. Publishing of Report
The result of all continuous integration tasks should be made as a neat report. We can customize the report formats as per the interest of management and the tools used. Daily report is published on a web site which is accessible by all the members. There is a snapshot which reflects the overall status of all tasks and detailed drilled down reports for each task is also available.
The report is also mailed to all stake holders of the project. This is an automatic mailing system which can be configured in the framework.
For the installation setup of cruise control : http://cruisecontrol.net
No comments:
Post a Comment