110 likes | 313 Views
Validation and Verification. Carlos E. Acosta. Validation. This is a domain analysis question Test the design specification against the users’ requirements Are we building the right product?. From http://www.smi.ucd.ie/~rinat/comp2014/lectures/testing_hand.pdf. Verification.
E N D
Validation and Verification Carlos E. Acosta
Validation • This is a domain analysis question • Test the design specification against the users’ requirements • Are we building the right product? From http://www.smi.ucd.ie/~rinat/comp2014/lectures/testing_hand.pdf
Verification • This is a coding question • Test the code against the design specification • Are we building the product right? From http://www.smi.ucd.ie/~rinat/comp2014/lectures/testing_hand.pdf
Facts on the use of V&V • The differences between verification and validation are unimportant except to the theorist. • Practitioners use the term V&V to refer to all of the activities that are aimed at making sure the software will function as required. • The terms of verification and validation are used with many, often inconsistent, meaning. Ghezzi Carlo, Jazayeri Mehdi, Mandrioli, Dino. Fundamentals of Software Engineering 2nd edition http://satc.gsfc.nasa.gov/assure/agbsec5.txt
Major V&V Activities • Reviews, including inspections and walkthroughs • Reviews • Consist of the presentation of material to a review board or panel. • Most effective when conducted by personnel who have not been directly involved in the development of the software. • Determine whether established requirements, design concepts, and specifications have been met. • Inspections or Walkthroughs • Detailed examination of a product on a step-by-step or line-of-code by line-of-code basis. • The group that does an inspection or walkthrough is composed of peers from development, test, and quality assurance. • The purpose is to find errors. • Testing http://satc.gsfc.nasa.gov/assure/agbsec5.txt
Test Criteria Pass Real or simulated inputs Program Testing Component Output Fail Testing • Testing is the operation of the software with real or simulated inputs • Demonstrate that a product satisfies its requirements and, if it does not, identify the specific differences between expected and actual results. • Goal: • To detect faults • Fault: A mistake in the program which causes one or more errors and failures • Failure: An incorrect behavior of a system that is externally visible • Error: An incorrect internal state which may or may not be externally detectable as a failure • Levels of software tests • Unit or element testing • Integration testing • Performance testing • Software system • Acceptance tests.
Testing (2) • How to get the input data? • Tester • Automatic Test Generator • From where can we get the information? • Specification (Black-Box testing) • Code (White-Box testing)
My approach: Basic Idea • Validation and Verification by testing • Automatic test generation based on constraint techniques • Get information from: • Software design documents • Software Requirements Specification (SRS) • Scenarios • Functional requirements • Statechart diagrams • Data Flow Diagrams • Software Design Document (SDD) • Detailed Design • Pre-conditions • Post-conditions
High-level algorithm • Identify inputs to the system (variables) • Identify the input’s domain (domain of the variables) • Transform requirements into a constraint satisfaction problem (CSP) • Apply CSP techniques to solve the problem • The solutions to the CSP indicate tests that have to be run in order to validate the software
Some Challenges (=S) • SRS/SDD completeness • SRS/SDD in natural language Formal specifications • What formal specification language to use? • Z notation • VDM (Vienna Development Method) • RAISE (Rigorous Approach to Industrial Software Engineering) • JML (Java Modeling Language) • OCL (Object Constraint Language) • Formal specifications CSP
Some good news ( =) ) • System Validation and Verification via Constraint Modeling is possible • Waters Richard C. System Validation via Constraint Modeling. Massachusetts Institute of Technology Artificial Intelligence Laboratory. February, 1988 • Helene Collavizza and Michel Rueher. Exploration of the capabilities of constraint programming for software verification. 2006 • Automatic test generation based on constraint techniques is possible • Bernhard K. Aichernig Percy Antonio Pari Salas. Test Case Generation by OCL mutation and Constraint Solving. International Institute for Software Technology. 2005 • Richard A. DeMillo A. Jeerson Outt. Constraint-Based Automatic Test Data Generation. February 21, 1997 • Gotlieb A., Botella B. and Rueher M : Automatic Test Data Generation using Constraint Solving Techniques. 1998. • ingzi Jin, Hong Zhu: Automatic Generation of Formal Specification fromRequirements Definition. ICFEM 1997