Software verification and validation

In software project management, software testing, and software engineering, verification and validation is the process of checking that a software engineer system meets specifications and requirements so that it fulfills its intended purpose. It may also be referred to as software quality control. It is normally the responsibility of software testers as part of the software development lifecycle. In simple terms, software verification is: "Assuming we should build X, does our software achieve its goals without any bugs or gaps?" On the other hand, software validation is: "Was X what we should have built? Does X meet the high-level requirements?"

Definitions

Verification and validation are not the same thing, although they are often confused. Boehm succinctly expressed the difference as[1]

  • Verification: Are we building the product right?
  • Validation: Are we building the right product?

"Building the product right" checks that the specifications are correctly implemented by the system while "building the right product" refers back to the user's needs. In some contexts, it is required to have written requirements for both as well as formal procedures or protocols for determining compliance. Ideally, formal methods provide a mathematical guarantee that software meets its specifications.

Building the product right implies the use of the Requirements Specification as input for the next phase of the development process, the design process, the output of which is the Design Specification. Then, it also implies the use of the Design Specification to feed the construction process. Every time the output of a process correctly implements its input specification, the software product is one step closer to final verification. If the output of a process is incorrect, the developers have not correctly implemented some component of that process. This kind of verification is called "artifact or specification verification".

Software verification

It would imply to verify if the specifications are met by running the software but this is not possible (e.g., how can anyone know if the architecture/design/etc. are correctly implemented by running the software?). Only by reviewing its associated artifacts, can someone conclude whether or not the specifications are met.

Artifact or specification verification

The output of each software development process stage can also be subject to verification when checked against its input specification (see the definition by CMMI below).

Examples of artifact verification:

  • Of the design specification against the requirement specification: Do the architectural design, detailed design and database logical model specifications correctly implement the functional and non-functional requirements specifications?
  • Of the construction artifacts against the design specification: Do the source code, user interfaces and database physical model correctly implement the design specification?

Software validation

Software validation checks that the software product satisfies or fits the intended use (high-level checking), i.e., the software meets the user requirements, not as specification artifacts or as needs of those who will operate the software only; but, as the needs of all the stakeholders (such as users, operators, administrators, managers, investors, etc.). There are two ways to perform software validation: internal and external. During internal software validation, it is assumed that the goals of the stakeholders were correctly understood and that they were expressed in the requirement artifacts precisely and comprehensively. If the software meets the requirement specification, it has been internally validated. External validation happens when it is performed by asking the stakeholders if the software meets their needs. Different software development methodologies call for different levels of user and stakeholder involvement and feedback; so, external validation can be a discrete or a continuous event. Successful final external validation occurs when all the stakeholders accept the software product and express that it satisfies their needs. Such final external validation requires the use of an acceptance test which is a dynamic test.

However, it is also possible to perform internal static tests to find out if the software meets the requirements specification but that falls into the scope of static verification because the software is not running.

Artifact or specification validation

Requirements should be validated before the software product as a whole is ready (the waterfall development process requires them to be perfectly defined before design starts; but iterative development processes do not require this to be so and allow their continual improvement).

Examples of artifact validation:

  • User Requirements Specification validation: User requirements as stated in a document called User Requirements Specification are validated by checking if they indeed represent the will and goals of the stakeholders. This can be done by interviewing the stakeholders and asking them directly (static testing) or even by releasing prototypes and having the users and stakeholders to assess them (dynamic testing).
  • User input validation: User input (gathered by any peripheral such as a keyboard, bio-metric sensor, etc.) is validated by checking if the input provided by the software operators or users meets the domain rules and constraints (such as data type, range, and format).

Validation vs. verification

According to the Capability Maturity Model (CMMI-SW v1.1),[2]

  • Software Validation: The process of evaluating software during or at the end of the development process to determine whether it satisfies specified requirements. [IEEE-STD-610]
  • Software Verification: The process of evaluating software to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. [IEEE-STD-610]

