Software Verification and Validation. Prof. Lionel Briand Ph.D., IEEE Fellow

Similar documents
Chapter 8: Verification & Validation

SWEN 256 Software Process & Project Management

New Idea In Waterfall Model For Real Time Software Development

STUDY ON FIREWALL APPROACH FOR THE REGRESSION TESTING OF OBJECT-ORIENTED SOFTWARE

Software Testing Introduction

TOWARDS CUSTOMIZED SMART GOVERNMENT QUALITY MODEL

ENGAGE MSU STUDENTS IN RESEARCH OF MODEL-BASED SYSTEMS ENGINEERING WITH APPLICATION TO NASA SOUNDING ROCKET MISSION

Software processes, quality, and standards Static analysis

IBM Software Group. Mastering Requirements Management with Use Cases Module 2: Introduction to RMUC

TAIC PART 2007 and Mutation 2007 Special Issue Editorial

Interpretation von Software Qualitätsmetriken aus automatisierter statischer Analyse

Distilling Scenarios from Patterns for Software Architecture Evaluation A Position Paper

SYSTEMATIC MODEL BASED AND SEARCH BASED TESTING OF CYBER PHYSICAL SYSTEMS

Evaluation Plan for a Cardiological Multi- Media Workstation (I4C Project)

Service-Oriented Software Engineering - SOSE (Academic Year 2015/2016)

Automated Driving Systems with Model-Based Design for ISO 26262:2018 and SOTIF

Non-Functional Requirements (NFRs) Definitions

Performance Evaluation of MANET Using Quality of Service Metrics

RE Basics : Purpose and Nature of Requirements

Computer Science: Who Cares? Computer Science: It Matters. Computer Science: Disciplines

Software Testing for Developer Introduction. Duvan Luong, Ph.D. Operational Excellence Networks

UNIT IV SOFTWARE PROCESSES & TESTING SOFTWARE PROCESS - DEFINITION AND IMPLEMENTATION

Ethics. Paul Jackson. School of Informatics University of Edinburgh

Integrated Product Development: Linking Business and Engineering Disciplines in the Classroom

Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement

An "asymmetric" approach to the assessment of safety-critical software during certification and licensing

BCS3323 Software Testing and Maintenance. Overview of Testing

Introduction to Software Engineering

Topical Collection on Blockchain-based Medical Data Management System: Security and Privacy Challenges and Opportunities

UNIT VIII SYSTEM METHODOLOGY 2014

Designing for recovery New challenges for large-scale, complex IT systems

Design Science Research Methods. Prof. Dr. Roel Wieringa University of Twente, The Netherlands

F. Tip and M. Weintraub REQUIREMENTS

Principled Construction of Software Safety Cases

A Multi-Disciplinary Research Approach, Illustrated by the Boderc Project

Software Maintenance Cycles with the RUP

IECI Chapter Japan Series Vol. 5 No. 2, 2003 ISSN

Mid Term Exam SES 405 Exploration Systems Engineering 3 March Your Name

The multi-facets of building dependable applications over connected physical objects

A FRAMEWORK FOR PERFORMING V&V WITHIN REUSE-BASED SOFTWARE ENGINEERING

Out of the Ivory Tower: Tao Xie Peking University ( ), China North Carolina State University Raleigh, NC, USA

Systems Engineering Presented at Stevens New Jersey Community College Strategic Partnership 27 th September, 2005

Research Statement. 1. Research Overview. 2. Current Research Agenda

Computer Science: Disciplines. What is Software Engineering and why does it matter? Software Disasters

Socio-cognitive Engineering

UML and Patterns.book Page 52 Thursday, September 16, :48 PM

Resource Review. In press 2018, the Journal of the Medical Library Association

EduSymp Panel How do we inspire students to model?

Focusing Software Education on Engineering

Towards a Software Engineering Research Framework: Extending Design Science Research

Fiscal 2007 Environmental Technology Verification Pilot Program Implementation Guidelines

Measurement tools at heart of Smart Grid need calibration to ensure reliability

Introduction to adoption of lean canvas in software test architecture design

Does it Pay Off? Model-Based Verification and Validation of Embedded Systems!

ANALYSIS AND EVALUATION OF COGNITIVE BEHAVIOR IN SOFTWARE INTERFACES USING AN EXPERT SYSTEM

CSE 435: Software Engineering

Pervasive Services Engineering for SOAs

Improving Software Sustainability Through Data-Driven Technical Debt Management

! Role of RE in software and systems engineering! Current techniques, notations, methods, processes and tools used in RE

