Praticamente qualsiasi libro che tratti di test del software menziona che il test di accettazione degli utenti (UAT) è un'attività di validazione finale, spesso citando la definizione informale di Boehms: "Convalida: stai costruendo il prodotto giusto?"
Ma come mai lo stesso Boehm considera la UAT una verifica?
LINEE GUIDA PER VERIFICARE E CONVALIDARE REQUISITI DI SOFTWARE E SPECIFICHE DI PROGETTAZIONE. B.Boehm:
From the V-chart, it is clear that the key artifact idstinguishes verification activities from validation activities is the software requirements baseline. This refers to the requirements specification which is developed and validated during the Plans and Requirements Phase, accepted by the customer and developer at the Plans and Requirements Review as the basis for the software development contract, and formally change-controlled thereafter.
By definition,verification involves the comparison between the requirements baseline and the successive refinements descending from it — the product design, detailed design, code, data base, and documentation — in order to keep these refinements consistent with the requirements baseline. Thus, verification activities begins in the Product Design Phase and conclude with the Acceptance Test. They do not lead changes in the requirements baseline; only to changes in refinements descending from it.
On the other hand, validation identifies problems which must be resolved by a change of the requirements specification. Thus, there are validation activities which occur throughout the software life-cycle, including the development phase. For example, a simulation of the product design may establish not only that the design cannot meet the baseline performance requirements (verification), but also that the performance requirements are too stringent for any cost-effective product designs, and therefore need to be changed (validations).
L'unica spiegazione che posso pensare sarebbe che Boehm non ha considerato il test di accettazione come un test di accettazione USER, ma come una sorta di controllo finale rispetto alle specifiche.
Inoltre, credo che questo articolo originale a cui ogni libro fa riferimento sia molto più chiaro di quelle definizioni artificiali di V & V (che sono, inoltre, errate da questo punto di vista). Secondo Boehm, quando controllo i prodotti rispetto ai requisiti, è una verifica. Quando provo il prodotto per il suo utilizzo, lo convalido perché potrei trovare qualcosa che porti a cambiamenti nei requisiti.
Naturalmente l'idea originale di Boehm contraddice alcuni standard, come ISO 12207, in cui la convalida è quella di confermare che i requisiti per uno specifico uso previsto del prodotto di lavoro del software sono soddisfatti. la specifica.
La maggior parte dei libri afferma che la verifica è solo statica e che il codice non viene eseguito. Credo che secondo Boehm, non è vero. Es .:
Software Engineering And Quality Assurance, A.A.Puntambekar: The verification activities fall into the category of static testing.
Effective Methods for Software Testing: Includes Complete Guidelines,William E. Perr: Verification testing - testing in a static mode - ..... Validation testing (e.g. unit, integration ...)
Concluderei che, nonostante le opinioni di molti autori, ritengo che VERIFICATION includa test che vengono eseguiti per verificare la corrispondenza tra le specifiche e il programma. La validazione include anche il test, ma non si baserebbe sulle specifiche.