Validation during the software development process can be seen as a form of User Requirements Specification validation; and, that at the end of the development process is equivalent to Internal and/or External Software validation. Verification, from CMMI's point of view, is evidently of the artifact kind.

In other words, software verification ensures that the output of each phase of the software development process effectively carries out what its corresponding input artifact specifies (requirement -> design -> software product), while software validation ensures that the software product meets the needs of all the stakeholders (therefore, the requirement specification was correctly and accurately expressed in the first place). Software verification ensures that "you built it right" and confirms that the product, as provided, fulfills the plans of the developers. Software validation ensures that "you built the right thing" and confirms that the product, as provided, fulfills the intended use and goals of the stakeholders.

This article has used the strict or narrow definition of verification.

From a testing perspective:

  • Fault – wrong or missing function in the code.
  • Failure – the manifestation of a fault during execution. The software was not effective. It does not do "what" it is supposed to do.
  • Malfunction – according to its specification the system does not meet its specified functionality. The software was not efficient (it took too many resources such as CPU cycles, it used too much memory, performed too many I/O operations, etc.), it was not usable, it was not reliable, etc. It does not do something "how" it is supposed to do it.

Both verification and validation are related to the concepts of quality and of software quality assurance. By themselves, verification and validation do not guarantee software quality; planning, traceability, configuration management and other aspects of software engineering are required.

Within the modeling and simulation (M&S) community, the definitions of verification, validation and accreditation are similar:

  • M&S Verification is the process of determining that a computer model, simulation, or federation of models and simulation implementations and their associated data accurately represent the developer's conceptual description and specifications.[3]
  • M&S Validation is the process of determining the degree to which a model, simulation, or federation of models and simulations, and their associated data are accurate representations of the real world from the perspective of the intended use(s).[3]
  • Accreditation is the formal certification that a model or simulation is acceptable to be used for a specific purpose.[3]

The definition of M&S validation focuses on the accuracy with which the M&S represents the real-world intended use(s). Determining the degree of M&S accuracy is required because all M&S are approximations of reality, and it is usually critical to determine if the degree of approximation is acceptable for the intended use(s). This stands in contrast to software validation.

V&V methods

Formal

In mission-critical software systems, formal methods may be used to ensure the correct operation of a system. These formal methods can prove costly, however, representing as much as 80 percent of total software design cost.

Independent

Independent Software Verification and Validation (ISVV) is targeted at safety-critical software systems and aims to increase the quality of software products, thereby reducing risks and costs throughout the operational life of the software. The goal of ISVV is to provide assurance that software performs to the specified level of confidence and within its designed parameters and defined requirements.[4][5]

ISVV activities are performed by independent engineering teams, not involved in the software development process, to assess the processes and the resulting products. The ISVV team independency is performed at three different levels: financial, managerial and technical.

ISVV goes beyond "traditional" verification and validation techniques, applied by development teams. While the latter aims to ensure that the software performs well against the nominal requirements, ISVV is focused on non-functional requirements such as robustness and reliability, and on conditions that can lead the software to fail.

ISVV results and findings are fed back to the development teams for correction and improvement.

History

ISVV derives from the application of IV&V (Independent Verification and Validation) to the software. Early ISVV application (as known today) dates back to the early 1970s when the U.S. Army sponsored the first significant program related to IV&V for the Safeguard Anti-Ballistic Missile System.[6] Another example is NASA's IV&V Program, which was established in 1993.[7]

By the end of the 1970s IV&V was rapidly becoming popular. The constant increase in complexity, size and importance of the software led to an increasing demand on IV&V applied to software.

Meanwhile, IV&V (and ISVV for software systems) consolidated and is now widely used by organizations such as the DoD, FAA,[8] NASA[7] and ESA.[9] IV&V is mentioned in DO-178B, ISO/IEC 12207 and formalized in IEEE 1012.

At ESA

