Today, the entire software development process is going through a cultural shift – from the traditional Waterfall model to the modern agile methodology. With this paradigm change, the entire development groups, including testing are facing significant changes in workplace culture, philosophy, tool usage, and delivery patterns. Unlike the early days of Waterfall methodology, today in Agile, testing is involved right from the beginning of a development process.
Drivers of this change
Now, testing as a phase no longer acts as a gatekeeper but has become an integral part of the development process. It is responsible for detecting risks and quality problems early in the lifecycle in order to improve efficiency and quality in the software development process.
Some of the major driving factors behind this change are:
- Tremendous pressure of reducing time-to-market cycles in a competitive market
- Appetite for long ROI cycles decreasing day by day
- Failure rates of large projects are still high in spite of huge investment
- Different IT platforms, languages, and systems are getting used for development
- Usage of IT systems has increased manifold among common people
Software Testing is no longer the final step
Considering the facts, a software tester can no longer be treated as a watchman who is supposed to be involved in the process only before the deployment stage. Now their involvement is early in the lifecycle and much more integrated with the entire process of software development.
Test plans are the integral part of project planning
Today, enterprise applications are no more standalone. They mostly integrate with other internal and external applications used by different stakeholders for different purposes. All these integrated applications having different functionalities require various types of functional and non-functional testing to be done to ensure usability, performance, scalability, easy deployment, and smooth installation. This has made test planning an integral part of the entire project plan, making it more proactive and upfront.
Designing testability is a priority
Testability has become more of a design concern with focus on efficient and maintainable test case creation in order to ensure early detection of quality problems. A collaboration of Testers with developers is of paramount importance today. Different concepts of testability as a design criteria help in testing immensely.
- The UI & business needs of an application are tested separately so that errors can be detected even before they are integrated with each other
- To avoid the failure of test automation for any UI change, IDs are getting used for UI objects.
- Different environments are created to ensure testing of external systems even before the integration between them happens.
Current & Future Trends of Testing
Today, the software development industry as a whole is talking about continuous development and therefore, working towards adopting DevOps. Some of the major aspects of how DevOps works are as follows:
- Continuous Development and testing in production-like systems
- Continuous deployment using automated processes which are repeatable and reliable
- Continuous monitoring of quality at every stage
- Continuous action on feedback received from different stakeholders
These philosophies of DevOps are giving rise to certain cultural and functional changes in the areas of testing. Some of them are given below.
Testing as a medium for continuous feedback
Testing as an integral part of Continuous Integration (CI) and Continuous Development (CD), has become a continuous feedback generating mechanism for every stage or phase of development. Today, test executions are no more governed by schedules; rather they are driven by events like code completion, code check-in, and deployment status. In summary, the testers’ jobs are more regulated by changes in other development steps rather than the project schedule.
UI testing is not enough
Today, testing is not just limited to functional or regression test of UI layers. It is more focused on a larger boundary that includes any and every possible layer under the GUI. Items like API testing and DB testing are also gaining popularity over time. Thus testing has become a source of gaining continuous feedback at every level, ensuring a proper application is built with proper quality.
Test automation is the need of the hour
With time, the need for getting quickly to the market has enforced test automation to be included in the early stages of a development process. More and more organizations are realizing the importance of writing test code or scripts similar to that of writing development codes. Different frameworks and tools are also getting introduced so that testers can get maximum leverage. This entire process of test automation has shortened the cycle of regression testing, making the entire flow of CI, CD, and DevOps extremely efficient.
Need of an Ideal Test Management Tool
The above explanations show how, with the change in testing philosophy, testers have become important stakeholders in successful delivery of an application. The demand of industry today is to involve testing earlier into the cycle and ensure proper test codes and test automation scripts for better product quality right from the beginning. The presence of a centralized tool allowing testers to work in collaboration with other team members is also very important.
Kovair Integrated Test Management – iTM is one such integrated testing solution that provides a collaborative platform for the testers to work in harmony. It ensures real-time feedback exchange between testers and other stakeholders. The extensive support for cross-tool traceability, real-time dashboards, and intelligent reports make Kovair iTM even more attractive and useful for small to large scale organizations.
Kovair iTM is not limited to the support of manual and automated testing through integration with tools like Selenium and QTP. Kovair iTM along with Kovair Omnibus – the proprietary SOA based ESB architected integration platform, enables organizations to build a DevOps environment through achieving CI & CD.
The agile principle – ‘frequent delivery of working software to the customer’ requires an agile team to build and test software as frequently as possible. The agile practice of Continuous Integration, or CI, is popular because it can address this critical aspect of agile very well.
CI makes ‘integration’ a non-event! It involves some of the key practices such as maintaining a single source code repository, daily commit, automated unit testing, automated build, automated functional testing, and regression testing. The objective of CI is to flush out the problems of a system in rapid cycles. In the end, the system will be judged by how it runs in production. Therefore, continuous integration cannot deliver working software unless the software is continuously deployed and tested in a production environment.
The integration of Kovair iTM with tools like LDRA, SonarQube, ClearCase, TFS, and SVN enables developers to do static code analysis and code coverage even before checking in the code to the Source Control Repository. Kovair also offers integrations with build tools like MS Build and Jenkins, wherein an automated build can be triggered immediately after a code is checked in. The integration with popular deployment tools like uDeploy can deploy the build in different servers for testing. Once deployed, the test automation through integrations with automated test tools like Selenium & QTP can be triggered in Kovair in a pre-defined mode when testing is to be triggered during the development and release process.
Kovair, being a web based central repository and an integration hub for all popular tools with cross-tool data based reporting enables organizations to achieve a complete CI & CD environment.
The big question that still remains is whether a proper collaborative tool fulfills all the needs of today for DevOps. The answer is no. There is a huge dependency on how effectively and efficiently test automation is getting done in the entire process.
Continuous deployment, with the teams involved, requires the development team to handoff the compiled and unit tested product to the operations team on a daily basis. This is not practically possible as long as the software needs to be tossed over the wall of organizational barriers. Kovair iTM with its integration capabilities, helps organizations overcome the problems of –
- Tools Integration
- Process Integration
- Data Integration
And thus facilitates CI and CD in any sized development and operations organizations.