Software Testing

Anonymous contributor's avatar
Anonymous contributor
Anonymous contributor's avatar
Anonymous contributor
Published Mar 21, 2022Updated Jan 26, 2024
Contribute to Docs

Software testing is the process of verifying and evaluating the functionality of a software application or product. It checks if the product meets requirements, reduces and eliminates bugs, and mitigates the long-term costs for a company in terms of any fixes and updates that would be needed.

It is most common to initiate software testing during the design phase but it can even take place after the deployment phase of the software development life cycle.

Testing Types

There are several kinds of software testing with varying degrees of specificity, including the following:

  • Usability tests can be performed on one or a combination of tasks to see how the programming functions in different user-based scenarios.
  • Acceptance testing involves checking to make sure the several functions of a system work as expected.
  • Regression testing assesses the impact of new features and helps engineers adjust how each feature affects with the program overall.
  • Integration testing aims to figure out how well different components of the app work with each other.
  • Unit testing attempts to see how different units of code perform in isolation from the rest of the program.
  • Through functional testing, engineers can see how software accomplishes specific, intended purposes.
  • Stress tests accesses the performance of programs during worst-case scenarios to understand if and how it breaks.
  • Performance testing reveals how the program will perform in more common, real-world scenarios.

Testing Strategies

Two specific techniques are used to assess the stability and performance of software: black-box and white-box testing. Each offers a different perspective into how well the source code holds up.

  • Black-box testing involves testing software without looking inside — the coding, systems, and dependencies.
  • White-box testing aims to examine the structure within the application, or the inner workings of the app, as opposed to its overall functionality.

Languages Used in Testing

Some programming languages that are commonly used for testing software include the following:

All contributors

Looking to contribute?

Learn More on Codecademy