Initially in 2004-2005, a European consortium led by the European Space Agency, and composed of DNV, Critical Software SA, Terma and CODA SciSys plc created the first version of a guide devoted to ISVV, called "ESA Guide for Independent Verification and Validation" with support from other organizations.[10] This guide covers the methodologies applicable to all the software engineering phases in what concerns ISVV.

In 2008 the European Space Agency released a second version, having received inputs from many different European Space ISVV stakeholders.[10]

Methodology

ISVV is usually composed of five principal phases, these phases can be executed sequentially or as results of a tailoring process.

Planning

  • Planning of ISVV activities
  • System criticality analysis: Identification of critical components through a set of RAMS activities (Value for Money)
  • Selection of the appropriate methods and tools

Requirements verification

  • Verification for: completeness, correctness, testability

Design verification

  • Design adequacy and conformance to software requirements and interfaces
  • Internal and external consistency
  • Verification of feasibility and maintenance

Code verification

Validation

  • Identification of unstable components/functionalities
  • Validation focused on error-handling: complementary (not concurrent) validation regarding the one performed by the development team
  • Compliance with software and system requirements
  • Black box testing and White box testing techniques
  • Experience based techniques

Regulatory environment

Software often must meet the compliance requirements of legally regulated industries, which is often guided by government agencies[11][12] or industrial administrative authorities. For instance, the FDA requires software versions and patches to be validated.[13]

See also

Further reading

  • 1012-2012 IEEE Standard for System and Software Verification and Validation. 2012. doi:10.1109/IEEESTD.2012.6204026. ISBN 978-0-7381-7268-2.
  • Tran, E. (1999). "Verification/Validation/Certification". In Koopman, P. (ed.). Topics in Dependable Embedded Systems. Carnegie Mellon University. Retrieved 2007-05-18.
  • Menzies, T.; Y. Hu (2003). "Data mining for very busy people". Computer. 36 (1): 22–29. doi:10.1109/MC.2003.1244531.

References

  1. ^ Pham, H. (1999). Software Reliability. John Wiley & Sons, Inc. p. 567. ISBN 9813083840. Software Validation. The process of ensuring that the software is performing the right process. Software Verification. The process of ensuring that the software is performing the process right." Likewise and also there: "In short, Boehm (3) expressed the difference between the software verification and software validation as follows: Verification: Are we building the product right? Validation: Are we building the right product?.
  2. ^ "CMMI for Software Engineering, Version 1.1, Staged Representation (CMMI-SW, V1.1, Staged)". resources.sei.cmu.edu. 31 July 2002. Retrieved 2021-03-20.
  3. ^ a b c Department of Defense Documentation of Verification, Validation & Accreditation (VV&A) for Models and Simulations, Missile Defense Agency, 2008
  4. ^ Rogers, R. (1981-10-26). "Planning for independent software verification and validation". 3rd Computers in Aerospace Conference. Computers in Aerospace Conference. San Diego, CA, U.S.: American Institute of Aeronautics and Astronautics. doi:10.2514/6.1981-2100.
  5. ^ Ambrosio, Ana; Mattiello-Francisco, Fátima; Martins, Eliane (2008-05-12). "A Independent Software Verification and Validation Process for Space Applications". SpaceOps 2008 Conference. Heidelberg, Germany: American Institute of Aeronautics and Astronautics. doi:10.2514/6.2008-3517. ISBN 978-1-62410-167-0.
  6. ^ Lewis, Robert O. (1992). Independent verification and validation : a life cycle engineering process for quality software. New York: Wiley. ISBN 0-471-57011-7. OCLC 74908695.
  7. ^ a b Asbury, Michael (2015-03-09). "About NASA's IV&V Program". NASA. Retrieved 2021-03-20.
  8. ^ Balci, O. (2010). "Golden Rules of Verification, Validation, Testing, and Certification of Modeling and Simulation Applications". S2CID 61476570. {{cite web}}: Missing or empty |url= (help)
  9. ^ "Flight Software Systems Section (TEC-SWF)". www.esa.int. Retrieved 2021-03-20.
  10. ^ a b lavva.pt. "New ISVV Guide for Space in the Works". www.criticalsoftware.com. Retrieved 2021-03-20.
  11. ^ "General Principles of Software validation; Final Guidance for Industry and FDA Staff" (PDF). Food and Drug Administration. 11 January 2002. Retrieved 12 July 2009.
  12. ^ "Guidance for Industry: Part 11, Electronic Records; Electronic Signatures — Scope and Application" (PDF). Food and Drug Administration. August 2003. Retrieved 12 July 2009.
  13. ^ "Guidance for Industry: Cybersecurity for Networked Medical Devices Containing Off-the Shelf (OTS) Software" (PDF). Food and Drug Administration. 14 January 2005. Retrieved 12 July 2009.