Analysis of Software Artifacts

Model-Based Systems Engineering Methodologies. J. Bermejo Autonomous Systems Laboratory (ASLab)

Object-oriented Analysis and Design

ERAU the FAA Research CEH Tools Qualification

Human-Computer Interaction

Introduction to Design Science Methodology

THE APPLICATION OF SYSTEMS ENGINEERING ON THE BUILDING DESIGN PROCESS

Some caveats Summary

Component Based Mechatronics Modelling Methodology

Making your ISO Flow Flawless Establishing Confidence in Verification Tools

Introduction. Requirements Engineering: Why RE? What is RE? How to do RE? -> RE Processes. Why RE in SysE? Case Studies and The Standish Report

Scientific Certification

Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering

The Evolution of User Research Methodologies in Industry

ISSN: (Online) Volume 4, Issue 4, April 2016 International Journal of Advance Research in Computer Science and Management Studies

CSC2106S Requirements Engineering

Putting the Systems in Security Engineering An Overview of NIST

An Enhancement of Software Quality A Review

Abstract. Introduction

TRACEABILITY WITHIN THE DESIGN PROCESS

S Coding Methods (5 cr) P. Prerequisites. Literature (1) Contents

M&S Requirements and VV&A: What s the Relationship?

Purpose and Difficulty of Software Testing

The essential role of. mental models in HCI: Card, Moran and Newell

Software Architecture. New wine in old bottles? (i.e., software architecture global design?, architect designer)

EE 434 ASIC & Digital Systems

VERIFICATION, VALIDATION & ACCREDITATION: DISCIPLINES IN DIALOGUE OR CAN WE LEARN FROM THE EXPERIENCES OF OTHERS? Panel Presentation

Benefits of Formal Specification Techniques in Software Development

Software Eng. 2F03: Logic For Software Engineering

CSE 110 Software Engineering A view from the research university

Policy-Based RTL Design

INTELLIGENT SOFTWARE QUALITY MODEL: THE THEORETICAL FRAMEWORK

An Integrated Framework for Assembly-Oriented Product Design and Optimization

Developing and Distributing a Model-Based Systems Engineering(MBSE) CubeSat Reference Model Status

FM p.i-xxii 4/2/04 11:39 AM Page v. Preface

Introduction to Design Science Methodology

New forms of scholarly communication Lunch e-research methods and case studies

Measuring Testability of Object Oriented Design: A Systematic Review

Fault Management Architectures and the Challenges of Providing Software Assurance

Evidence Engineering. Audris Mockus University of Tennessee and Avaya Labs Research [ ]

HCI of Software. Design Methodologies Tools CASE, UML, Patterns Interface Builders. design. implement

Transcription:

Software Verification and Validation Prof. Lionel Briand Ph.D., IEEE Fellow 1

Lionel s background Worked in industry, academia, and industry-oriented research institutions France, USA, Germany, Canada, Norway Scientist in a NASA GSFC lab, Maryland, USA Worked with ESA on Ariane launcher SW testing processes Head of the SW quality engineering department at a Fraunhofer Institute in Germany (Siemens, Bosch, Daimler) Professor and Canada Research Chair in software quality engineering (collaborated with IBM, Siemens, Nortel) Moved to Simula Research Laboratory in July 2007 to build a new area of expertise: Software Testing, Verification, and Validation Founded the first IEEE conference on software verification and validation (ICST) On the editorial board of Software Testing, Verification, and Reliability (STVR) journal, Wiley Leading a new research center on software V&V at Simula 2

V&V Definitions Verification and Validation (V&V) is the process of checking that a software system meets specifications and that it fulfils its intended purpose. Verification is a Quality control process that is used to evaluate whether or not a product, service, or system complies with regulations, specifications, or conditions imposed at the start of a development phase. This is often an internal process. Validation is a Quality assurance process of establishing evidence that provides a high degree of assurance that a product, service, or system accomplishes its intended requirements. This often involves acceptance of fitness for purpose with end users and other product stakeholders. "Are you building the right thing?" versus "Are you building it right?" 3

Course Introduction 4

Course Objectives Foundations of software verification and validation (V&V) Mostly a practical perspective Emphasis on testing (many kinds) Most important V&V technique in practice But also safety analysis, fault tolerance, model checking, requirements quality assurance, etc More basic coverage of other aspects No emphasis on tools as this will change (quickly) over time But, in the future, you ll be able to assess how useful a tool is 5

Main Sources A. Mathur, Foundations of Software Testing, Pearson Education, 2008 M. Pezze and M. Young, Software Analysis and Software Testing, Wiley, 2007 P. Ammann and J Offutt, Introduction to Software Testing, Cambridge Press, 2007 6

