Revvis-VV-Methods-And-Tools V20
Total Page:16
File Type:pdf, Size:1020Kb
INPE-15648-NTC/377 SOFTWARE VERIFICATION AND VALIDATION METHODS AND TOOLS Ana Maria Ambrosio Nuno Silva* *Critical Software S.A. INPE São José dos Campos 2008 Publicado por: esta página é responsabilidade do SID Instituto Nacional de Pesquisas Espaciais (INPE) Gabinete do Diretor – (GB) Serviço de Informação e Documentação (SID) Caixa Postal 515 – CEP 12.245-970 São José dos Campos – SP – Brasil Tel.: (012) 3945-6911 Fax: (012) 3945-6919 E-mail: [email protected] Solicita-se intercâmbio We ask for exchange Publicação Externa – É permitida sua reprodução para interessados. INPE-15648-NTC/377 SOFTWARE VERIFICATION AND VALIDATION METHODS AND TOOLS Ana Maria Ambrosio Nuno Silva* *Critical Software S.A. INPE São José dos Campos 2008 SOFTWARE VERIFICATION AND VALIDATION METHODS AND TOOLS REWIS PROJECT REVVIS – Reunião de Especialistas em Verificação e Validação de Software Working Group - Benchmarking de métodos e ferramentas de V&V de software Ana Maria Ambrosio [email protected] Instituto National de Pesquisas Espaciais (INPE) – Brasil Author Nuno Silva [email protected] Critical Software S.A. – Portugal Author Paulo C. Veras [email protected] Instituto de Tecnologia Aeronáutica (ITA) - Brasil Contributor Enrique Larios Vargas [email protected] Pontificia Universidad Catolica Del Peru - Peru Contributor Maximiliano Cristiá REVVIS Coordinator SUMMARY Pág. LIST OF TABLES…………………………………………………………………………… 1. Introduction .............................................................................................. .... 9 1.1 Document Scope ............................................................................................ 9 1.2 Document Structure ....................................................................................... 10 1.3 Definitions and acronyms ............................................................................... 10 2. Requirements Analysis............................................................................ ... 11 2.1 Requirements Analysis Methods .................................................................... 11 2.2 Requirements Analysis Tools ......................................................................... 12 3. Design Analysis........................................................................................ ... 15 3.1 Design Analysis Methods ............................................................................... 15 3.2 Design Analysis Tools .................................................................................... 19 4. Code Analysis.............................................................................................. 22 4.1 Code Analysis Methods.................................................................................. 22 4.2 Code Analysis Tools....................................................................................... 28 5. Testing Activities........................................................................................ .. 35 5.1 Test Methods.................................................................................................. 35 5.2 Test Tools....................................................................................................... 39 6. References..................................................................................................... 79 LIST OF TABLES 1 - Methods & Techniques for Requirements Analysis......................................... 11 2 - Tools for Requirements Analysis..................................................................... 13 3 - Methods & Techniques for Design Analysis.................................................... 15 4 - Tools for Design Analysis................................................................................ 19 5 - Methods & Techniques for Code static analysis.............................................. 23 6 - Tools for Code Analysis .................................................................................. 26 7 - Methods for test phase...............................................................................................38 8 - Tools for test phase...................................................................................... ...42 1. Introduction According to the Institute of Electrical and Electronics Engineers (IEEE), verification is (A) the process of evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. (B) The process of providing objective evidence that the software and its associated products conform to requirements (e.g., for correctness, completeness, consistency, accuracy) for all life cycle activities during each life cycle process (acquisition, supply, development, operation, and maintenance); satisfy standards, practices, and conventions during life cycle processes; and successfully complete each life cycle activity and satisfy all the criteria for initiating succeeding life cycle activities (e.g., building the software correctly). validation is (A) the process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements. (B) The process of providing evidence that the software and its associated products satisfy system requirements allocated to software at the end of each life cycle activity, solve the right problem (e.g., correctly model physical laws, implement business rules, use the proper system assumptions), and satisfy intended use and user needs. (IEEE-1012, 2005). Software verification and validation (V&V) aid in determining that the software requirements are implemented correctly and completely and are traceable to system requirements, throughout the software lifecycle. It helps to ensure that the software requirements and the systems requirements are correct, complete, accurate and testable (IEEE-1012, 2005). Software V&V includes assessment, evaluation, review, inspection, analysis and testing of software products and processes. Software V&V is performed in parallel with software development, not at the conclusion of the development effort, so different techniques, methods and tools are applied to each development phase. 1.1 Document Scope This document presents a survey of methods and tools, currently used for software verification and validation. The methods and tools are organized according to the following phases of the software development lifecycle: requirements, design, code (or implementation) and test. Qualification, operation and maintenance phases are not covered here. Concepts and tools descriptions were obtained from Wikipedia – The Free Encyclopaedia, available in: http://en.wikipedia.com; access in: February 2008. Particularly on Formal Methods, more information may be found in Centre for Applied Formal Methods (CAFM), available in: http://www.cafm.lsbu.ac.uk/ access in: 20 December 2007; and Formal Methods available in: http://vl.fmnet.info/, ftp://ftp.cordis.europa.eu/pub/ist/docs/summary05.pdf, access in: 20 December 2007, (Formal Methods). Taxonomy for Software Engineering is referred in (IEEE,1987). 9 This report is produced in the scope of the project named “REUNIÃO DE ESPECIALISTAS EM VERIFICAÇÃO E VALIDAÇÃO DE SOFTWARE” – REVVIS (Acción 507AC0326 – 2007- 2010 - CYTED) http://revvis.dei.uc.pt. 1.2 Document Structure This document is organized as follows: Section 1, this section, briefly introduces the document. Section 2, Requirements Analysis, presents some of the methods and tools applicable to requirements analysis. Section 3, Design Analysis, presents a survey of methods and tools that are suitable for the software design phase. Section 4, Code Analysis, presents a survey of methods and tools suitable for the code analysis phases. Section 5, Testing Activities, presents a survey of methods and tools suitable for the testing phases. Section 6, presents a list of applicable references for this document. 1.3 Definitions and acronyms B The B method (Formal Methods) CCS Calculus of Communicating Systems (Formal Methods) CSP Communicating Sequential Processes (Formal Methods) CSW Critical Software, S.A. FDIR Failure Detection Isolation and Recovery FMECA Failure Mode Effects and Criticality Analysis FSM Finite State Machines FTA Fault Tree Analysis HOOD Hierarchical Object Oriented Design HRT-HOOD Hard Real-Time HOOD HSIA Hardware Software Interaction Analysis HW Hardware ISVV Independent Software Verification and Validation LOTOS Language Of Temporal Ordering Specifications (Formal Methods) PN Petri Nets (Formal Methods) RAISE Rigorous Approach for Industrial Software Engineering (Formal Methods) 10 SDL Specification Description Language (Formal Methods) SFMECA Software Failure Mode Effects and Criticality Analysis SFTA Software Fault Tree Analysis SN Study Note SW Software UML Unified Modelling Language VDM Vienna Development Model (Formal Methods) WCET Worst Case Execution Time Z The Z method or, the Z Notation (Formal Methods) 2. Requirements Analysis 2.1 Requirements Analysis Methods This section presents a survey of methods and techniques that are suitable for the Requirements phase. The survey is presented in Table 1. Each method/technique is accompanied by a brief description. Table 1 - Methods & Techniques for Requirements Analysis Method / Brief description References Technique Checklist Checklists from various sources namely the N/A ones provided with some standards. Functional The analysis of system specifications (or (ECSS, 1999) analysis business specifications)