Notes

Read other articles:

  لمعانٍ أخرى، طالع بلاك هوك (توضيح). بلاك هوك     الإحداثيات 39°48′11″N 105°29′31″W / 39.8031°N 105.492°W / 39.8031; -105.492  [1] تاريخ التأسيس 1859  تقسيم إداري  البلد الولايات المتحدة[2][3]  التقسيم الأعلى مقاطعة غيلبين  خصائص جغرافية  المساحة 7.07652 �...

 

Raverusto beralih ke halaman ini. Untuk anggur Piedmont yang juga dikenal sebagai Raverusto, lihat Cortese. Colore beralih ke halaman ini. Untuk varietas anggur Tuscan lainnya yang juga dikenal sebagai Colore, lihat Canaiolo. AbruscoAnggur (Vitis)kulit beriHitam kebiruanSpesiesVitis viniferaJuga disebutlihat daftar sinonimAsalItalia Abrusco adalah varietas anggur merah dari Italia yang terutama ditanam di wilayah Tuscany dan digunakan sebagai komponen minor dalam pembuatan minuman anggur Chia...

 

Roman historian and theologian (c. 375/385 – c. 420 AD) For other uses, see Orosius (disambiguation). OrosiusMiniature from the Saint-Epure codexBornc. 375/85 ADBraga, GallaeciaDiedc. 420 ADOccupation(s)Theologian and historianAcademic backgroundInfluences Augustine of Hippo Livy Jerome Junianus Justinus Tacitus Suetonius Florus Academic workMain interests Providentialism Universal history Germanic paganism Paulus Orosius (/ˈpɔːləs əˈroʊʒəs/; born c. 375/385 – c. 420 AD),[1&#...

1996 ← 1997 → 1998素因数分解 1997 (素数)二進法 11111001101三進法 2201222四進法 133031五進法 30442六進法 13125七進法 5552八進法 3715十二進法 11A5十六進法 7CD二十進法 4JH二十四進法 3B5三十六進法 1JHローマ数字 MCMXCVII漢数字 千九百九十七大字 千九百九拾七算木 1997(千九百九十七、一九九七、せんきゅうひゃくきゅうじゅうなな、せんきゅうひゃくきゅうじゅうしち)は、...

 

  لمعانٍ أخرى، طالع باب السلام (توضيح). باب السلاممعلومات عامةنوع المبنى بوابة مدينة دمشق القديمة المنطقة الإدارية دمشق البلد  سوريا معلومات أخرىالإحداثيات 33°30′51″N 36°18′37″E / 33.5142°N 36.3103°E / 33.5142; 36.3103 تعديل - تعديل مصدري - تعديل ويكي بيانات 33°30′51″N 36°18′37�...

 

B. P. Jeevan Reddy Hakim Mahkamah Agung IndiaMasa jabatan07-10-1991–13-03-1997 Informasi pribadiKebangsaanIndiaProfesiHakimSunting kotak info • L • B B. P. Jeevan Reddy adalah hakim Mahkamah Agung India. Ia mulai menjabat sebagai hakim di mahkamah tersebut pada 07-10-1991. Masa baktinya sebagai hakim berakhir pada 13-03-1997.[1] Referensi ^ Daftar Hakim di Mahkamah Agung India. Mahkamah Agung India. Diakses tanggal 10 Juni 2021.  Artikel bertopik biografi India in...

Johann Heinrich von BernstorffBernstorff in 1908German Ambassador to the United StatesIn office1908–1917Preceded byHermann Freiherr Speck von SternburgSucceeded bySuspended due to World War IGerman Ambassador to the Ottoman EmpireIn office1917–1918ReichstagIn office1921–1928 Personal detailsBorn(1862-11-14)14 November 1862London, United KingdomDied6 October 1939(1939-10-06) (aged 76)Geneva, SwitzerlandPolitical partyGerman Democratic PartySpouse Jeanne Luckemeyer ​(m...

 

Paradise in ancient Egyptian mythology Reed fields redirects here. For the natural habitat, see Reed bed. For the use of reeds to filter wastewater, see Constructed wetland. For the 2005 Indian Tamil-language film, see Aaru (film). Depiction of Aaru within a work of ancient Egyptian art, from Dayr al-Madīnah. Aaru (/ɑːˈruː/; Ancient Egyptian: jꜣrw, lit. 'reeds'), or the Field of Reeds (sḫt-jꜣrw, sekhet-aaru), is the name for heavenly paradise in Egyptian mythology. Ruled ...

 

Online illegal movie streaming site network 123Movies / GoMoviesType of siteOnline file hosting indexAvailable inEnglishCountry of originVietnamArea servedWorldwideEditors(Vietnamese-based)[1][2]RevenueAdvertisingCommercialYesRegistrationOptionalUsers98 million at peak[3]Launchedest. 2015–2016[a]Current statusOffline (clones and copy sites are still available)[2]Content licenseUnlicensed[4] 123Movies, GoMovies, GoStream, MeMovie...

NFL team season (inaugural) 1961 Minnesota Vikings seasonGeneral managerBert RoseHead coachNorm Van BrocklinHome fieldMetropolitan StadiumResultsRecord3–11Division place7th NFL WesternPlayoff finishDid not qualifyUniform Vikings seasons 1962 → The 1961 season was the Minnesota Vikings' first in the National Football League (NFL) after being created as an expansion franchise to become the league's fourteenth team. Their inaugural regular season game was a 37–13 victory at h...

 

Indian medical doctor and social worker Dr. Prakash Baba Amte redirects here. For the 2014 Indian film, see Dr. Prakash Baba Amte – The Real Hero. Dr. Prakash Baba AmteMandakini Amte and Prakash Amte during the interactive session at MIT college.Born (1948-12-26) 26 December 1948 (age 75)Anandwan, Central Provinces and Berar, India(present-day Maharashtra, India)NationalityIndianEducationMBBS Former Surgical Registrar IGMC, NagpurAlma materGovernment Medical College (Nagpur)Occupa...

 

WartonoS.E. Wakil Wali Kota Banjarbaru ke-5PetahanaMulai menjabat 26 Februari 2021PresidenJoko WidodoGubernurSafrizal ZA (Pj.) Sahbirin NoorWali KotaAditya Mufti AriffinPendahuluDarmawan Jaya SetiawanPenggantiPetahana Informasi pribadiLahir26 Februari 1966 (umur 58)Yogyakarta, Daerah Istimewa YogyakartaKebangsaanIndonesiaPartai politikPDI-PSuami/istriErmina FujiantiAnak4Alma materSTIMI BanjarmasinPekerjaanPolitikusSunting kotak info • L • B Wartono, S.E. (lahir 26 F...

Device used for aerospace physiology training This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Bárány chair – news · newspapers · books · scholar · JSTOR (June 2020) Bárány chairAir Force personnel demonstrating the effect on the sensory perception and spatial orientation of a test person in a B...

 

Château de Langoiran Vue aérienne du château. Période ou style Médiéval et renaissance Type Château fort Début construction XIIIe siècle Fin construction XVIIe siècle Propriétaire initial Famille Seguin d'Escoussans Propriétaire actuel Association Les amis du château de Langoiran Destination actuelle Visites, spectacles, mariages Protection  Classé MH (1892) Coordonnées 44° 41′ 57″ nord, 0° 22′ 54″ ouest[1] Pays Franc...

 

Portrait of Mongaku (Tokyo National Museum) Mongaku (文覚) was a Japanese samurai and Shingon Buddhist priest of the late Heian and early Kamakura period. He was a close associate of shogun Minamoto no Yoritomo, having contributed to the declaration of the Genpei War. Myōe was the disciple of his disciple Jōkaku. His secular name, before ordination, was Endō Moritō.[1] He is also known as Mongaku Shōnin. Life Mongaku penancing at Nachi waterfall with Kiṃkara and Ceṭaka (by ...

American film producer Joe PasternakPasternak in 1957BornJózsef PaszternákSeptember 19, 1901 (1901-09-19)Szilágysomlyó, Austria-HungaryDiedSeptember 13, 1991 (1991-09-14) (aged 89)Beverly Hills, California, U.S.Resting placeHillside Memorial Park CemeteryNationalityAmericanOccupationFilm producerYears active1929–1968SpouseDorothy Darrell (m. 1942)Children4 Joseph Herman Pasternak (born József Paszternák; September 19, 1901 – September 13, 1991) was a Hungarian-Am...

 

保守主義 学派文化保守主義財政保守主義(英語版)緑の保守主義自由保守主義リバタリアン保守主義国民保守主義新保守主義旧保守主義社会保守主義伝統保守主義保守自由主義 概念伝統規範家族の価値(英語版)軍事社会秩序社会階層私的所有権 人物エドマンド・バークジョージ・サヴィルジョゼフ・ド・メーストルルイ・ボナールサミュエル・テイラー・コールリ�...

 

Classification system for symmetry groups in geometry Fundamental domains of reflective 3D point groups , [ ] = [1]C1v , [2]C2v , [3]C3v , [4]C4v , [5]C5v , [6]C6v Order 2 Order 4 Order 6 Order 8 Order 10 Order 12 [2] = [2,1]D1h [2,2]D2h [2,3]D3h [2,4]D4h [2,5]D5h [2,6]D6h Order 4 Order 8 Order 12 Order 16 Order 20 Order 24 , [3,3], Td , [4,3], Oh , [5,3], Ih Order 24 Order 48 Order 120 Coxeter notation expresses Coxeter groups as a list of branch orders of a Coxeter diagram, like the polyhed...

Botswana athlete (born 1999) Tshepiso MasalelaMasalela at the 2023 World Athletics Championships in the 800 metres finalPersonal informationNationalityBotswanaBorn (1999-05-25) 25 May 1999 (age 25)SportSportAthleticsEvent(s)800m, 1500mAchievements and titlesPersonal best(s)800m: 1:43.88 (Xiamen Diamond league, 2024)1500m: 3:44.23 (Maun, 2020) Medal record Athletics Representing  Botswana African Championships 2022 Port Louis 800 m Tshepiso Masalela (born 25 May 1999) is a middle-dis...

 

Marco RosafioNazionalità Italia Altezza178 cm Peso73 kg Calcio RuoloAttaccante Squadra Potenza CarrieraGiovanili 2003-2006 Coira2006-2012 Lecce Squadre di club1 2012-2013 Lecce1 (0)2013-2014→  Viareggio27 (4)2014-2015 Lecce5 (0)2015→  Forlì16 (1)[1]2015-2016→  Monopoli20 (1)2016-2017 Juve Stabia10 (2)[2]2017-2018 Messina31 (12)2018-2019 Cavese30 (6)2019-2021 Cittadella50 (2)[3]2021-2023 Reggi...