Verification, Testing, and Bugs

Size: px
Start display at page:

Download "Verification, Testing, and Bugs"

Transcription

1 Verification, Testing, and Bugs Ariane 5 Rocket First Launch Failure 2hwk

2 So What Happened? The sequence of events that led to the destruction of the Ariane 5 was as follows: 1. The INS attempted to convert a 64-bit number to a 16- bit number without checking that 16 bits was sufficient to hold the value. This caused a runtime error. 2. The runtime error caused the INS software to stop execution. 3. There was a backup computer executing the INS software, but (of course) it too encountered the same problem and terminated. 4. The INS hardware (of both computers) sent a report of the error to the main computer. 5. The main computer erroneously interpreted the report as extreme, but legal, data, and commanded the nozzle to fully deflect to one side. 6. The rocket turned at a sharp angle and was subjected to forces that it was not designed to withstand. It began to break up and was destroyed. Building Reliable Systems: Two Principles For a software system to be reliable: Each stage of development must be done well, with incremental verification and testing Testing and correction do not ensure quality, but reliable systems are not possible without thorough testing

3 Static and Dynamic Verification Static verification Techniques of verification that do not include execution of the software May be manual or use computer tools Dynamic verification Testing the software with trial data Debugging to remove errors Static Verification: Reviews Reviews are a form of static verification that is carried out throughout the software development process

4 Reviews Reviews are a fundamental part of good software development Concept: colleagues review each other s work Can be applied to any stage of software development, but particularly valuable for program design or code review Can be formal or informal Preparation The developer(s) provides colleagues with documentation (e.g., models, specifications, or design), or code listing. Participants study the materials in advance. Meeting The developer leads the reviewers through the materials, describing what each section does and encouraging questions. The Review Meeting A review is a structured meeting. Participants and their roles: Developer(s): person(s) whose work is being reviewed Moderator: ensures that the meeting moves ahead steadily Scribe: records discussion in a constructive manner Interested parties: other developers on the same project Outside experts: knowledgeable people who are not working on this project Client: representatives of the client who are knowledgeable about this part of the process

5 Benefits of Reviews Extra eyes spot mistakes, suggest improvements Colleagues share expertise; helps with training Incompatibilities between components can be identified Gives developers an incentive to tidy loose ends Helps scheduling and management control Successful Reviews To make a review a success: Senior team members must show leadership Good reviews require good preparation by everybody Everybody must be helpful, not threatening Allow plenty of time and be prepared to continue on another day.

6 Static Verification: Pair Design and Pair Programming Concept: achieve benefits of review by shared development Two people work together as a team: Design and/or coding Testing and system integration Documentation and hand-over Benefits include: Two people create better software with fewer mistakes Cross training Many software houses report excellent productivity using this model. Static Verification: Program Inspections Formal program reviews whose objective is to detect faults Code is read or reviewed line by line 150 to 250 lines of code in 2 hour meeting Use checklist of common errors Requires team commitment So effective that it is claimed that it can replace unit testing.

7 Static Verification: Analysis Tools Program analyzers scan the source of a program for possible errors and anomalies. Control flow: loops with multiple exit or entry points Data use: undeclared or uninitialized variables, unused variables, multiple assignments, array bounds Interface faults: parameter mismatches, non-use of functions results, uncalled procedures Storage management: unassigned pointers Defensive Programming Murphy s Law: if anything can go wrong, it will Defensive programming Write simple code Avoid risky programming constructs If code is difficult to read, rewrite it Incorporate redundant code to check system state after modifications Test implicit assumptions explicitly, e.g., check all parameters received from other routines Good programming practice eliminates all warnings from source code

8 Dynamic Verification: Stages of Testing Testing is most effective if divided into stages User interface testing (Carried out separately) Unit testing: unit test System testing Integration test Function test Performance test Installation test Acceptance testing (Carried out separately) Testing Strategies Bottom-up testing: each unit is tested with its own test environment Top-down testing: large components are tested with dummy stubs. Particularly useful for: user interfaces and client demos Stress testing: tests the system beyond its limits. Particularly useful for: real-time systems, transaction processing Most systems require a combination of all three strategies.

9 Methods of Testing Open box testing Testing is carried out by people who know the internals of what they are testing Example: tick marks in a graphing package Closed box testing Testing is carried out by people who do not know the internals of what they are testing Example: educational demonstration that was not foolproof Testing: Unit Testing Tests on small sections of a system, e.g., a single class Emphasis on accuracy of code against specification Test data is usually chosen by developers based on their understanding of the specification and knowledge of the unit Can be open or closed box: by the developers of the unit or by special testers If unit testing is not thorough, system testing becomes almost impossible. If you are working on a project that is behind schedule, do not rush unit testing.

