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 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
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
Partner Zones AWS Cloud
by AWS Developer Relations
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
Partner Zones
AWS Cloud
by AWS Developer Relations
Building Scalable Real-Time Apps with AstraDB and Vaadin
Register Now

Trending

  • Writing a Vector Database in a Week in Rust
  • Building the World's Most Resilient To-Do List Application With Node.js, K8s, and Distributed SQL
  • The Role of AI and Programming in the Gaming Industry: A Look Beyond the Tables
  • Database Integration Tests With Spring Boot and Testcontainers

Trending

  • Writing a Vector Database in a Week in Rust
  • Building the World's Most Resilient To-Do List Application With Node.js, K8s, and Distributed SQL
  • The Role of AI and Programming in the Gaming Industry: A Look Beyond the Tables
  • Database Integration Tests With Spring Boot and Testcontainers
  1. DZone
  2. Culture and Methodologies
  3. Agile
  4. Speed vs. Quality – Which Is Preferred?

Speed vs. Quality – Which Is Preferred?

Prioritizing speed or quality in software development depends on the industry and other factors. But can test automation help us so we don't have to choose anymore?

Alex McPeak user avatar by
Alex McPeak
·
Sep. 24, 17 · Opinion
Like (6)
Save
Tweet
Share
7.94K Views

Join the DZone community and get the full member experience.

Join For Free

Speed and quality -- they’re debatably the two most sought-after exploits to participants in the software development lifecycle. Unfortunately, having one often comes at the cost of the other, leaving professionals to make a decision on which is more important. 

Of course, different businesses may put a different emphasis on one or the other. For example, an e-commerce company might be more interested in maintaining consistent quality on their web application so customers will complete a purchase from their site and have a good enough experience to come back. Additionally, companies in high-stakes industries such as medical or financial recognize the unparalleled importance of quality over speed with their stakeholders.

Meanwhile, a large social network like Facebook may be more interested in releasing new features to keep their users engaged and interested than they are invested in worrying about quality. We can assume this because Facebook doesn’t even have dedicated QA or Testing team -- they depend on developers and users to test new features since “social media is nonessential.”

In light of many organizations adopting processes such as Agile and DevOps, it may seem like speed has become a priority as teams take a more iterative approach to implementing new features and getting them to market more quickly.

But, it also depends on who you ask. If you consult a tester, they might say that these methodologies allow for more opportunities to intermittently assess quality and make way for Continuous Testing, while others might say that focus on speed often means overlooking those same concerns.

The moral of the story is that speed versus quality will be an eternal debate. Some will think one is more important, and some the other, with no one-size-fits-all answer.

Maybe the question should not be which do we prefer, but how we can do both more often. How can we combine the speed that development and management strive for with the quality our testers and QA engineers know is critical? How can we make Agile work for us in a way that is both effective and efficient?

Test automation exhibits the best of both worlds in speed and quality. Repeating scripts allows anyone to run tests in regression without having to manually repeat the same steps over and over so that more time can be spent exploring new features rather than checking old ones. However, automated testing can be time-consuming in itself. Even just considering all the different browsers and devices you have to test on, running these tests one after another in different environments is still tedious.

Parallel testing is an increasingly popular way many software teams are finding a way to strike the balance between speed and quality by taking automated testing a step further. By leveraging a Selenium grid, either with an in-house device lab or a cloud service, developers and testers are able to run their scripts at the same time instead of one after the other, allowing teams to test across different environments in a fraction of the time it normally takes.

Cumbersome and tedious tasks like unit testing, smoke testing, regression testing, and cross-browser testing can be cut from taking weeks to days, days to hours, and hours to minutes with parallel testing. This not only makes the process faster to affect quicker deployments, but it also increases the range of coverage of your tests. Yes, this means that speed and quality are being addressed at the same time.

It’s revolutionary. Teams that have experienced this phenomenon know that life will never be the same again. They no longer have to waste their time and effort worrying about speed and quality (or arguing which is superior) but instead, they can focus on their jobs -- building new features, creating new test cases, and delivering great software to customers.

So perhaps the challenge is to stop pursuing the debate of speed vs. quality and start embracing the idea of speed and quality. How can we find more ways to combine these ideas in order to work towards one common goal? How can we utilize faster testing that doesn’t compromise quality, but enhance it?

Software development agile Testing

Published at DZone with permission of Alex McPeak, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Trending

  • Writing a Vector Database in a Week in Rust
  • Building the World's Most Resilient To-Do List Application With Node.js, K8s, and Distributed SQL
  • The Role of AI and Programming in the Gaming Industry: A Look Beyond the Tables
  • Database Integration Tests With Spring Boot and Testcontainers

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

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com

Let's be friends: