Skip to main content
Join the Agentforce Hackathon on Nov. 18-19 to compete for a $20,000 Grand Prize. Sign up now. Terms apply.

Learn the Business Value of Testing

Learning Objectives

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

  • Describe business applications testing and the software testing lifecycle.
  • Summarize why testing is essential to successful software development.
  • List different testing methods, types, and models.
  • Recognize the characteristics and value of an agile testing-automation strategy.
Note

This module is sponsored and produced in collaboration with Copado, which owns, supports, and maintains the Copado products, services, and features described here. Use of Copado products, services, and features is governed by privacy policies and service agreements maintained by Copado. Learn more about partner content on Trailhead.

Business Applications Testing and the Software Testing Lifecycle

You’re probably well aware that developing quality business applications quickly isn’t an easy task. Successful software development is often a rigorous process, requiring businesses to work through several phases of the software development lifecycle (SDLC) to ensure that customers receive the best product possible.

The Development Lifecycle: Plan, Build, Test, Release, Operate.

Testing occurs throughout this lifecycle. During testing, test engineers, quality-assurance (QA) analysts, and developers evaluate the software to determine whether it’s meeting requirements and functioning as expected. The goal is for testers to identify any differences between expected and actual outcomes. Analyzing and fixing issues, or “bugs,” before deployment saves time (and money) and provides customers with a high-quality, reliable, and secure product.

Note

While QA teams often are tasked with testing business applications, the reality is that quality is everyone’s responsibility. Learn how team members can contribute to the testing process and use testing insights.

Testing plays such an important role in the SDLC that it has its own lifecycle—the software testing lifecycle (STLC)—which has six stages.

Stage 1: Analyze Requirements

Stage 2: Plan the Tests

Stage 3: Develop the Test Cases

Stage 4: Set Up the Test Environment

Stage 5: Execute the Tests

Stage 6: Complete the Tests

Testers determine what types of tests need to be performed and define the test requirements.

Based on t‌est requirements, testers build a project plan that details test types, methods, processes, timing, costs, and resources.

Testers create and prioritize test cases that are aligned with the requirements established during Stage 1 and the project plan developed during Stage 2.

Testers establish the parameters of the testing environment, including the data, the hardware and software, and the network configurations.

Using the project plan, testers execute the test cases, identifying and documenting any bugs or defects and retesting after fixes.

Testers make sure the testing requirements have been fulfilled, discuss test results, and document any unexpected behavior they observed during testing.

Developers working through the software testing lifecycle by analyzing requirements, planning the tests, developing the test cases, setting up the test environment, and executing the tests.

By working through the STLC and its clearly defined stages and requirements, businesses help set their software up for success. It’s important to remember, however, that testing isn’t a one-and-done type of thing. Businesses should approach it as a continuous process that helps them consistently improve quality, reliability, security, and performance. Let’s explore a few more reasons testing is so important.

Why It’s Best to Test

The reality is that today’s customer is expecting a seamless experience when using business applications. Providing anything less than that by failing to test can have serious business repercussions. Software defects result in costly downtime and frustrated users who can’t access products or services. These types of disruptions are detrimental. They bring business operations to a halt, damage reputations, and cause significant financial losses.

According to Copado’s 2022 State of Salesforce Testing Report, 92% of Salesforce professionals surveyed face critical production issues due to inadequate testing. What’s more, a lack of testing was identified as the #1 risk to digital transformations.

Thorough testing serves as a safeguard against these high-stakes risks by allowing businesses to:

  • Identify vulnerabilities and mitigate risk by preventing costly errors and heading off data breaches and system failures.
  • Avoid fines and penalties by complying with regulatory requirements and industry standards.
  • Improve, innovate, and evolve continually by using valuable testing feedback.
  • Increase release efficiency by fixing issues early in the development lifecycle.

The value of testing is undeniable. It helps businesses ensure that their software meets the highest quality and performance standards, and customer (and business) expectations. But just as businesses shouldn’t take a one-and-done approach to testing, they shouldn’t take a one-size-fits-all approach either. Testing effectively requires testers—typically quality-assurance (QA) testers—to analyze business needs and product requirements and select the appropriate testing methods, types, and models.

Testing Methods, Types, and Models

Here’s an overview of a few commonly used business-application testing types, methods, and models.

Testing Methods

There are two primary methods of testing: manual and automated.

Manual testing tests software’s functionality without using automated tools. Because manual testers approach testing from a human perspective, they can better predict end-user behavior. Also, manual testing provides for more creativity and flexibility in the interpretation of use cases.

Automated testing conducts testing processes using automated tools and techniques. It doesn’t make the testing process automatic. Rather, it supports manual testers by taking over tasks that don’t require human judgment. Automated testing increases accuracy by eliminating human error and efficiency through its use of repeatable test cases.