Other Sources 1. B. Beizer, Software Testing Techniques, Van Nostrand Reinhold, New York, 2nd Ed., 1990 2. B. Marick, The Craft of Software Testing, Prentice Hall, 1995 3. M. Roper, Software Testing, McGraw-Hill, 1995 4. Bashir and Goel. Testing Object-oriented Software, Springer, 2000 5. Jorgensen, Software Testing, A Craftman s Approach, CRC Press, 1995 6. R. V. Binder, Testing Object-Oriented Systems - Models, Patterns, and Tools, Addison-Wesley, 1999 7

Software has become prevalent in all aspects of our lives 8

Development, not production Human intensive Engineering, but also social process Increasingly complex software systems Pervasive in an increasing number of industries 9

Errors Errors are a part of our daily life. Humans make errors in their thoughts, actions, and in the products that might result from their actions. Errors occur wherever humans are involved in taking actions and making decisions. These fundamental facts of human existence make testing an essential activity. 10

Software Error, faults, failures Aditya P. Mathur 2009 11

Everywhere 12

Incident: Yahoo! mail doesn t let me log in Failure: The user account cannot be accessed in the user database. Fault: The user database can not be reached. Error: There was no backup user database in the system. 13

Fatal Therac-25 X-ray Radiation In 1986, a man in Texas received between 16,500-25,000 radiations in less than 10 sec, over an area of about 1 cm. He passed away 5 months later. The root cause of the incident was a SW failure Incident: A patient passed away Failure: The device applied higher frequency of radiations than what was safe. Safety range: [1 10,000 Hz]. Fault: The software controller of the device did not have a conditional block (if. else statements) to perform range checking on the frequency of the radiation to be applied. (2) Errors: 1. The SW developer of the device controller system had forgotten to include a range checking conditional block on the frequency of the radiation to be applied. 2. The device operator was NOT supposed to enter anything outside [1 10,000 Hz] range. 14

Dealing with SW Faults Fault Handling Fault Avoidance Fault Detection Fault Tolerance Requirements Engineering Inspections Atomic Transactions Modular Redundancy Design Methodology Automated Verification Testing Debugging Component Testing Integration Testing System Testing Correctness Debugging Performance Debugging 15

Software Quality 16

Software quality attributes Static quality attributes: structured, maintainable, testable code as well as the availability of correct and complete documentation. Dynamic quality attributes: software reliability, correctness, completeness, consistency, usability, and performance 17

Software quality (contd.) Completeness refers to the availability of all features listed in the requirements, or in the user manual. An incomplete software is one that does not fully implement all features required. Consistency refers to adherence to a common set of conventions and assumptions. For example, all buttons in the user interface might follow a common color coding convention. An other example of inconsistency regarding data confidentiality would be when a database application displays the date of birth of a person in the database. 18

Software quality attributes (contd.) Usability refers to the ease with which an application can be used. This is an area in itself and there exist techniques for usability testing. Psychology plays an important role in the design of techniques for usability testing. Performance refers to the time the application takes to perform a requested task. It is considered as a non-functional requirement. It is specified in terms such as ``This task must be performed at the rate of X units of activity in one second on a machine running at speed Y, having Z gigabytes of memory." 19

ISO 9126: Evaluation of Software Quality Functionality - A set of attributes that bear on the existence of a set of functions and their specified properties. The functions are those that satisfy stated or implied needs. Suitability Accuracy Interoperability Compliance Security Reliability - A set of attributes that bear on the capability of software to maintain its level of performance under stated conditions for a stated period of time. Maturity Recoverability Fault Tolerance Usability - A set of attributes that bear on the effort needed for use, and on the individual assessment of such use, by a stated or implied set of users. Learnability Understandability Operability Efficiency - A set of attributes that bear on the relationship between the level of performance of the software and the amount of resources used, under stated conditions. Time Behaviour Resource Behaviour Maintainability - A set of attributes that bear on the effort needed to make specified modifications. Stability Analyzability Changeability Testability Portability - A set of attributes that bear on the ability of software to be transferred from one environment to another. Installability Replaceability Adaptability Conformance (similar to compliance, above, but here related specifically to portability, e.g. conformance to a particular database standard) 20

Pervasive Problems Software is commonly delivered late, way over budget, and of unsatisfactory quality Software validation and verification are rarely systematic and are usually not based on sound, well-defined techniques Software development processes are commonly unstable and uncontrolled Software quality is poorly measured, monitored, and controlled. Software failure examples: http:/ /www.cse.lehigh.edu/~gtan/bug/softwarebug.html 21