10 Testing: System and Sub-System Testing Tests on components or complete system, combining units that have already been tested Emphasis on integration and interfaces Trial data that is typical of the actual data, and/or stresses the boundaries of the system Carried out systematically, adding components until the entire system is assembled Can be open or closed box System testing is finished faster if each component is completely debugged before assembling the next. Dynamic Verification: Test Design Testing can never prove the correctness of the system It can only show that either: A system is correct in a special case, or That it has an error The objective of testing is to find errors or demonstrate that program is correct in specific instances Testing is never comprehensive Testing is expensive

11 Test Cases Test cases are specific tests that are chosen because they are likely to find specific problems. Test cases are chosen to balance expense against chance of finding serious errors Cases chosen by the development team are effective in testing known vulnerable areas Cases chosen by experienced outsiders and clients will be effective in finding gaps left by the developers Cases chosen by inexperienced users will find other errors Variations in Test Sets A test suite is the set of all test cases that apply to a system or component of a system When running tests, there are some errors that occur only under certain circumstances, e.g., when certain other software is running on the same machine, when tasks are scheduled in specific sequences, with unusual data sets, etc. Therefore, it is customary for each test to vary some of the test cases systematically, and to change the order in which the tests are made, etc.

12 Incremental Testing (e.g., Daily Testing) [common in spiral process] Create a first iteration that has the structure of the final system and some basic functionality Create an initial set of test cases Check-in changes to the system on a daily basis, rebuild entire system daily Run a comprehensive set of test cases daily, identify and deal with any new errors Add new test cases continually Dynamic Verification: Regression Testing When software is modified, regression testing is used to check that modifications behave as intended and do not adversely affect the behavior of unmodified code After every change, however small, rerun the entire testing suite

13 Incremental Testing: Example A graphics package consisting of a pre-processor, a runtime package (Set of classes) and several device drivers Starting point: a prototype with a good overall structure, and most of the functionality, but hastily coded and not robust Approach on a daily cycle Design and code one small part of the package Integrate into prototype Create additional test cases if needed Regression test Documentation of Testing Every project needs a test plan that documents the testing procedures for thoroughness, visibility, and for future maintenance. It should include: Description of testing approach List of test cases and related bugs Procedures for running the tests Test analysis report

14 Fixing Bugs (debugging) Isolate the bug Intermittent -> repeatable Complex example -> simple example Understand the bug and its context Root cause Dependencies Structural interactions Fix the bug Design changes Documentation changes Code changes Create new test case Moving the Bugs Around Fixing bugs in an error-prone process When you fix a bug, fix its environment Bug fixes need static and dynamic testing Repeat all tests that have the slightest relevance (Regression testing) Bugs have a habit of returning When a bug is fixed, add the failure case to the test suite for future regression testing Persistence Most people work around a problem. The best people track down the root cause and fix it once and for all

15 Difficult Bugs Some bugs may be extremely difficult to track down and isolate. This is particularly true of intermittent failures. Examples: A large central computer stops a few times every month with no dump or other diagnostic. A database load dies after running for several days with no diagnostics. An image processing system runs correctly, but uses huge amounts of memory. Such problems may require months of effort to track down. For a fictional example, see: Ellen Ullman, The Bug: a Novel, (Doubleday 2003). Tracking Down a Difficult Bug (Image processing bug)

16 When Fixing a Bug Creates a Problem for Customers Sometimes customers will build applications that rely upon a bug. Fixing the bug will break the applications. The graphics package with rotation about the Z-axis in the wrong direction. An application crashes with an emulator, even though the emulator is bug free. (Compensating bug problem.) The 3-pixel rendering problem with Internet Explorer. With each of these bugs the code was easy to fix, but releasing it would have caused problems for exis6ng programs. A Note on User Interface Testing UI need several categories of testing During the design phase, user interface testing is carried out with trial users to ensure that the design is usable. Design testing is also used to develop graphical elements and to validate requirements During the implementation phase, the user interface goes through the standard steps of unit and system testing to check the reliability of the implementation Finally, acceptance testing is carried out with users, on the complete system

Part 5. Verification and Validation

Part 5. Verification and Validation Software Engineering Part 5. Verification and Validation - Verification and Validation - Software Testing Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006. Anyone can use this

More information

Verification and Validation

Verification and Validation Steven Zeil February 13, 2013 Contents 1 The Process 3 1 2 Non-Testing V&V 7 2.1 Code Review....... 8 2.2 Mathematically-based verification......................... 19 2.3 Static analysis tools... 23 2.4

More information

Verification and Validation

Verification and Validation Steven Zeil February 13, 2013 Contents 1 The Process 2 2 Non-Testing V&V 3 2.1 Code Review........... 4 2.2 Mathematically-based verification.................................. 8 2.3 Static analysis tools.......

More information

Objectives. Chapter 19. Verification vs. validation. Topics covered. Static and dynamic verification. The V&V process

