subject: Software Testing 101: How Is It Done in the Real World? [print this page] Software Testing 101: How Is It Done in the Real World?
How is software testing done in the real world? This is a simple question to ask but a complicated one to answer. Every piece of software is different, and can evolve on its way from development to the store shelves. This means that every game, word processor, user interface, and web browser has been tested on different systems to calculate both reliability as well as appropriate use.Software testing generally starts with unit testing. Unit testing is where the individual lines of a program's code are broken down in order to see how they function. This often takes place before the program is finished (unless it's an upgrade), and is often used to determine if a line of code is still needed to make the program function properly. This doesn't necessarily ensure that a piece of software will work, but it does provide the foundation for the program to be built.The integration step of the testing process is then used to see how these lines of code work together. This can be done with just sections of the code, or all of it at once which is the preferred method. This step allows programmers and developers to put together the architecture of the program while making sure that every piece works together as one cohesive unit. System testing, also referred to as black box testing, is used to ensure that the software application works together as a whole, and in fact is often the first time a new product is available in a working manner. For an example, if we are talking about the game Halo, this would be the stage in which the game could actually be played but it might not include all the features of the finished product. This is similar to a writer's first draft.The system testing process often picks up errors that need to be fixed. Regression testing serves this purpose as programmers go back and remove code that may have worked in initial testing but failed when implemented in the systems test. As an example, consider the initial release of Windows Vista, which came into the market full of bugs. Programmers in the days and weeks that followed did this kind of testing in order to isolate the specific problems.Acceptance testing is where consumers are often brought into the picture. This process is broken down into two parts, alpha and beta. Alpha testing usually takes place on the developer's site and is done by a team of their testers. In rare occasions of custom software, the purchaser of the software may do this testing in their own labs to ensure the quality of the product. This is usually done with governmental and sensitive types of software.Beta testing is what most consumers are familiar with. This testing focuses mostly on consumer reactions to a product. This is often done with video games in order to ensure that the user interface is correct for the player. You often see advertisements for free beta testing or opportunities to sign up for beta testing. This is the final test before the product is released to consumers.