Consequences of Poor Quality Standish Group surveyed 350 companies, over 8000 projects, in 1995 31% cancelled before completed, 9-16% were delivered within cost and budget US study (1995): 81 billion US$ spent per year for failing software development projects http://www.it-cortex.com/stat_failure_rate.htm NIST study (2002): bugs cost $ 59.5 billion a year. Earlier detection could save $22 billion. 22

Definitions: Software Engineering Software engineering (SE) is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. The discipline of software engineering encompasses knowledge, tools, and methods for defining software requirements, and performing software design, software construction, software testing, and software maintenance tasks. Software engineering draws on knowledge from fields such as computer engineering, computer science, management, mathematics, project management, quality management, software ergonomics, and systems engineering. The term software engineering was popularized during the 1968 NATO Software Engineering Conference (held in Garmisch, Germany). 23

V&V Definitions SW quality Engineering: The discipline of specifying, assuring, and controlling the quality of software products SW management: The discipline of managing projects to achieve quality within time constraints and budget SW verification: The goal is to find as many latent defects as possible before delivery SW validation: The goal is to gain confidence in the software, shows it meets its specifications 24

SW Testing: Techniques to execute programs with the intent of finding as many defects as possible and/or gaining sufficient confidence in the software system under test. Program testing can show the presence of bugs, never their absence (Dijkstra) SW Inspections: Techniques aimed at systematically verifying non-executable software artifacts with the intent of finding as many defects as possible, as early as possible 25

Course Project Project: Apply some of the testing techniques to actual software, quantitatively compare techniques, assess drawbacks and advantages Short initial plan + final report Guidelines for plan and report 26

Students should apply the software testing techniques learned in the course to a case study software system of their choice http://sourceforge.net/ You should use software testing tools: 10 commercial tools can be downloaded with an academic license or a trial version Many open source test tools on: http://www.opensourcetesting.org Study systems can be provided. You can also select your own case study system (but it should be reasonably complex)! Note that you must try one or several techniques discussed in the course with the tool(s) of your choice. Tool Vendor: Parasoft Parasoft Jtest Parasoft C++test Parasoft.TEST Vendor: IBM Rational IBM Rational Functional Tester IBM Rational Manual Tester IBM Rational Test RealTime IBM Rational Performance Tester IBM Rational TestManager Others vendors JUnit JMeter 27

Expectations Thorough review of literature (journals and conferences) Integration and synthesis of state-of-the art material Application and comparison of techniques on case studies When relevant, report on practical experience (e.g., tools) Clear, well-structured report Start thinking right away of what you want to do and get out of the course Start reading ASAP! 28

Report Evaluation Coverage and depth of material in report Thoroughness of gained understanding on selected topic Completeness of analysis and results Capability to synthesize and structure the discussion Quality of presentation 29

Deadlines To be investigated Depends on when must grades be provided to the university Submissions are made through email to my attention Expect acknowledgement of submission 30

Advice Review on a regular basis the course notes, go through the examples Start project thinking early on Ask questions in class 31

Additional Books 1. SafeWare: system safety and computers, N. Leveson, Addison-Wesley. 1995 2. Handbook of Software Reliability, McGraw-Hill, M. Lyu, editor. 1995 3. Software fault tolerance, M. Lyu, Chichester, England, Wiley. 1995 4. Metrics and models in software quality engineering, 2 nd edition, S. Kan, Addison-Wesley. 2003 5. N. E. Fenton, S. L. Pfleeger; 1996; Software Metrics: A Rigorous and Practical Approach; 2nd Ed.; International Thomson Computer Press; U.K. 32

General Software Engineering If needed you have to refresh your SE knowledge (UML, etc.) 1. Object-Oriented Software Engineering, Bruegge and Dutoit, Prentice-Hall 2000 2. Software engineering, I. Sommerville, Addison-Wesley 3. An many others all available at the library 33

Journals IEEE Transactions on Software Engineering ACM Transactions on Software Engineering and Methodology Software Testing, Verification, and Reliability (Wiley) Journal of Systems and Software (Elsevier) Journal of Software Practice and Experience (Wiley) Empirical Software Engineering (Springer) 34

Conferences IEEE International Conference on Software Testing, Verification, and Validation (ICST) IEEE International Symposium on Software Reliability Engineering (ISSRE) ACM International Symposium on Software Testing and Analysis (ISSTA) International Conference on Software Engineering (ICSE) 35