Thursday, January 19, 2017

An Intro to Software Testing—and Why You Shouldn’t Skip It

Young woman in her workspace, working on laptop computer with dual-monitor screen.

Every piece of software starts with a purpose. Countless hours later, how can you feel confident you’ve succeeded? By testing your software.

With tight budgets and pressure to ship quickly, some people see testing as a lot of extra: Extra time, extra money, extra resources to make it happen.

Skipping this step, however, leaves you with a blind spot. Even the most careful coder can make mistakes or overlook an angle. What if eager users find something your team missed? What if other people’s code or APIs don’t work the way they should?

These articles from the Hiring Headquarters—Upwork’s resource for businesses, freelancers, and entrepreneurs—make the case for one part of the development process many people love to hate.

What is software testing?

Software testing isn’t just about throwing random tasks at a program to see what happens. Its main purpose is to verify and validate that the software delivers the results it’s supposed to.

“The cost and effort associated with testing are excellent investments—and can ensure stability and reduce overall costs from buggy, poorly executed software,” Carey Wodehouse explained in “An Intro to Software Testing.”

Highlighting the advantages of making room for testing, Wodehouse explains:

  • Manual versus automated testing
  • The software testing cycle
  • Unit testing
  • Performance and stability testing

You’ll also get an overview of what QA testers can cost.

Different types of testing

Software testing can be manual or automated—and sometimes both. “Manual Testing vs. Automated Software Testing” explains the pros and cons of each approach.

One benefit of manual testing, for example, is the advantage of real-world feedback—the same sort of feedback you’ll get from users: “A manual tester can compare expectations for how the app should run with outcomes, then provide feedback on what didn’t work. They’ll also be able to weigh in on the visuals—something computers can’t do.”

Automated testing, however, is very thorough and isn’t open to getting testing fatigue—what happens when someone gets too familiar with your software to keep a fresh perspective. It’s also reusable—once you’ve set everything up—and gives your team a chance to take a break.

Testing with a distributed team

Neither type of testing is perfect, which is why many teams use both—including the engineering team at Upwork.

Ways to Optimize Software Testing with a Distributed Team” describes how Upwork’s agile, distributed team uses different types of testing at different parts of the process.

The team relies most heavily on automated testing, which “makes us able to complete a full suite of unit testing in one hour, and a full suite of parallelized functional tests in about six hours.” But they also do regular QA, distributing test engineers across multiple teams.

“Traditionally, developers would write code, throw it over the fence, and expect QA to find the bugs. Now, developers own the quality of their code and test engineers are there to build the test automation that allows us to release more frequently with fewer production issues.”

To learn more, read “What Can a Quality Assurance (QA) Team Do For You?” Or check out the other resources you’ll find in the Hiring Headquarters.

The post An Intro to Software Testing—and Why You Shouldn’t Skip It appeared first on Upwork Blog.



from Upwork Blog http://ift.tt/2jBHSON

No comments:

Post a Comment