DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
View Events Video Library
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Integrating PostgreSQL Databases with ANF: Join this workshop to learn how to create a PostgreSQL server using Instaclustr’s managed service

[DZone Research] Observability + Performance: We want to hear your experience and insights. Join us for our annual survey (enter to win $$).

Monitoring and Observability for LLMs: Datadog and Google Cloud discuss how to achieve optimal AI model performance.

Automated Testing: The latest on architecture, TDD, and the benefits of AI and low-code tools.

Related

  • A Continuous Testing Approach to Performance
  • DevOps Pipeline and Its Essential Tools
  • How Does Continuous Testing Improve DevOps?
  • The Edge of Test Automation: DevTestOps and DevSecOps

Trending

  • Top 7 Best Practices DevSecOps Team Must Implement in the CI/CD Process
  • Multi-Tenancy With Keycloak, Angular, and SpringBoot
  • LLMs for Bad Content Detection: Pros and Cons
  • The Winds of Change: How Generative AI is Revolutionizing Cybersecurity
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. DevOps and CI/CD
  4. 12 Continuous Testing Resolutions (With Service Virtualization) For 2018

12 Continuous Testing Resolutions (With Service Virtualization) For 2018

Continuous testing stands with CI/CD as a another segment in the DevOps pipeline to optimize your performance and improve your team's workflow.

George Lawton user avatar by
George Lawton
·
Jan. 19, 18 · Analysis
Like (4)
Save
Tweet
Share
4.01K Views

Join the DZone community and get the full member experience.

Join For Free

The idea of continuous testing has been brewing as a new paradigm for complementing DevOps, continuous integration, and continuous deployment CI/CD. While CI/CD promise faster software, the enterprise risks its brand reputation and financial impacts if this speed does not come with better software quality. Implementing processes around continuous testing can help maintain quality at a much faster pace. Here are 12 resolutions enterprises can adopt in 2018 for making continuous testing work, some even with Service Virtualization.

Assess What Continuous Testing Means for Your Organization

Continuous testing involves more than just adopting new tools or buzz words. It's a paradigm shift that involves all the different teams involved in creating new business value through software. It's easy to get stuck on finding software defects faster. But the real value lies in getting everyone to open their eyes to defects in stories, specifications, development, delivery, experience, and profitability. This could start with simple conversations at the coffee station, a Slack channel, or more formal general meetings. It may also involve looking at dependencies in software development workflows, many of which can be reduced using tools like service virtualization that reduce wait times for pre-configured testing environments.

Inventory Test Automation Gaps

Continuous testing is only practical to the extent that the testing part is automated. And some kinds of exploratory testing require a kind of creativity that is difficult to automate. A good starting point for a continuous testing journey lies in assessing how applications are tested, and how much of this process involves manual configuration or implementation. Frequent testing tasks, like integration testing, are good candidates for adopting better tools to automate more of these processes. For example, the use of service virtualization can help reduce the constraints to doing integration testing across new services.

Improve the Lines of Communication

Good communication is one of the biggest challenges with reliably and efficiently finding and remediating software defects. It’s human nature to look for someone to blame when a problem emerges, which creates a focus on hiding problems rather than revealing them. It's important to focus on how to fix bugs or the bad processes that caused them, rather than blaming people. Service virtualization can help by providing an objective way to streamline communications about the state of services as they are implemented across teams.

Prioritize Quality Over Speed

It's easy for many organizations to become fixated on releasing software faster to keep up with nimble competitors. But as the recent State of DevOps report emphasized, this only causes many organizations to fail faster. Continuous testing requires a shift towards finding defects faster. Its important to focus on building better software first, and then using various test automation tools to accelerate this process. Once this in place, it becomes easier to build better software faster. With service virtualization you can have both quality with speed. It can help improve quality earlier in the software development lifecycle in a way that improves development pace saving time as well. 

Identify Dependencies

Hidden dependencies create bottlenecks to adopting continuous testing, and there are a lot of them. These can include testing environments, availability of services, specialized personnel, data configurations, and the availability of new services. In many cases, tools like service virtualization can help reduce these and many other dependencies, so that more of the software testing lifecycle can be automated.

Manage Test Environments

The 2017/2018 World Quality Report notes that about half of all companies don’t have a solution to manage their test environments. The lack of test environments wastes time and resources and results in more software defects. You should investigate how your testing environment is managed today, with an eye towards building a cohesive architecture for managing all components of the testing process in a unified way. This could involve developing an architecture for managing test environments across tools, or adopting a unified environment across the software development lifecycle. Tools like service virtualization could help improve the configuration and deployment of these tests with greater agility. For a more in depth look at the World Quality Report. 

Test Your Tests

Test automation only works when tests are stable. If tests break, then developers and QA teams must build manual kludges to work around these defects, or customize tests. Test defects need to be logged and fixed just like regular software bugs. Service virtualization can replace dedicated hardware and automate service configurations required for a specific test. This makes it easier to test the tests more quickly and thoroughly.

Decouple Your Systems

According to the recent State of DevOps Report, decoupled architectures were one of the biggest contributors to an enterprises ability to create new value faster. Part of this seems to be related to decoupled systems and another part to decoupling of communications in organizations. Decoupled systems mean that organizations can incrementally add value faster in order to do new business experiments. But this introduces challenges with testing out how the new code for delivering value works with the other components in the architecture. Fortunately, tools like service virtualization can make it easier to identify these problems earlier in development when they are easier to fix.

Architect for Testing

Testing and automation need to be priorities in delivering quality faster. This requires design, architecture, and processes to make it work. A good starting point is to craft an architecture for testing, just like many enterprises craft an architecture for deployment. It is important for this architecture to include considerations about how the testing process is managed across different roles in the software development chain. Service virtualization helps to bridge many of these gaps. Different people in the organization can leverage a library of standardized services and configuration settings required for specific types of tests. This helps keep everyone on the same page whether they are debugging code or doing integration testing.

Integration As a Forethought

Just because new code passes unit tests, does not mean it will integrate well with other software components. A good practice is to ensure that code is always ready to be integrated. One way of doing this is to run integration tests during development and on a pull request basis. This ensures that once it is integrated, it is ready to be delivered to customers. Service virtualization creates virtual services representing live services application code is likely to be integrated with. These services are easier to spin up and can be configured for integration tests, which reduces the risk that integration with a live service will fail.

Cultivate Cohesiveness

Its easier to build quality software when it’s the entire teams' responsibility rather than having separate teams involved in development, testing, and release. This requires making automation a priority so that developers can increase the amount of time writing new code rather than looking for problems. This approach can help avoid long back and forth cycle times between QA and development, and allow developers to fix problems when the project is fresh in their minds. Service virtualization can help automate many aspects of this “earlier” testing.

Shrink the Feedback Loop

DevOps is all about improving the feedback between new business ideas and application delivery. When code sits in testing for long periods, the feedback loop can drag on and makes it more difficult to adjust the implementation of a new business model. Service virtualization allows developers to test new code using simulated services, rather than having to wait for dependent systems to become available. They can also reduce the amount of time required to configure a service for a particular test. This means that new code can go into production faster, which also speeds the feedback regarding the impact that new apps have on business.

Just like in life, you can’t expect to do everything all at once. So, don’t expect to implement continuous testing all at once either. It involves more of a journey and requires buy-in from all stakeholders in the software development process. Tools like service virtualization can help reduce the dependencies that creep into software development. However, it is important for developers and testers to explore how this can aid their own efforts in continuous boosting software quality.

Why not get started today? Here are two free Service Virtualization offers to pick from and start on your Continuous Testing Journey, www.codeSV.io and http://cainc.to/SVCom.

Service virtualization Pipeline (software) Software development Testing

Published at DZone with permission of George Lawton, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • A Continuous Testing Approach to Performance
  • DevOps Pipeline and Its Essential Tools
  • How Does Continuous Testing Improve DevOps?
  • The Edge of Test Automation: DevTestOps and DevSecOps

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: