Join Us on Apr 30: Unveiling Parasoft C/C++test CT for Continuous Testing & Compliance Excellence | Register Now

Be a Smarter Software Tester With These 5 Delicious Technology Combinations

Parasoft cube logo 300x300
July 7, 2023
5 min read

With the help of this article, you'll discover great software testing technologies and how to combine them to develop a dynamic testing environment and improve your testing skills.

There’s something magical about a peanut butter and jelly sandwich. The earthiness of the peanut butter mixed with the tanginess of the jelly creates a new flavor that doesn’t exist anywhere else but in the magical combination of those two ingredients. To me, peanut butter and jelly is the perfect example of the idea of a whole being greater than the sum of its parts.

This exact same thing can be achieved in the world of software testing, for example with large software deployments for Parasoft. It’s like making a bunch of peanut butter and jelly sandwiches, but with delicious technology combinations, instead. Let’s walk through how to combine Parasoft technologies and illustrate what you can achieve.

1. Dynamic Test Environments From Parasoft SOAtest and Parasoft Virtualize

In the world of testing tool peanut butter sandwiches, this is number one. I may be biased here as the product manager of functional testing tools, but IMHO there is no greater combination of Parasoft technologies than the marriage of SOAtest’s API testing capabilities powered by artificial intelligence (AI) and Virtualize’s service virtualization capabilities.

Dynamic Test Environments

The most obvious value add you can get when combining these two technologies is the ability to create dynamic test environments. Ordinarily, this is a function that tends to be relegated to service virtualization, but an often-overlooked piece is the ability to execute test cases in the context of an environment. By combining SOAtest and Virtualize, a user can create a reusable template that can be deployed as a function of continuous integration (CI). This environment template will be a combination of virtual services and test cases.

This essentially achieves a sort of sandwich effect on your application, which is powerful because you can align the test cases and their validations with the backend virtual services. This allows you to achieve true CI because you know that when you go to execute your test cases, they will be tied together with the corresponding virtual services, and your test environment can provision itself.

As the SOAtest test cases get ready for execution, the first step in the test case is to call Virtualize and set the proper virtual services and data in place. The last step of the test is to call Virtualize and tear down the environment. Viola! Environment sandwich.

2. Validating Middleware With Parasoft Virtualize & Parasoft SOAtest

The above example explains SOAtest in the context of a virtual environment provisioned by Virtualize. Turning this relationship the other way around, you can use Virtualize to support SOAtest during test execution.

Validating Middleware

Virtual services can listen at endpoints. They don’t have to respond back when called they can actually send the call on. Something you can do with service virtualization is create a virtual service to sit in a middleware application and simply monitor. Then, when one middleware component calls another middleware component, you have an interception point.

At this point, you could call a virtual service that simply reports the message and sends it on its way. But what can you do with that message?

This is where combining SOAtest and Virtualize becomes powerful. Virtualize can report those messages back to SOAtest for validation purposes. SOAtest then executes calls against the frontend, while Virtualize listens in the middle.

As test cases execute, Virtualize reports transformation messages back to SOAtest. The events are reported in the middle of test case execution and the data from the request can be tied to the event that comes back from Virtualize in the form of a validation, thus creating true dynamic end-to-end testing.

3. Performance Testing With Parasoft SOAtest & Parasoft LoadTest

Work that you do inside of SOAtest can become immediately available inside of Load Test, Parasoft’s performance testing solution that sits inside of SOAtest and allows you to execute API tests at speed and also automatically validate the responses in accordance with your SLAs.

Shift-Left Performance Testing

SOAtest has been around for a long time. During that time, users have been working within the solution to create powerful end-to-end test case scenarios. What you might not know is that all of those test cases can be run within Load Test.

Quick functionality exists inside of SOAtest that allows you to configure and validate all of your API tests for Load Test. This means that you don’t have to create performance tests, you can simply leverage the work that the testing team is doing and run it at speed.

This is software test automation at its finest. By combining these two technologies together, you can efficiently create more meaningful performance tests. SOAtest calls APIs and exercises the web frontends prior to load test execution, providing you with a greater sense of comfort that your performance test is going to execute without issue because the environment has been pre-validated. This combination allows you to save a lot of time on initial test creation as well as during test execution.

4. Preconfigured Performance Testing Environments With Parasoft LoadTest & Parasoft Virtualize

Virtualize can create virtual services with performance profiles. These performance profiles slow down the virtual services’ response times to a predictable baseline. You can either configure these performance delays manually or pull them in from an application performance engine such as AppDynamics or Dynatrace. These services can then be deployed into an environment that’s set for performance testing, making the combination of Virtualize and Load Test very powerful.

Preconfigured Performance Testing Environments

Virtualize sets the stage and provides a baseline for the environment. Load Test can then execute against this environment to surgically identify performance issues. This is exceptionally powerful because you’re creating an environment that’s customized for the Load Test.

As a precondition of executing performance tests, Load Test can tell Virtualize to switch into performance mode, thus applying the performance baselines to specific applications that have been simulated.

Load Test then validates the whole environment, and we can understand the delay time that came from virtual services vs. from our real services. This information is valuable because it tells us exactly where our performance bottlenecks are, and by switching different components between real and virtual, and applying different performance baselines, we can surgically identify performance issues.

5. Understanding Requirements & Traceability With Parasoft SOAtest & Parasoft DTP

Crossing the aisle between API functional testing and software development testing, you can leverage our reporting and analytics platform, Parasoft DTP. It’s designed to take in big data from development and quality assurance testing activities and provide meaningful, easy-to-understand widgets and reports that you can leverage to assess release readiness.

Requirements & Traceability

DTP can connect to requirements engines like Jira, pull out specific information about requirement sets, and display that information on DTP’s reporting dashboard for clear visibility. On the other side of the fence, SOAtest can tie specific test cases to their associated requirements.

By combining these two technologies together, you can supercharge the workflow. DTP presents the requirements, providing the ability to create test cases for them. Then, those test cases appear on the SOAtest server or desktop where you can create, modify, or update any of the test cases to have the functionality that covers their specific requirement.

And now the real magic begins!

Since there’s a tie to the requirement inside of the reporting and analytics engine, every time you execute that test case it connects those results to the requirement. Dig into the details here. The net effect is that you can see if all of the requirements have associated test cases and how those specific test cases are performing. This helps with release readiness by showing whether something has been tested and whether some business-critical functionality is failing.

Conclusion

Just as peanut butter and jelly sandwiches combine ingredients for optimal deliciousness, combining software testing technologies together gives you a powerful framework for next-level software testing automation that’s more efficient, and frankly, more fun.

There are many more ways to combine Parasoft’s automated software testing tools together. At the end of the day, it’s really all about making sure you have thoroughly tested your application.

Modernize Your Applications: Move From Manual Testing to CI/CD