Skip to main content

Follow Testing Best Practices

Learning Objectives

After completing this unit, you’ll be able to:

  • Explain where testing fits in the software development lifecycle.
  • Describe how testing is an ongoing process.
  • Identify the considerations for testing.

When Do You Test?

You now know what testing is and why it's necessary. Now it’s time to learn about when testing is carried out. Testing takes place in the software development lifecycle (SDLC). A SDLC is a framework that captures all the activities in a software project from initial planning to maintenance. 

Most software development teams place testing between the development and deployment phases. This is part of a move in the software industry known as "shifting left," or to move testing to an earlier place of software development. Shifting left ensures a better product for your customer. 

image of an ongoing SDLC circle, with the stages of Design, Development, Test, Deployment, and Requirements.

Join the Ongoing Process

You test and resolve issues until you achieve an acceptable level of risk for a high-quality product. This is different for everyone. And whether to continue testing is based on your time and budget. This is what's known as the exit criteria. Exit criteria define how much testing is enough, and when you can declare your testing complete. 

Just because you stop testing doesn't mean your customers will. Testing will be carried out by users and any bugs or defects will hopefully be reported to your support team. 

Other Considerations for Testing

When you create a testing plan and process, consider several things.

  • Acceptance Criteria. Acceptance criteria are the conditions that your software must meet to be accepted by a customer or user. These criteria define the behavior of the product from the user's experience, documented in what is called a user story. You can get to acceptance criteria by asking questions like, what is the business reason for the product? What challenge or challenges are the customer trying to solve when using the application?
  • Triage/Risk Assessment. It is important to conduct a triage/risk assessment during your testing. This is a process that will help to prioritize the biggest defects and risks in your product. One of the best ways to conduct this assessment is through RiskStorming, a collaborative and visual activity to identify risk.
    • Another way to conduct a risk assessment is through Test-Driven Development (TDD). This process occurs by writing a failing test, and then writing the minimum amount of code needed to make the test pass. This helps to catch defects earlier and produces testable code.
  • Usability. During your testing, consider where users will spend most of their time when they use your software. What user errors could potentially take place and what is the severity of those errors? Is your product easy to use and fit for the purpose it was intended?

The Psychology of Testing

Don't assume you won't find any errors. Test for valid and expected, as well as invalid and unexpected, errors. Here's an example: while testing an email login page, test for the correct username and password. This is valid and expected behavior. However, don't forget to also test for the incorrect username and password. This is invalid and unexpected, and is often referred to as negative testing.

Sum It Up

In this module, you learned about what quality is, and how you achieve high quality software through testing. Even though testing can be expensive, it’s necessary to ensure your users experience your software or service with delight and keep coming back. In the end, quality helps nurture your relationship with your customers. So keep on testing!

 

 

Keep learning for
free!
Sign up for an account to continue.
What’s in it for you?
  • Get personalized recommendations for your career goals
  • Practice your skills with hands-on challenges and quizzes
  • Track and share your progress with employers
  • Connect to mentorship and career opportunities