We’ve been in the business a long time, so when it comes to the testing process we’re no stranger to the complex challenges it can often present. As the limitations of technology seem to become smaller and smaller, more complex software solutions are constantly in development – but this means things like managing environments, reducing delays and handling ‘down-time’ during projects is becoming harder, too.
As with any business project, there are various dependent relationships that appear – generally on third-party service and software providers, interfaces and environments. Service virtualisation can help reduce a business’ dependency on the above, as well as provide intelligent, cheaper environments that can be used by all users – from developers to customers.
So, the challenges…
As software solutions become more multifaceted and complex, we have seen how service virtualisation can help resolve numerous challenges faced by modern businesses.
With more complicated software solutions, the time spent developing and testing them – but also creating suitable environments that can support them – is getting longer. With multiple vendors, third-party systems and interfaces, large-scale programmes feature many interdependent systems and functions that exist and are developed in isolation to the main programme; this means they are not delivered in an integrated fully working environment until quite far down the programme lifecycle.
So this means development teams have to produce parts of the solution in isolation and in standalone environments – this can lead to stubbed services and waiting for third parties/system providers to deliver their solutions, so that areas of the system can be finalised before testing. This, inevitably, leads to delays and lapses in product quality.
But it’s not just development causing problems – software testers can’t start validating solutions end-to-end until every part of the system becomes available. So in a working environment, integration, performance and full end-to-end system testing are unlikely to happen until very late in the lifecycle. This mimics a traditional waterfall (or V model) delivery system, where testing activities are completed in stages – meaning some key areas of testing are not able to start until later. This means that maintaining control of cost and risk is a lot harder to achieve.
This is a constant challenge, as there are numerous elements (development environment requirements, system testing, integration testing, user acceptance testing, performance testing, model office activities…) that may require their own separate environments. Multiple teams will be trying to access these environments, all of whom will need to be provisioned and their code streams managed.
So, what can help…?
Studies show that over 50% of companies experience delays regularly when it comes to testing. This is often down to the following:
- External project dependencies being unavailable
- Back-end systems not being ready for end-to-end testing
- A lack of comprehensive stable test environments – specifically environments for performance testing
- Data setup delays
- Test data issues
- End-to-end testing cycle becoming disrupted due to an application with a functional defect being present
The average organisation requires 33 systems for development and testing, but many only have unrestricted access to 18 of these, and most saying they have access to less than 50% of the systems they require.
All of the above translates into significant delays in programmes. This then means that software releases become overdue, and the final delivery becomes more costly and riskier. This is where service virtualisation can help: it creates an integrated environment and can make every interface available early on in the testing lifecycle – a service that is virtually tied up with a ribbon.
Read our related blog: Complex software solutions - Service virtualisation