Software Testing
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 assess the performance of programs during worst-case scenarios to understand if and how they break.
- 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:
Contribute to Docs
- Learn more about how to get involved.
- Edit this page on GitHub to fix an error or make an improvement.
- Submit feedback to let us know how we can improve Docs.
Learn more on Codecademy
- Career path
Full-Stack Engineer
A full-stack engineer can get a project done from start to finish, back-end to front-end.Includes 51 CoursesWith Professional CertificationBeginner Friendly150 hours - Course
Learn Testing for Web Development
Build better and more maintainable web applications through test-driven development.With CertificateIntermediate4 hours