Explain software testing and two other means of quality assurance and how they are applied.
Using software tests and analyzing code coverage is one software testing technique, but that is not the only way to test the quality of the software. Testing is often thought to be just running unit tests or executing test suites, but the reality is that testing has an entire life cycle of its own, very similar to the Software Development Life Cycle. This life cycle means the entire testing approach is a multi-faceted process and has many techniques. Testing is not only about making tests pass, but provides information about the software in terms of finding defects, isolating failures, preventing future defects, gaining confidence in the quality of the system, and meeting entry and exit criteria specifications according to standards, policies, laws, or requirements. Three techniques I want to explain are Test Plan, Regression Testing, and Exit Criteria.
A Test Plan is very important to a project. This plan is document outlining the scope, approach, resources, and schedule of intended test activities. It also outlines who will be doing the testing, when they will do it and degree of autonomy, test design techniques, and entry and exit criteria (Black, 2012). It outlines the entire process and enables testers to start testing early, which prevents exponential costs by having to fix a problem in production. A plan helps identify any weaknesses in the strategy so the team can plan accordingly.
Regression testing is very simple to explain. Once you have all passing tests and the software has been modified by the team or a feature has been added, those same tests will be ran first to make sure that the new code did not break anything that was previously working. If any defects have been introduced, this will identify them (hopefully).
Lastly, exit criteria is important for testing. This criteria is previously agreed on by the stakeholders and allows a project or task to be complete. This protects the stakeholders by not allowing a task to be completed when there are still parts incomplete and also gives the software developers a set of metrics to gauge the software against to know when to end the task and when to stop testing.
This is three test strategies that are common in testing, but testing will be unique in every situation. For example, software that is used where lives are at risk have a more complete and exhaustive list of testing strategies than a game we play on our phone. Keeping this in mind will help see that testing is a very organic process and can be built to assure the level of quality needed for each project.
Black, R. Foundations of Software Testing ISTQB Certification. [Capella]. Retrieved from https://capella.vitalsource.com/#/books/9781305175594/