Latest Software Testing TrendsCigniti Technologies
Listen on the go!
Testing as a Service (TaaS)
This model involves the on-demand test execution of well-defined suites of test material, generally on outsourced basis. The execution can be performed either at the client site or remotely from the outsourced providers test lab / facilities.
Analytics / BI (Business Intelligence) Testing
Identifying issues related to data inconsistency, data quality, data security, failures in the extract, transform and load (ETL) process, performance related issues, accuracy of business flows and fitness for use from an end user perspective.
Developers Converting to Testers
Testers need to be strong in both technical skills as well as industry and business insights. It has been observed that it is comparatively easy for developers to learn testing skills than vice versa.
Test Driven Development (TDD)
TDD is a software development technique that ensures source code is thoroughly unit-tested as compared to traditional testing methodologies, where unit testing is recommended but not enforced.
It combines test-first development and re-factoring. It is gaining popularity as it allows for incremental software development – where bugs are detected and fixed as soon as the code is written, rather than at the end of iteration or a milestone.
30-50 per cent of the total testing time goes in test environment set-up, getting people access to the environment, and loading it with the right bits from development and it is hard to recreate the same environment for developers to investigate and fix bugs.
Virtualization is beneficial for:
- Accelerating set-up/tear down and restoration of complex virtual environments to a clean state, improving machine utilization
- Eliminating repro bugs by allowing developers to recreate complex environments easily
- Improve quality by automating virtual machine provisioning, building deployment, and building verification testing in an integrated manner (details later)
Continuous Integration (CI)
CI is a trend that is rapidly being adopted in testing, where the team members integrate their work with the rest of the development team on a frequent basis by committing all changes to a central versioning system. Beyond maintaining a common code repository, other characteristics of a CI environment include build automation, auto-deployment of the build into a production-like environment, and ensuring a self-test mechanism such that at the very least, a minimal set of tests are run to confirm that the code behaves as expected.
Testing on Cloud
To minimize test environment expenditures and gain better control of their IT resources, companies are beginning to take advantage of a delivery model known as ‘cloud computing’. In cloud computing, applications and information are provisioned on-demand, as a shared resource. In case of private cloud, servers and applications required for setting up the test lab can be shared among different teams in the organization.
Tools Driven Development Testing
IDE-integrated tools have made the self-testing practice acceptable to developers, and the unit-testing and coverage analysis process automated for them. These tools also make it easy to analyze performance and compare it with a baseline by extending the unit test infrastructure.
Crowd testing is a new and emerging trend in which, rather than relying on a dedicated team of testers (in-house or out sourced), companies rely on virtual test teams (created on demand) to get complete test coverage and reduce the time to market for their applications.
Agile testing brings the development and testing processes closer together for a more holistic view. Software testers need information to effectively do their jobs, and now days; testers are being involved in the communication loop from the beginning.