Manual testing and automated testing.

Testing Types

Testing teams use various functional and nonfunctional testing types depending on project needs and technical requirements.

Testing Type

Tester Actions

Application Programming Interface (API) Testing

Analyze the API to validate that it’s responsive and fulfills its expected functionality, performance, reliability, and security goals; it can be conducted manually or automated.

User Interface (UI) Testing

Test the application from the user’s perspective to ensure that interface elements such as toolbars, buttons, and text fields are functioning properly. It can be conducted manually or automated.

End-to-End Testing

Verify the functionality of the application’s workflow across the entire product-user interaction. It can be conducted manually or automated.

Exploratory Testing

Manually explore software functionality, using creativity, experience, and intuition—rather than test scripts—to identify issues that automated testing might miss.

Integration Testing

Test multiple software components (or units) together to ensure that business processes involving multiple systems are working properly.

Regression Testing

Check previously tested software to ensure that any changes in code or configurations haven't undermined existing functionality.

User Acceptance Testing (UAT)

Test features and functionalities in real-world scenarios to identify issues or bugs that might impact the end-user’s experience.

Testing Models

Testing models typically align with development methodologies. Here’s a quick breakdown.

  • Classic (or Waterfall): The processes of development and testing cascade so that the output for one stage becomes the input of another in a linear or sequential fashion.
  • Shift-Left: This model addresses quality issues “at the root” by including testing activities early in the development lifecycle.
  • Shift-Right: In this model, testing is conducted in production to gather insights from user feedback and interactions.
  • Agile: This incremental and flexible approach to testing ensures quality by requiring shorter development cycles (also known as sprints) and close collaboration between teams.

Testing models: The Waterfall Model, The Shift-Left Model, The Shift-Right Model, The Agile Model.

Lots of businesses are using the agile model and automated testing to keep up with customers and their needs. Implementing both effectively, however, requires a clearly defined agile testing-automation strategy.

Agile + Automation = A Strategy for Success

A successful agile testing-automation strategy carefully considers people, processes, and technology, and it outlines the approach and principles that guides the testing. In addition to embedding tools into development that support test automation, tracking, and management, this type of strategy typically includes:

  • Test planning for each sprint that involves defining the scope of the sprint’s user stories and determining which testing methods and tools testers will use.
  • Test and use-case development based on user stories and acceptance criteria, which evolves as software features are added or modified.
  • Test execution—including integration testing—that occurs both concurrently with development and in iterative cycles.

In addition, an agile testing-automation strategy:

  • Aligns closely with business goals and desired project outcomes.
  • Clearly defines roles and responsibilities for all members of the testing team.
  • Provides scalability and flexibility to accommodate projects of different sizes and complexity.
  • Fosters continuous improvement based on feedback, insights, and outcomes from each testing cycle.

Now that you know what an agile testing-automation strategy is and how to make it successful, you might be wondering why it’s so important to have. The short answer is that having an agile testing-automation strategy supports the efficient development and release of high-quality, reliable software. But if we dig a little deeper, we see that automated testing specifically has the following benefits in the agile environment.

  • Reduced testing time
  • Reduced costs
  • Increased test coverage
  • Improved resource optimization
  • Improved accuracy
  • Enhanced team morale
  • Faster feedback
  • Accelerated scalability

For businesses, implementing automated testing provides a significant return on investment (ROI). If we want to crunch the numbers, we use the following formula.

ROI equals benefits minus costs, divided by costs, and multiplied by 100%.

  • Benefits: Direct savings from a reduction in manual testing hours, decreased time to market, and ‌avoidance of defect costs
  • Costs: Initial setup for automation tools, training, and maintenance—and ongoing licensing and update expenses

For example, suppose an organization spends $100,000 on implementing an agile testing-automation strategy. As a result, it saves $300,000 by shortening testing time, increasing release speed, and reducing post-release defects.

ROI = 200%: $300,000 − $100,000, divided by $100,000, and multiplied by 100%.

Using the formula, we calculate a 200% ROI, which indicates that the organization has doubled its initial investment in implementing the agile-testing strategy!

There’s no doubt that testing software—especially by implementing an agile testing-automation strategy—has tremendous value for businesses. In the next unit, we introduce you to Copado Robotic Testing, an automated testing solution for Salesforce that helps teams boost productivity and increase successful deployments.

Resources

Compartilhe seu feedback do Trailhead usando a Ajuda do Salesforce.

Queremos saber sobre sua experiência com o Trailhead. Agora você pode acessar o novo formulário de feedback, a qualquer momento, no site Ajuda do Salesforce.

Saiba mais Continue compartilhando feedback