Objectives. Chapter 19. Verification vs. validation. Topics covered. Static and dynamic verification. The V&V process Objectives Chapter 19 Verification and Validation Assuring that a software system meets a user s need are to introduce software verification and validation (V&V) and to discuss the distinction between

More information

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification vs validation Verification: "Are we building the product right?. The software should

More information

Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 22 Slide 1

Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 22 Slide 1 Verification and Validation Slide 1 Objectives To introduce software verification and validation and to discuss the distinction between them To describe the program inspection process and its role in V

More information

ΗΜΥ 317 Τεχνολογία Υπολογισμού

ΗΜΥ 317 Τεχνολογία Υπολογισμού ΗΜΥ 317 Τεχνολογία Υπολογισμού Εαρινό Εξάμηνο 2008 ΙΑΛΕΞΕΙΣ 18-19: Έλεγχος και Πιστοποίηση Λειτουργίας ΧΑΡΗΣ ΘΕΟΧΑΡΙ ΗΣ Λέκτορας ΗΜΜΥ (ttheocharides@ucy.ac.cy) [Προσαρμογή από Ian Sommerville, Software

More information

Verification and Validation

Verification and Validation Verification and Validation Assuring that a software system meets a user's needs Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 1 Objectives To introduce software verification

More information

Software Design Models, Tools & Processes. Lecture 6: Transition Phase Cecilia Mascolo

Software Design Models, Tools & Processes. Lecture 6: Transition Phase Cecilia Mascolo Software Design Models, Tools & Processes Lecture 6: Transition Phase Cecilia Mascolo UML Component diagram Component documentation Your own classes should be documented the same way library classes are.

More information

Examination Questions Time allowed: 1 hour 15 minutes

Examination Questions Time allowed: 1 hour 15 minutes Swedish Software Testing Board (SSTB) International Software Testing Qualifications Board (ISTQB) Foundation Certificate in Software Testing Practice Exam Examination Questions 2011-10-10 Time allowed:

More information

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process Verification and Validation Assuring that a software system meets a user s needs Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 19,20 Slide 1

More information

Software Engineering (CSC 4350/6350) Rao Casturi

Software Engineering (CSC 4350/6350) Rao Casturi Software Engineering (CSC 4350/6350) Rao Casturi Testing Software Engineering -CSC4350/6350 - Rao Casturi 2 Testing What is testing? Process of finding the divergence between the expected behavior of the

More information

Software Testing CS 408

Software Testing CS 408 Software Testing CS 408 1/09/18 Course Webpage: http://www.cs.purdue.edu/homes/suresh/408-spring2018 1 The Course Understand testing in the context of an Agile software development methodology - Detail

More information

Lecture 15 Software Testing

Lecture 15 Software Testing Lecture 15 Software Testing Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved. Used with permission. Topics covered

More information

Sample Exam Syllabus

Sample Exam Syllabus ISTQB Foundation Level 2011 Syllabus Version 2.9 Release Date: December 16th, 2017. Version.2.9 Page 1 of 46 Dec 16th, 2017 Copyright 2017 (hereinafter called ISTQB ). All rights reserved. The authors

More information

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015 Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 11/10/2015 http://cs.gsu.edu/~ncasturi1 Class announcements Final Exam date - Dec 1 st. Final Presentations Dec 3 rd. And

More information

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only Chapter 22 Software Testing Strategies Slide Set to accompany Software Engineering: A Practitioner s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright 1996, 2001, 2005, 2009, 2014

More information

Software Engineering Fall 2014

Software Engineering Fall 2014 Software Engineering Fall 2014 (CSC 4350/6350) Mon.- Wed. 5:30 pm 7:15 pm ALC : 107 Rao Casturi 11/10/2014 Final Exam date - Dec 10 th? Class announcements Final Presentations Dec 3 rd. And Dec 8 th. Ability

More information

Chapter 8 Software Testing. Chapter 8 Software testing

Chapter 8 Software Testing. Chapter 8 Software testing Chapter 8 Software Testing 1 Topics covered Introduction to testing Stages for testing software system are: Development testing Release testing User testing Test-driven development as interleave approach.

More information

Verification and Validation

Verification and Validation Verification and Validation Minsoo Ryu Hanyang University Topics Covered 1. Verification and Validation 2. Software Inspections 3. Automated Static Analysis 4. Verification and Formal Methods 2 2 1. Verification

More information

Regression testing. Whenever you find a bug. Why is this a good idea?

Regression testing. Whenever you find a bug. Why is this a good idea? Regression testing Whenever you find a bug Reproduce it (before you fix it!) Store input that elicited that bug Store correct output Put into test suite Then, fix it and verify the fix Why is this a good

More information

Learning outcomes. Systems Engineering. Debugging Process. Debugging Process. Review

Learning outcomes. Systems Engineering. Debugging Process. Debugging Process. Review Systems Engineering Lecture 9 System Verification II Dr. Joanna Bryson Dr. Leon Watts University of Bath Department of Computer Science 1 Learning outcomes After both lectures and doing the reading, you

More information

Program Correctness and Efficiency. Chapter 2

Program Correctness and Efficiency. Chapter 2 Program Correctness and Efficiency Chapter 2 Chapter Objectives To understand the differences between the three categories of program errors To understand the effect of an uncaught exception and why you

More information

CSE 403: Software Engineering, Fall courses.cs.washington.edu/courses/cse403/16au/ Unit Testing. Emina Torlak

CSE 403: Software Engineering, Fall courses.cs.washington.edu/courses/cse403/16au/ Unit Testing. Emina Torlak CSE 403: Software Engineering, Fall 2016 courses.cs.washington.edu/courses/cse403/16au/ Unit Testing Emina Torlak emina@cs.washington.edu Outline Software quality control Effective unit testing Coverage

More information

Steps for project success. git status. Milestones. Deliverables. Homework 1 submitted Homework 2 will be posted October 26.

Steps for project success. git status. Milestones. Deliverables. Homework 1 submitted Homework 2 will be posted October 26. git status Steps for project success Homework 1 submitted Homework 2 will be posted October 26 due November 16, 9AM Projects underway project status check-in meetings November 9 System-building project

More information

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation 1 Objectives To introduce software verification and validation and to discuss the distinction between them To describe the program inspection process and its role in V & V To

More information

Chapter 8. Achmad Benny Mutiara

Chapter 8. Achmad Benny Mutiara Chapter 8 SOFTWARE-TESTING STRATEGIES Achmad Benny Mutiara amutiara@staff.gunadarma.ac.id 8.1 STATIC-TESTING STRATEGIES Static testing is the systematic examination of a program structure for the purpose

More information

Ingegneria del Software II academic year: Course Web-site: [www.di.univaq.it/ingegneria2/]

Ingegneria del Software II academic year: Course Web-site: [www.di.univaq.it/ingegneria2/] Course: Ingegneria del Software II academic year: 2004-2005 Course Web-site: [www.di.univaq.it/ingegneria2/] Verification and Validation Lecturer: Henry Muccini and Vittorio Cortellessa Computer Science

More information

CS 520 Theory and Practice of Software Engineering Fall 2018

CS 520 Theory and Practice of Software Engineering Fall 2018 CS 520 Theory and Practice of Software Engineering Fall 2018 Nediyana Daskalova Monday, 4PM CS 151 Debugging October 30, 2018 Personalized Behavior-Powered Systems for Guiding Self-Experiments Help me

More information

CS 161 Computer Security. Security Throughout the Software Development Process

CS 161 Computer Security. Security Throughout the Software Development Process Popa & Wagner Spring 2016 CS 161 Computer Security 1/25 Security Throughout the Software Development Process Generally speaking, we should think of security is an ongoing process. For best results, it

More information

Integration and Testing. Uses slides from Lethbridge & Laganiere, 2001

Integration and Testing. Uses slides from Lethbridge & Laganiere, 2001 Integration and Testing Uses slides from Lethbridge & Laganiere, 2001 Testing phases: V model Requirements Acceptance Testing Specifications System Testing Design Integration Testing Detailed Design Unit

More information

FAULT TOLERANCE. Fault Tolerant Systems. Faults Faults (cont d)

FAULT TOLERANCE. Fault Tolerant Systems. Faults Faults (cont d) Distributed Systems Fö 9/10-1 Distributed Systems Fö 9/10-2 FAULT TOLERANCE 1. Fault Tolerant Systems 2. Faults and Fault Models. Redundancy 4. Time Redundancy and Backward Recovery. Hardware Redundancy

More information

Software Development. Software Testing: Verification and Validation. Verification and Validation (V&V) Verification. Validation

Software Development. Software Testing: Verification and Validation. Verification and Validation (V&V) Verification. Validation Software Development Software Testing: Verification and Validation Problem domain Customer Specification Problem statement A set of (docs, use cases) Program code Running System 2 Verification and Validation

More information

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs.

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs. In this Lecture you will Learn: Testing in Software Development Process Examine the verification and validation activities in software development process stage by stage Introduce some basic concepts of

More information

Chapter 11, Testing. Using UML, Patterns, and Java. Object-Oriented Software Engineering

Chapter 11, Testing. Using UML, Patterns, and Java. Object-Oriented Software Engineering Chapter 11, Testing Using UML, Patterns, and Java Object-Oriented Software Engineering Outline Terminology Types of errors Dealing with errors Quality assurance vs Testing Component Testing! Unit testing!

More information

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake Sample ISTQB examination 1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake 2 Regression testing should

More information

Darshan Institute of Engineering & Technology for Diploma Studies

Darshan Institute of Engineering & Technology for Diploma Studies CODING Good software development organizations normally require their programmers to follow some welldefined and standard style of coding called coding standards. Most software development organizations

More information

Facts About Testing. Cost/benefit. Reveal faults. Bottom-up. Testing takes more than 50% of the total cost of software development

Facts About Testing. Cost/benefit. Reveal faults. Bottom-up. Testing takes more than 50% of the total cost of software development Reveal faults Goals of testing Correctness Reliability Usability Robustness Performance Top-down/Bottom-up Bottom-up Lowest level modules tested first Don t depend on any other modules Driver Auxiliary

More information

Eliminate Memory Errors and Improve Program Stability

Eliminate Memory Errors and Improve Program Stability Eliminate Memory Errors and Improve Program Stability 1 Can running one simple tool make a difference? Yes, in many cases. You can find errors that cause complex, intermittent bugs and improve your confidence

More information

Creating an Intranet using Lotus Web Content Management. Part 2 Project Planning

Creating an Intranet using Lotus Web Content Management. Part 2 Project Planning Creating an Intranet using Lotus Web Content Management Introduction Part 2 Project Planning Many projects have failed due to poor project planning. The following article gives an overview of the typical

More information

Write perfect C code to solve the three problems below.

Write perfect C code to solve the three problems below. Fall 2017 CSCI 4963/6963 Week 12 David Goldschmidt goldschmidt@gmail.com Office: Amos Eaton 115 Office hours: Mon/Thu 1:00-1:50PM; Wed 1:00-2:50PM Write perfect C code to solve the three problems below.

More information

Testing. ECE/CS 5780/6780: Embedded System Design. Why is testing so hard? Why do testing?

Testing. ECE/CS 5780/6780: Embedded System Design. Why is testing so hard? Why do testing? Testing ECE/CS 5780/6780: Embedded System Design Scott R. Little Lecture 24: Introduction to Software Testing and Verification What is software testing? Running a program in order to find bugs (faults,

More information

Software Testing Interview Question and Answer

Software Testing Interview Question and Answer Software Testing Interview Question and Answer What is Software Testing? A process of analyzing a software item to detect the differences between existing and required conditions (i.e., defects) and to

More information

CS 424 Software Quality Assurance & Testing LECTURE 3 BASIC CONCEPTS OF SOFTWARE TESTING - I

CS 424 Software Quality Assurance & Testing LECTURE 3 BASIC CONCEPTS OF SOFTWARE TESTING - I LECTURE 3 BASIC CONCEPTS OF SOFTWARE TESTING - I WHAT IS SOFTWARE TESTING? Testing can find faults in the software but cannot prove that the software is error-free. OBJECTIVES OF SOFTWARE TESTING To test

More information

So, You Want to Test Your Compiler?

So, You Want to Test Your Compiler? So, You Want to Test Your Compiler? Theodore S. Norvell Electrical and Computer Engineering Memorial University October 19, 2005 Abstract We illustrate a simple method of system testing by applying it

More information

Sample Exam. Certified Tester Foundation Level

Sample Exam. Certified Tester Foundation Level Sample Exam Certified Tester Foundation Level Answer Table ASTQB Created - 2018 American Stware Testing Qualifications Board Copyright Notice This document may be copied in its entirety, or extracts made,

More information

Shree.Datta Polytechnic College,Dattanagar, Shirol. Class Test- I

Shree.Datta Polytechnic College,Dattanagar, Shirol. Class Test- I Shree. Datta S.S.S.K. Charitable Trust s Shree.Datta Polytechnic College,Dattanagar, Shirol Class Test- I Course Code:CO6E Subject:-SOFTWARE TESTING Marks:-25 Semester:-VI Subject code:-12258 Date:- Institute

More information

9 th CA 2E/CA Plex Worldwide Developer Conference 1

9 th CA 2E/CA Plex Worldwide Developer Conference 1 1 Introduction/Welcome Message Organizations that are making major changes to or replatforming an application need to dedicate considerable resources ot the QA effort. In this session we will show best

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

Software Testing. Software Testing

Software Testing. Software Testing Software Testing Software Testing Error: mistake made by the programmer/ developer Fault: a incorrect piece of code/document (i.e., bug) Failure: result of a fault Goal of software testing: Cause failures

More information

MONIKA HEINER.

MONIKA HEINER. LESSON 1 testing, intro 1 / 25 SOFTWARE TESTING - STATE OF THE ART, METHODS, AND LIMITATIONS MONIKA HEINER monika.heiner@b-tu.de http://www.informatik.tu-cottbus.de PRELIMINARIES testing, intro 2 / 25

More information

TITAN 5300 Software. Unit Test Guidelines. S. Darling, S. Harpster, R. Hite, K. Konecki, W. Martersteck, R. Stewart. Revision 2.0

TITAN 5300 Software. Unit Test Guidelines. S. Darling, S. Harpster, R. Hite, K. Konecki, W. Martersteck, R. Stewart. Revision 2.0 TITAN 5300 Software Unit Test Guidelines S. Darling, S. Harpster, R. Hite, K. Konecki, W. Martersteck, R. Stewart Revision 2.0 1994, Tellabs Operations, Inc., 4951 Indiana Ave., Lisle, IL 60532 (312) 969-8800

More information

CS314 Software Engineering Peer Reviews

CS314 Software Engineering Peer Reviews CS314 Software Engineering Peer Reviews Dave Matthews 1 Peer Reviews Informal Over the shoulder Tool assisted (like GitHub pull request reviews) Email pass around Pair Programming Formal Inspections Inspections

More information

Software Quality. Richard Harris

Software Quality. Richard Harris Software Quality Richard Harris Part 1 Software Quality 143.465 Software Quality 2 Presentation Outline Defining Software Quality Improving source code quality More on reliability Software testing Software

More information

Tutorial 1 Answers. Question 1

Tutorial 1 Answers. Question 1 Tutorial 1 Answers Question 1 Complexity Software in it what is has to do, is often essentially complex. We can think of software which is accidentally complex such as a large scale e-commerce system (simple

More information

Verification and Validation

Verification and Validation Chapter 5 Verification and Validation Chapter Revision History Revision 0 Revision 1 Revision 2 Revision 3 Revision 4 original 94/03/23 by Fred Popowich modified 94/11/09 by Fred Popowich reorganization

More information

Design Heuristics and Evaluation

Design Heuristics and Evaluation Design Heuristics and Evaluation Rapid Evaluation Selected material from The UX Book, Hartson & Pyla Heuristic Evaluation Another method for finding usability problems in a UI design Validation during

More information

Certified Tester Foundation Level(CTFL)

Certified Tester Foundation Level(CTFL) Certified Tester Foundation Level(CTFL) ISTQB : International Software Testing Qualifications Board Heading: The International Software Testing Qualifications Board (ISTQB) is an internationally recognized

More information

Tool Selection and Implementation

Tool Selection and Implementation Tool Selection and Implementation Paul Gerrard Systeme Evolutif Limited email: paulg@evolutif.co.uk http://www.evolutif.co.uk 2000 Systeme Evolutif Ltd Slide 1 Agenda What Can Test Execution Tools Do For

More information

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification Techniques

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification Techniques Software Testing in the textbook Software Testing Chapter 8 Introduction (Verification and Validation) 8.1 Development testing 8.2 Test-driven development 8.3 Release testing 8.4 User testing 1 2 Verification

More information

It is primarily checking of the code and/or manually reviewing the code or document to find errors This type of testing can be used by the developer

It is primarily checking of the code and/or manually reviewing the code or document to find errors This type of testing can be used by the developer Static testing Static testing is a software testing method that involves examination of the program's code and its associated documentation but does not require the program be executed. Dynamic testing,

More information

Test Automation. Fundamentals. Mikó Szilárd

Test Automation. Fundamentals. Mikó Szilárd Test Automation Fundamentals Mikó Szilárd 2016 EPAM 2 Blue-chip clients rely on EPAM 3 SCHEDULE 9.12 Intro 9.19 Unit testing 1 9.26 Unit testing 2 10.03 Continuous integration 1 10.10 Continuous integration

More information

User-Centered Development

User-Centered Development Software Lifecycle CS470 User-Centered Development User-centered development refers to a design process for creating a system that meets the needs of the user Users should be included in the design process

More information

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties Why testing and analysis Software Testing Adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Software is never correct no matter what developing testing technique is used All software must be

More information

Testing & Debugging TB-1

Testing & Debugging TB-1 Testing & Debugging TB-1 Need for Testing Software systems are inherently complex» Large systems 1 to 3 errors per 100 lines of code (LOC) Extensive verification and validiation is required to build quality

More information

Comparison Study of Software Testing Methods and Levels- A Review

Comparison Study of Software Testing Methods and Levels- A Review Comparison Study of Software Testing Methods and Levels- A Review Deepti Kapila Grover M.Tech, Dept. of Computer Science, Assistant professor in LCET, Katani Kalan, India ABSTRACT: Software is an activity

More information

CIS 890: Safety Critical Systems

CIS 890: Safety Critical Systems CIS 890: Safety Critical Systems Lecture: Requirements Introduction Copyright 2011, John Hatcliff. The syllabus and all lectures for this course are copyrighted materials and may not be used in other course

More information

The Integration Phase Canard. Integration and Testing. Incremental Integration. Incremental Integration Models. Unit Testing. Integration Sequencing

The Integration Phase Canard. Integration and Testing. Incremental Integration. Incremental Integration Models. Unit Testing. Integration Sequencing Integration and Testing The Integration Phase Canard Integration Strategy Came from large system procurement phased vs. incremental integration integration processes and orders Testing Strategy numerous

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

WHY TEST SOFTWARE?...

WHY TEST SOFTWARE?... 2 At a glance 1 PREFACE... 3 2 AT A GLANCE... 5 3 TABLE OF CONTENTS... 9 4 INTRODUCTION... 17 5 WHY TEST SOFTWARE?... 19 5.1 WHY TEST SOFTWARE?... 19 5.2 LIMITATIONS OF TESTING... 20 5.3 ALTERNATIVE TO

More information

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification and Validation: Goals

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification and Validation: Goals Software Testing in the textbook Software Testing Chapter 8 Introduction (Verification and Validation) 8.1 Development testing 8.2 Test-driven development 8.3 Release testing 8.4 User testing 1 2 Verification

More information

Software Quality Assurance. David Janzen

Software Quality Assurance. David Janzen Software Quality Assurance David Janzen What is quality? Crosby: Conformance to requirements Issues: who establishes requirements? implicit requirements Juran: Fitness for intended use Issues: Who defines

More information

Chapter 4. Evaluating Interface Designs

Chapter 4. Evaluating Interface Designs Chapter 4 Evaluating Interface Designs 1 Introduction Designers may fail to evaluate their designs adequately. Experienced designers know that extensive testing is a necessity. Few years ago, evaluation

More information

BECOME A LOAD TESTING ROCK STAR

BECOME A LOAD TESTING ROCK STAR 3 EASY STEPS TO BECOME A LOAD TESTING ROCK STAR Replicate real life conditions to improve application quality Telerik An Introduction Software load testing is generally understood to consist of exercising

More information

Writing better code Loop invariants Correctness. John Edgar 2

Writing better code Loop invariants Correctness. John Edgar 2 Writing better code Loop invariants Correctness John Edgar 2 Not all code is equal Correct and reliable code is one of our goals Is a new car correct or reliable? Other characteristics of good code Affordable

More information

Using Static Code Analysis to Find Bugs Before They Become Failures

Using Static Code Analysis to Find Bugs Before They Become Failures Using Static Code Analysis to Find Bugs Before They Become Failures Presented by Brian Walker Senior Software Engineer, Video Product Line, Tektronix, Inc. Pacific Northwest Software Quality Conference,

More information

Terminology. There are many different types of errors and different ways how we can deal with them.

Terminology. There are many different types of errors and different ways how we can deal with them. Testing Terminology Reliability: The measure of success with which the observed behavior of a system confirms to some specification of its behavior. Failure: Any deviation of the observed behavior from

More information

CMSC 132: OBJECT-ORIENTED PROGRAMMING II

CMSC 132: OBJECT-ORIENTED PROGRAMMING II CMSC 132: OBJECT-ORIENTED PROGRAMMING II Program Testing Department of Computer Science University of Maryland, College Park Debugging Is Harder Than Coding! Debugging is twice as hard as writing the code

More information

Leveraging Formal Methods Based Software Verification to Prove Code Quality & Achieve MISRA compliance

Leveraging Formal Methods Based Software Verification to Prove Code Quality & Achieve MISRA compliance Leveraging Formal Methods Based Software Verification to Prove Code Quality & Achieve MISRA compliance Prashant Mathapati Senior Application Engineer MATLAB EXPO 2013 The MathWorks, Inc. 1 The problem

More information

The testing process. Component testing. System testing

The testing process. Component testing. System testing Software testing Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating system

More information

Chapter 10. Testing and Quality Assurance

Chapter 10. Testing and Quality Assurance Chapter 10 Testing and Quality Assurance Different styles of doing code review Human Reviewer Code Inspection with continuous integration infrastructure Pinger s testing set up Testing Related topics 1.

More information

Introduction to Problem Solving and Programming in Python.

Introduction to Problem Solving and Programming in Python. Introduction to Problem Solving and Programming in Python http://cis-linux1.temple.edu/~tuf80213/courses/temple/cis1051/ Overview Types of errors Testing methods Debugging in Python 2 Errors An error in

More information

Verification and Validation. Verification and validation

Verification and Validation. Verification and validation Verification and Validation Verification and validation Verification and Validation (V&V) is a whole life-cycle process. V&V has two objectives: Discovery of defects, Assessment of whether or not the system

More information

People tell me that testing is

People tell me that testing is Software Testing Mark Micallef mark.micallef@um.edu.mt People tell me that testing is Boring Not for developers A second class activity Not necessary because they are very good coders 1 What is quality?

More information

Testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements.

Testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements. TESTING Testing is the process of evaluating a system or its component(s) with the concentrating to find whether it satisfies the specified requirements or not. Testing is executing a system in order to

More information

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS SOFTWARE ENGINEERING

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS SOFTWARE ENGINEERING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS 6403 - SOFTWARE ENGINEERING QUESTION BANK TWO MARKS UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT 1. What is software engineering? Software engineering

More information

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering?

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering? Q2a. What are the key challenges being faced by software engineering? Ans 2a. The key challenges facing software engineering are: 1. Coping with legacy systems, coping with increasing diversity and coping

More information

Ready to Automate? Ready to Automate?

Ready to Automate? Ready to Automate? Bret Pettichord bret@pettichord.com www.pettichord.com 1 2 1 2. Testers aren t trying to use automation to prove their prowess. 3 Monitoring and Logging Diagnostic features can allow you to View history

More information

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing. Overview CS 619 Introduction to OO Design and Development ing! Preliminaries! All sorts of test techniques! Comparison of test techniques! Software reliability Fall 2012! Main issues: There are a great

More information

Test Automation Beyond Regression Testing

Test Automation Beyond Regression Testing Test Automation Beyond Regression Testing Doug Hoffman, BA, MBA, MSEE, ASQ-CSQE Software Quality Methods, LLC. (SQM) www.softwarequalitymethods.com doug.hoffman@acm.org STPCon Spring 2008 Why Automate

More information

Examining the Code. [Reading assignment: Chapter 6, pp ]

Examining the Code. [Reading assignment: Chapter 6, pp ] Examining the Code [Reading assignment: Chapter 6, pp. 91-104] Static white-box testing Static white-box testing is the process of carefully and methodically reviewing the software design, architecture,

More information

The Importance of Test

The Importance of Test Software Testing Mistake in coding is called error, Error found by tester is called defect, Defect accepted by development team is called bug, Product does not meet the requirements then it Is failure.

More information

The Migration/Modernization Dilemma

The Migration/Modernization Dilemma The Migration/Modernization Dilemma By William Calcagni www.languageportability.com 866.731.9977 Approaches to Legacy Conversion For many years businesses have sought to reduce costs by moving their legacy

More information

By default, optional warnings are disabled, so any legacy code that doesn't attempt to control the warnings will work unchanged.

By default, optional warnings are disabled, so any legacy code that doesn't attempt to control the warnings will work unchanged. SYNOPSIS use warnings; no warnings; use warnings "all"; no warnings "all"; use warnings::register; if (warnings::enabled()) warnings::warn("some warning"); if (warnings::enabled("void")) warnings::warn("void",

More information

Sample Exam ISTQB Advanced Test Analyst Answer Rationale. Prepared By

Sample Exam ISTQB Advanced Test Analyst Answer Rationale. Prepared By Sample Exam ISTQB Advanced Test Analyst Answer Rationale Prepared By Released March 2016 TTA-1.3.1 (K2) Summarize the generic risk factors that the Technical Test Analyst typically needs to consider #1

More information

By V-cubed Solutions, Inc. Page1. All rights reserved by V-cubed Solutions, Inc.

By V-cubed Solutions, Inc.   Page1. All rights reserved by V-cubed Solutions, Inc. By V-cubed Solutions, Inc. Page1 Purpose of Document This document will demonstrate the efficacy of CODESCROLL CODE INSPECTOR, CONTROLLER TESTER, and QUALITYSCROLL COVER, which has been developed by V-cubed

More information

CREATIVE ASSERTION AND CONSTRAINT METHODS FOR FORMAL DESIGN VERIFICATION

CREATIVE ASSERTION AND CONSTRAINT METHODS FOR FORMAL DESIGN VERIFICATION CREATIVE ASSERTION AND CONSTRAINT METHODS FOR FORMAL DESIGN VERIFICATION Joseph Richards SGI, High Performance Systems Development Mountain View, CA richards@sgi.com Abstract The challenges involved in

More information

Software Testing and Maintenance

Software Testing and Maintenance Software Testing and Maintenance Testing Strategies Black Box Testing, also known as Behavioral Testing, is a software testing method in which the internal structure/ design/ implementation of the item

More information

TestComplete 3.0 Overview for Non-developers

TestComplete 3.0 Overview for Non-developers TestComplete 3.0 Overview for Non-developers Copyright 2003 by Robert K. Leahey and AutomatedQA, Corp. All rights reserved. Part : Table of Contents Introduction 1 About TestComplete 1 Basics 2 Types of

More information

Frontline Interoperability Test Team Case Studies

Frontline Interoperability Test Team Case Studies Frontline Interoperability Test Team Case Studies Frontline IOT Means Maximum Device Compatibility Case Summary A large Bluetooth developer (Customer X) created a new Bluetooth-enabled phone for commercial

More information