People interact with different variations of software on a daily basis. It may be an application you access from your smartphone (or tablet), a web page you access using a browser, or a standalone desktop application. However, what you might not know is that each of these examples has undergone several rounds of software testing. Software testing is the exercise of verifying that the code being deployed will meet the users’ functional requirements. Software development can be a challenging endeavor, and involves taking requests from the customer and turning those requirements into actionable code. To ensure that this translation has been successful, software companies enlist several different software testing methods. These methods include smoke testing, alpha/beta testing, and regression testing.
Smoke testing is the practice of performing basic functionality and workflow actions against the deployed code. This verifies that additional testing can be conducted, and that the code build is working as intended at a basic level. Smoke testing is typically performed by an internal team, several times over the course of a software development project. For example, when a new version of a software application is released, testers will smoke test the new version to ensure basic functionality (e.g. a login page) works as intended.
Alpha or Beta testing is performed by a small external group of users against a deployed software application. These testers perform actions to verify the functionality, look and feel, and workflow of the application before its wide release. It’s common now for software slated for a wide commercial audience (e.g. Microsoft Operating Systems) to have a set of alpha testers perform initial testing. Feedback from that group of alpha testers is used to correct bugs and improve functionality. A subsequent version of the software is then released to a wider, but still limited, audience. This round of testing is considered “beta testing”, which should allow for any remaining bugs and errors to be identified before final release.
Over the course of a software development project, several releases (or builds) of the application are deployed. These releases can cover new functionality to the application, or correct existing bugs. Regression testing is the practice of ensuring each build not only successfully meets the application’s functional requirements, but that it did not break functionality which was deployed in previous releases. Here is an example: Build “A” is released and tested, then build “B” is released but during testing functionality from build “A” didn’t work. Regression testing verifies functionality of build “B” and build “A”. For more information on regression testing check out Regression Testing: Why You Should Incorporate It Into Your Quality Assurance Process.
This is just a few of the software testing actions that applications can undergo. Each type of testing provides a greater opportunity for the application to not only meet the customer’s needs, but also ensure that the efforts of the project development team are met with success. Segue provides several of these testing methods for our external customers, or for our software developed in-house.