- Mastering Software Testing with JUnit 5
- Boni García
- 429字
- 2021-07-02 15:34:23
Verification and Validation
Verification and Validation -also known as Software Quality Control- is concerned with evaluating that the software being developed meets its specifications and delivers the functionality expected by the consumers. These checking processes start as soon as requirements become available, and continue through all stages of the development process. Verification is different to validation, although they are often confused.
The distinguished professor of computer science Barry Boehm expressed the difference between them back in 1979:
- Verification: are we building the product right? The aim of verification is to check that the software meets its stated functional and non-functional requirements (that is, the specification).
- Validation: are we building the right product? The aim of validation is to ensure that the software meets consumer's expectations. It is a more general process than verification, due to the fact that specifications do not always reflect the real wishes or needs of consumers.
V&V activities include a wide array of QA activities. Although software testing plays an extremely important role in V&V, other activities are also necessary. Within the V&V process, two big groups of techniques of system checking and analysis may be used:
- Software testing: This is the most commonly performed activity within QA. Given a piece of code, software testing (or simply testing) consists of observing a sample of executions (test cases), and giving a verdict on them. Hence, testing is an execution-based QA activity, so a prerequisite is the existence of the implemented software units, components, or system to be tested. For this reason, it is sometimes called dynamic analysis.
- Static analysis: This is a form of V&V that does not require execution of the software. Static analysis works on a source representation of the software: either a model of the specification of design or the source or the program. Perhaps, the most commonly used are inspections and reviews, where a specification, design, or program is checked by a group of people. Additional static analysis techniques may be used, such as automated software analysis (the source code of a program is checked for patterns that are known to be potentially erroneous).
It should be noted that there is a strong divergence of opinion about what types of testing constitute validation or verification. Some authors believe that all testing is verification and that validation is conducted when requirements are reviewed and approved. Other authors view unit and integration testing as verification and higher-order testing (for example, system or user testing) as validation. To solve this divergence, V&V can be treated as a single topic rather than as two separate topics.
- Learn ECMAScript(Second Edition)
- React Native Cookbook
- PhpStorm Cookbook
- Elasticsearch for Hadoop
- Mastering ROS for Robotics Programming
- PHP從入門到精通(第4版)(軟件開發視頻大講堂)
- C#程序設計(項目教學版)
- 人工智能算法(卷1):基礎算法
- Qlik Sense? Cookbook
- Visual Basic程序設計基礎
- Processing開發實戰
- Mastering R for Quantitative Finance
- JSP大學實用教程
- Maya Programming with Python Cookbook
- Practical XMPP