QUALITY ASSURANCE. Michael Weintraub Fall, 2015
|
|
- Randolph Jefferson
- 6 years ago
- Views:
Transcription
1
2 QUALITY ASSURANCE Michael Weintraub Fall, 2015
3 Unit Objective Understand what quality assurance means Understand QA models and processes
4 Definitions According to NASA Software Assurance: The planned and systematic set of activities that ensures that software life cycle processes and products conform to requirements, standards, and procedures. Software Quality: The discipline of software quality is a planned and systematic set of activities to ensure quality is built into the software. It consists of software quality assurance, software quality control, and software quality engineering. As an attribute, software quality is (1) the degree to which a system, component, or process meets specified requirements. (2) The degree to which a system, component, or process meets customer or user needs or expectations [IEEE IEEE Standard Glossary of Software Engineering Terminology]. Software Quality Assurance: The function of software quality that assures that the standards, processes, and procedures are appropriate for the project and are correctly implemented. Software Quality Control: The function of software quality that checks that the project follows its standards, processes, and procedures, and that the project produces the required internal and external (deliverable) products. Software Quality Engineering: The function of software quality that assures that quality is built into the software by performing analyses, trade studies, and investigations on the requirements, design, code and verification processes and results to assure that reliability, maintainability, and other quality factors are met. Software Reliability: The discipline of software assurance that 1) defines the requirements for software controlled system fault/failure detection, isolation, and recovery; 2) reviews the software development processes and products for software error prevention and/or controlled change to reduced functionality states; and 3) defines the process for measuring and analyzing defects and defines/derives the reliability and maintainability factors. Verification: Confirmation by examination and provision of objective evidence that specified requirements have been fulfilled [ISO/IEC 12207, Software life cycle processes]. In other words, verification ensures that you built it right. Validation: Confirmation by examination and provision of objective evidence that the particular requirements for a specific intended use are fulfilled [ISO/IEC 12207, Software life cycle processes.] In other words, validation ensures that you built the right thing. From:
5 Software Quality Assurance Technology Objective: Designing a quality system and writing quality software The tech team aims to deliver a correctly behaving system to the client Software Quality Assurance is about assessing if the system meets expectations Доверяй, но проверяй (Russian Proverb - Doveryay, no proveryay) Trust, but verify
6 Validation Versus Verification Validation Verification Are we building the right product or service? Are we building the product or service right? Both involve testing done at every stage but testing can only show the presence of errors, not their absence Dijkstra
7 Validation Typically a client-leaning activity After all, they are the ones who asked for the system Product Trials User Experience Evaluation
8 Verification Optimist: It s about showing correctness/goodness Pessimist: It s about identifying defects Good Input? Good Output System Bad Input? Bad Output
9 Quality versus Reliability Quality Assurance Reliability Assessing whether a software component or system produces the expected/correct/accepted behavior or output relationship between a given set of inputs OR Assessing features of the software Probability of failure-free software operation for a specified duration in a particular environment Cool phrases Five 9 s No down-time
10 Fun Story First Computer Bug (1947) The First "Computer Bug". Moth found trapped between points at Relay # 70, Panel F, of the Mark II Aiken Relay Calculator while it was being tested at Harvard University, 9 September The operators affixed the moth to the computer log, with the entry: "First actual case of bug being found". They put out the word that they had "debugged" the machine, thus introducing the term "debugging a comp...uter program". In 1988, the log, with the moth still taped by the entry, was in the Naval Surface Warfare Center Computer Museum at Dahlgren, Virginia. The log is now housed at the Smithsonian Institution s National Museum of American History, who have corrected the date from 1945 to Courtesy of the Naval Surface Warfare Center, Dahlgren, VA., NHHC Photograph Collection, NH KN (Color). From
11 Testing is Computationally Hard The space is huge and it is generally infeasible to test anything completely Assessing quality is an exercise in establishing confidence in a system Or Minimizing Risks Other factors include Quality of the Process Quality of the Team Quality of the Environment App 1 OS 1 VM Host OS Hardware Each layer introduces risk
12 Component behavior Interactions between components System and subsystem behavior Interactions between sub-systems Negative path Behavior under load Behavior over time Usability Lots to Consider
13 Two Approaches Static Evaluations Dynamic Evaluations Making judgments without executing the code Involves executing the code and judging performance
14 Static Technique - Reviews Fundamental QA Technique Peer(s) reviews artifact for correctness and clarity Often a formal process Value: finding issues at design/definition time rather than waiting for results of the step to complete Highly effective, but does not replace the need for dynamic techniques Requirements Architecture & Design Implementation Test Plans
15 One Extreme: Jury/Peer Reviews Before anything is accepted, someone other than the creator must review it and approve it Single reviewer model Usually a certified / senior person Panel model Highly structured reviews Can take significant preparation Usually done at the design or development stage May introduce delay between when code is written and when it gets reviewed
16 Reviews Models exist for both reviewer or author to lead the discussion Author usually provides participants materials to study in advance Requires positive and open attitudes and preparation Review Meeting Moderator Scribe Value Second opinion on clarity, effectiveness, and efficiency Author Review Panel Peers Experts Client(s) Learning from others Avoids board blindness on seeing flaws Peer pressure to be neat and tie up loose ends
17 Paired Programming Lightweight Peer Reviews One person drives while the other watches/reviews Derived from Extreme Programming, current favorite in agile When compared to solo dev models, MAY cause higher initial cost per module created (time and resource), BUT higher quality and lower overall cost See as an example Continuous review Shared problem solving Better communications Learning from Peer Social! Peer Pressure
18 What do reviews look for? Clarity Can the reader easily and directly understand what the artifact is doing Correctness Analysis of algorithm used Common Code Faults 1. Data initialization, value ranges and type mismatches 2. Control: are all the branches really necessary (are the conditions properly and efficiently organizated)? Do loops terminate? 3. Input: are all parameters or collected values used? 4. Output: every output is assigned a value? 5. Interface faults: Parameter numbers, types, and order; structures and shared memory 6. Storage management: memory allocation, garbage collection, inefficient memory access 7. Exception handling: what can go wrong, what error conditions are defined and how are they handled List adapted from W. Arms:
19 Examples You are asked to sort an array. There are many algorithms to sort an array. [You aren t going to use a library function so you have to write this] Many choices exist. Suppose you are deciding between bubble sort, quicksort, and merge sort. All will work (sort an array), but which will be the better code? Bubble sort is very easy to write: two loops. Slow on average O(n 2 ) how big will n be?? O(n) for memory. Quicksort is complicated to write. O(n log(n)) on average, O(n 2 ) worst case. Requires constant memory O(n). Very effective on in-memory data. Most implementations are very fast. Mergesort is moderate to write. O(n log(n)) worst case. Memory required is a function of the data structure. Very effective on data that requires external access.
20 Expressively Logical boolean SquareRoot (double dvalue, double &dsquareroot) { boolean bretvalue = false; boolean SquareRoot (double dvalue, double &dsquareroot) { dsquareroot = NULL; } if (dvalue < 0) { dsquareroot = NULL; bretvalue = false; } else { dsquareroot = pow(dvalue, 0.5); bretvalue = true; } return bretvalue; } if (dvalue < 0) return false; dsquareroot = pow(dvalue, 0.5); return true;
21 Evaluate code modules automatically looking for errors or odd things Loops or programs within multiple exits (more common) or entries (less common) Undeclared, uninitialized, or unused variables Unused functions/procedures, parameter mismatches Unassigned pointers Memory leaks Static Program Analyzers Show paths through code/system Show how outputs depend on inputs
22 Rules of Defensive Programming (taken from Bill Arms) Based on Murphy s Law: Anything that can go wrong, will 1. Write SIMPLE code 2. If code is difficult to read, RE-WRITE IT 3. Test implicit assumptions Check all parameters passed in from other modules 4. Eliminate all compiler warnings from code 5. It never hurts to check system states after modification
23 Dynamic Evaluations Quick Terminology Mistake A human action that results in an incorrect result Fault / Defect Incorrect step, process, or data within the software Failure Inability of the software to perform within performance criteria Error The difference between the observed and the expected value or behavior Objective Write test cases and organize them into suites that cause failure and illuminate faults Ideally you will fail in striving for this objective, but you will be surprised how successful you may be
24 Who is a Tester? Developers Experienced Outsiders and Clients Good for exposing known risks areas Good for finding gaps missed by developers Inexperienced Users Good for finding other errors Mother Nature Always finds the hidden flaw
25 Approaches 1. Top Down System flows are tested Units are stubbed 2. Bottom Up Each unit is tested on its own Especially useful in UI s, UX Workflows Very large systems 3. Stress Test at or past design limits
26 Testing Flow (Dynamic Evaluation) Soak Operational Readiness Acceptance Unit Test Integration Functional Performance System Test Installation Operational Test Client Test Unit
27 Two Forms of Testing Black Box White Box
28 Black Box Testing No access to the internal workings of the system under test (SUT) Testing against specifications The tester knows what the SUT s I/O or behavior should be The tester observes the results or behavior With software, this tests the interface What is input to the system? What you can do from the outside to change the system? What is output from the system?
29 Can a Component Developer Do Black Box Testing?
30 White Box Testing Have access to the internal workings of the system under test (SUT) Testing against specifications, with access to algorithms, data structures, and messaging. The tester observes the results or behavior Testing evaluates logical paths through code Conditionals Loops Branches Impossible to exercise all paths completely, so you make compromises Focus paths on only important paths Keeping components small is a big help here Focus on only important data structures
31 Ground Floor Unit Testing Tests focus an individual component 1. Interfaces 2. Messages 3. Shared memory 4. Internal functions Emphasizes adherence to the specifications Code bases often include the code and the unit tests as a coherent piece Usually done by developers building the component Unit tests decouple the developer from the code Individual code ownership is not required if unit tests protect the code Unit tests enable refactoring After each small change, the unit tests can verify that a change in structure did not introduce a change in functionality
32 What Makes for a Good Test Test Perspective Either addresses a partition of inputs or tests for common developer errors Automated Runs Fast To encourage frequent use Small in scope Test one thing at a time When a failure occurs, it should pinpoint the issue and not require much debugging Tester Perspective Know why the test exists Should target finding specific problems Should optimize the cost of defining and running the test against the likelihood of finding a fault/failure Failure messages help make the issue clear Should not have to refer to the test to understand the issue
33 Organizing Testing Test Plan Describes test activities 1. Scope 2. Approach 3. Resources 4. Schedule Identifies What is to be tested The tasks required to do the testing Who will do each task The test environment The test design techniques Entry and exit criteria to be used Risk identification and contingency planning Test Suite A set of test cases and scripts to measure answers Often the post condition of one test is often used as the precondition for the next one OR Tests may be executed in any order Adapted from
34 Defect Severity An assessment of a defect s impact Can be a major source of contention between dev and test Critical Major Minor Show stopper. The functionality cannot be delivered unless that defect is cleared. It does not have a workaround. Major flaw in functionality but it still can be released. There is a workaround; but it is not obvious and is difficult. Affects minor functionality or non-critical data. There is an easy workaround. Trivial Does not affect functionality or data. It does not even need a workaround. It does not impact productivity or efficiency. It is merely an inconvenience.
35 Test Exit Report Input to Go/No Go Decision 1. Document Purpose Short description about the objective 2. Application Overview Overview of the SUT 3. Testing Scope Describes the functions/modules in and out of scope for testing. Also identifies what was omitted. 4. Metrics Results of testing, including summaries Number of test cases planned vs executed Number of test cases passed/failed Number of defects identified and their Status & Severity Distribution of defects 5. Types of testing performed Description of tests run 6. Test Environment and Tools Description of the environment. Helpful for recreating issues and understanding context 7. Recommendations Workaround options 8. Exit Criteria Statement whether SUT passes or not 9. Conclusion/Sign Off Go/ no go recommendation
36 Testing Hint #1 Mess With Inputs If a single value, try Negative values Alternate types Very small or very large inputs (overflow buffers if you can) Null values If input is a sequence, try Using a single valued sequence Repeated values Varying the length of sequences and the order of the data Forcing situations where the first, last and middle values are used Try to force each and every error message Try to force computational overflows or underflows
37 Testing Hint #2 Force Every Path Each logical path must be exercised at least once Each execution path through the code If then else = Two paths Switch case() = One path per case +one path if no catch-all case Repeat Until Two paths While Do Two paths Object member functions = 1 path per signature
38 Testing Hint #3 Mess With Interfaces Remember, interfaces may be involve 1. References to data or functions Data may be passed by-reference or by-data Methods only have data interfaces 2. Shared memory 3. Messages Internals 1. Functions 2. Data Set interface parameters to extremely low and high values Set pointer values to NULL Mis-type the parameters or violate value boundaries e.g. set input as negative where the signature expects 0 Call the component so it will fail and check the failure reactions Pass too few or too many parameters Bombard the interface with messages With shared memory, vary accessor instantiation and access activities
39 Testing Hint #4 Be Diabolical Try to break the system by using data with extreme values to crash the system
40 Life Lessons If unit testing is not thorough, all subsequent testing will likely be a waste of time. You should always take the time to do a good job with unit testing Even when the project is falling behind Unit tests will be most needed when you have the least amount of time Unit tests should be created before they are needed, not when you need them The end of a project is almost always compressed Developers often defer testingrelated tasks until as late as possible
41 System Test Integrating components and sub-systems to create the system Testing checks on component compatibility, interactions, correctly passing information, and timing Like Unit Test, activities focus on following uses and data 1. Typical 2. Boundaries 3. Outliers 4. Failures Unlike Unit Test Components may come from many, independent parties Bespoke development may meet Off-The-Shelf or reused components Testing becomes a group activity Testing may move to an independent team altogether
42 WARNING Will be a complete and utter waste if components are not thoroughly tested
43 Unlike Components, Systems Have Emergent Behavior Some behavior is only clear when you put components together This has to be tested too, although it can be very hard to plan in advance!
44 Integrating Multiple Parties May Introduce Conflict System Integration Implications Components may come from multiple, possibly independent, parties Bespoke development may meet Off-The-Shelf or reused components Testing becomes a group activity Testing may move to an independent team altogether Who controls integration readiness? What does lab entry mean? Are COTS components trusted? How to assign credit for test results and then who is responsible for repairs? How to maintain momentum when everyone isn t at the table? When partner priorities are not shared? What about open source?
45 Testing Focus Emphasizes component compatibility, interactions, correctly passing information, and timing Integration aims to find misunderstandings one component introduces when it interacts with other components Use Cases are a useful testing model Forces components to interact Sequence diagrams form a strong basis for designing these tests Articulates the inputs required and the expected behaviors and outputs
46 Iterative Development Leads to Iterative Testing Two senses 1. Create tests incrementally 2. Run tests iteratively a. On check-in and branch merge, test all affected modules b. On check-in, test all modules c. Per a schedule, test all modules E.g. daily Regression Testing Each change, especially after a bug fix, should mean adding at least one new test case It is always best to test after each change as completely as you can, and completely before a release
47 Your testing is good enough until a problem shows that it is not good enough It is hard to know when you should feel enough confidence to release the system Confidence comes, in part, on the sub-test of possible tests selected Picking the Subset high Selection based on company policy Every statement must executed one Every path must be exercised Crafted by specific end user use cases (scenario testing) Software Quality low many defects found few defects found few defects found few defects found high Selection based on testing team experience Test Quality low
48 Defect Density Measuring Quality: Defect Density Using the past to estimate the future Judges code stability by comparing past number of bugs per code measure (lines of code, number of modules, ) to present measured levels bugdensity release (i) = bugs pre release (i) + bugspost release ( i) codemeasure If density for the next release s additional code is within ranges of prior releases, it is a candidate for release Unless test or development practices have improved Poor Software Quality Expected Quality Poor Test Coverage/Quality Release 1 2
49 Measuring Quality: Defect Seeding Using a known quantity as inference to the unknown Judges code stability by intentionally inserting bugs into a program and then measuring how many get found as an estimator for the actual number of bugs bugs release (i) = seededbugs planted(i) seededbugs found (i) bugsfound(i) Challenges 1. Seeding is not easy. Placing right kinds of bugs in enough of the code is hard. Bad seeding, being too easy or too hard to find, creates false senses of confidence in your reviews and testing Too easy: doesn t mean that most or all of the real bugs were found. Too hard: danger of looking past the Goodenov line or for things that aren t there 2. Seeded code must be cleansed of any missed seeds before release. Post cleanup, the code must be tested to insure nothing got accidently broken.
50 Measuring Quality: Capture-Recapture Applies estimating technique used in predicting wild-life populations (Humphrey, Introduction to Team Software Process, Addison Wesley, 2000) Uses data collected by two or more independent collectors Collected via reviews or tests Example: Estimating Turtle Population You tag 5 turtles and release them. You later catch 10 turtles, two have tags. Total # of turtles 10 turtles 5 turtles Total # of turtles = 10 turtles 5 turtles 2 turtles 2 turtles = 25 turtles
51 Each collector finds some defects out of the total number of defects Some of these defects found will overlap Method 1. Count the number of defects found by each collector (A, B) 2. Count the number of intersecting defects found by each collector (C) 3. Calculate defects found = (A+B) - C 4. Estimate total defects = (A B) C Capture-Recapture 5. Estimate remaining defects = (A B) - (A+B)-C C If multiple collectors, assign A to the highest collected number and set B to the rest of the collected defects. When multiple engineers find the same defect, count it just once.
52 Performance Testing Measures the system s capacity to process load Involves creating and executing an operational profile that reflects the expected values of uses Performance Aims to assess compliance with non-functional requirements Endurance Measures reliability and availability Stress Identify defects that emerge only under load Ideally the system should degrade gracefully rather than collapse under load Under load, other issues like protocol overhead or timing issues take center stage
UNIT OBJECTIVE. Understand what system testing entails Learn techniques for measuring system quality
SYSTEM TEST UNIT OBJECTIVE Understand what system testing entails Learn techniques for measuring system quality SYSTEM TEST 1. Focus is on integrating components and sub-systems to create the system 2.
More informationVerification, Testing, and Bugs
Verification, Testing, and Bugs Ariane 5 Rocket First Launch Failure https://www.youtube.com/watch?v=gp_d8r- 2hwk So What Happened? The sequence of events that led to the destruction of the Ariane 5 was
More informationF. Tip and M. Weintraub FUNCTIONAL TESTING
F. Tip and M. Weintraub FUNCTIONAL TESTING ACKNOWLEDGEMENTS Thanks go to Andreas Zeller for allowing incorporation of his materials 2 HOW TO TELL IF A SYSTEM MEETS EXPECTATIONS? Two options: 1. testing:
More informationPart 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 information1 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 informationLecture 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 informationVerification 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 informationOverview. 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 informationStandard Glossary of Terms used in Software Testing. Version 3.2. Foundation Extension - Usability Terms
Standard Glossary of Terms used in Software Testing Version 3.2 Foundation Extension - Usability Terms International Software Testing Qualifications Board Copyright Notice This document may be copied in
More informationVerification 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 informationSoftware 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 informationTopics in Software Testing
Dependable Software Systems Topics in Software Testing Material drawn from [Beizer, Sommerville] Software Testing Software testing is a critical element of software quality assurance and represents the
More informationChapter 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 informationSample 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 informationIn 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 informationChapter 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 informationSoftware 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 informationChapter 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 informationTesting. 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 informationTerminology. 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 informationSoftware 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 informationQuestion 1: What is a code walk-through, and how is it performed?
Question 1: What is a code walk-through, and how is it performed? Response: Code walk-throughs have traditionally been viewed as informal evaluations of code, but more attention is being given to this
More informationSoftware Testing. Massimo Felici IF
Software Testing Massimo Felici IF-3.46 0131 650 5899 mfelici@staffmail.ed.ac.uk What is Software Testing? Software Testing is the design and implementation of a special kind of software system: one that
More informationTesting 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 informationExamining 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 informationSoftware 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 informationSoftware 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 informationSoftware 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 informationThe 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 informationBridge Course On Software Testing
G. PULLAIAH COLLEGE OF ENGINEERING AND TECHNOLOGY Accredited by NAAC with A Grade of UGC, Approved by AICTE, New Delhi Permanently Affiliated to JNTUA, Ananthapuramu (Recognized by UGC under 2(f) and 12(B)
More informationProgramming Embedded Systems
Programming Embedded Systems Lecture 8 Overview of software testing Wednesday Feb 8, 2012 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/53 Lecture outline Testing in general Unit testing
More informationIntroduction to Dynamic Analysis
Introduction to Dynamic Analysis Reading assignment Gary T. Leavens, Yoonsik Cheon, "Design by Contract with JML," draft paper, http://www.eecs.ucf.edu/~leavens/jml//jmldbc.pdf G. Kudrjavets, N. Nagappan,
More informationLearning 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 informationSoftware 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 informationTypes of Software Testing: Different Testing Types with Details
Types of Software Testing: Different Testing Types with Details What are the different Types of Software Testing? We, as testers are aware of the various types of Software Testing such as Functional Testing,
More informationTesting! Prof. Leon Osterweil! CS 520/620! Spring 2013!
Testing Prof. Leon Osterweil CS 520/620 Spring 2013 Relations and Analysis A software product consists of A collection of (types of) artifacts Related to each other by myriad Relations The relations are
More information10. Software Testing Fundamental Concepts
10. Software Testing Fundamental Concepts Department of Computer Science and Engineering Hanyang University ERICA Campus 1 st Semester 2016 Testing in Object-Oriented Point of View Error Correction Cost
More informationVerification 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 informationFacts 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 informationVerification 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 informationComputer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation
Computer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation Yan Shi SE 2730 Lecture Notes Verification and Validation Verification: Are
More informationSoftware 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 informationObjectives. 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(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt
Verification (See related materials in textbook.) Outline What are the goals of verification? What are the main approaches to verification? What kind of assurance do we get through testing? How can testing
More informationSoftware Engineering and Scientific Computing
Software Engineering and Scientific Computing Barbara Paech, Hanna Remmel Institute of Computer Science Im Neuenheimer Feld 326 69120 Heidelberg, Germany http://se.ifi.uni-heidelberg.de paech@informatik.uni-heidelberg.de
More informationVerification 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 informationIntegration 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 informationEXAMINING THE CODE. 1. Examining the Design and Code 2. Formal Review: 3. Coding Standards and Guidelines: 4. Generic Code Review Checklist:
EXAMINING THE CODE CONTENTS I. Static White Box Testing II. 1. Examining the Design and Code 2. Formal Review: 3. Coding Standards and Guidelines: 4. Generic Code Review Checklist: Dynamic White Box Testing
More informationCertified 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 informationChapter 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 informationASTQB Advance Test Analyst Sample Exam Answer Key and Rationale
ASTQB Advance Test Analyst Sample Exam Answer Key and Rationale Total number points = 120 points Total number points to pass = 78 points Question Answer Explanation / Rationale Learning 1 A A is correct.
More informationHigher-order Testing. Stuart Anderson. Stuart Anderson Higher-order Testing c 2011
Higher-order Testing Stuart Anderson Defining Higher Order Tests 1 The V-Model V-Model Stages Meyers version of the V-model has a number of stages that relate to distinct testing phases all of which are
More informationSoftware testing. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 23 Slide 1
Software testing Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 23 Slide 1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles
More informationSoftware Quality Assurance (SQA) Software Quality Assurance
Software Quality Assurance (SQA) Software Quality Assurance Use of analysis to validate artifacts requirements analysis design analysis code analysis and testing Technical/Document reviews Control of changes
More informationMONIKA 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 informationCONFERENCE PROCEEDINGS QUALITY CONFERENCE. Conference Paper Excerpt from the 28TH ANNUAL SOFTWARE. October 18th 19th, 2010
PACIFIC NW 28TH ANNUAL SOFTWARE QUALITY CONFERENCE October 18th 19th, 2010 Conference Paper Excerpt from the CONFERENCE PROCEEDINGS Permission to copy, without fee, all or part of this material, except
More informationVerification 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 informationSoftware 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 informationSample 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 informationThree General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams
Three General Principles of QA COMP 4004 Fall 2008 Notes Adapted from Dr. A. Williams Software Quality Assurance Lec2 1 Three General Principles of QA Know what you are doing. Know what you should be doing.
More informationExamination 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(Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info
(Complete Package) WEB APP TESTING DB TESTING We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info START DATE : TIMINGS : DURATION : TYPE OF BATCH : FEE : FACULTY NAME
More informationDarshan 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 informationQA Best Practices: A training that cultivates skills for delivering quality systems
QA Best Practices: A training that cultivates skills for delivering quality systems Dixie Neilson QA Supervisor Lynn Worm QA Supervisor Maheen Imam QA Analyst Information Technology for Minnesota Government
More informationObject-Oriented and Classical Software Engineering
Slide 6.1 Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach srs@vuse.vanderbilt.edu CHAPTER 6 Slide 6.2 TESTING 1 Overview Slide 6.3 Quality issues
More informationObject-Oriented and Classical Software Engineering
Slide 6.1 Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach srs@vuse.vanderbilt.edu CHAPTER 6 Slide 6.2 TESTING Overview Slide 6.3 Quality issues
More informationShree.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 informationVerification Overview Testing Theory and Principles Testing in Practice. Verification. Miaoqing Huang University of Arkansas 1 / 80
1 / 80 Verification Miaoqing Huang University of Arkansas Outline 1 Verification Overview 2 Testing Theory and Principles Theoretical Foundations of Testing Empirical Testing Principles 3 Testing in Practice
More informationComputational Systems COMP1209
Computational Systems COMP1209 Testing Yvonne Howard ymh@ecs.soton.ac.uk A Problem A café wants to build an automated system to provide breakfasts. The robot waiter greets people before taking their order
More informationIt 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 informationWhy 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 informationTesting! The material for this lecture is drawn, in part, from! The Practice of Programming (Kernighan & Pike) Chapter 6!
Testing The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 6 1 Goals of this Lecture Help you learn about: Internal testing External testing General
More informationINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING Introduction to Software Testing d_sinnig@cs.concordia.ca Department for Computer Science and Software Engineering What is software testing? Software testing consists
More informationIan 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 informationFachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. 4. Testing
4. vs. Model Checking (usually) means checking the correctness of source code Model Checking means verifying the properties of a model given in some formal (not program code) notation Attention: things
More informationWrite 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 informationQuality Assurance in Software Development
Quality Assurance in Software Development Qualitätssicherung in der Softwareentwicklung A.o.Univ.-Prof. Dipl.-Ing. Dr. Bernhard Aichernig Graz University of Technology Austria Summer Term 2017 1 / 47 Agenda
More informationDiploma in Software Testing (DST)
SEED Infotech Ltd. : ' Panchasheel', 42/16, Erandawana`, SEED Infotech Lane, Off Karve Road Pune - 411004. India www.seedinfotech.com Course Name : Duration : Class room: 114 Hrs Product Code : ST-ST-50001
More informationManuel Oriol, CHCRC-C, Software Testing ABB
Manuel Oriol, CHCRC-C, 08.11.2017 Software Testing Slide 1 About me 1998 2004 2005 2008 2011 Slide 2 Introduction Why do we test? Did you have to deal with testing in the past? Slide 3 Ariane 5 http://www.youtube.com/watch?v=kyurqduyepi
More informationObject-Oriented Software Engineering Conquering Complex and Changing Systems. Chapter 9, Testing
Object-Oriented Software Engineering Conquering Complex and Changing Systems Chapter 9, Testing Preliminaries Written exam on for Bachelors of Informatik, and for other students who are not in the Informatik
More informationAdopting Agile Practices
Adopting Agile Practices Ian Charlton Managing Consultant ReleasePoint Software Testing Solutions ANZTB SIGIST (Perth) 30 November 2010 Tonight s Agenda What is Agile? Why is Agile Important to Testers?
More informationAn Introduction to Systematic Software Testing. Robert France CSU
An Introduction to Systematic Software Testing Robert France CSU Why do we need to systematically test software? Poor quality products can Inconvenience direct and indirect users Result in severe financial
More informationQuality Assurance: Test Development & Execution. Ian S. King Test Development Lead Windows CE Base OS Team Microsoft Corporation
Quality Assurance: Test Development & Execution Ian S. King Test Development Lead Windows CE Base OS Team Microsoft Corporation Introduction: Ian King Manager of Test Development for Windows CE Base OS
More informationNo Source Code. EEC 521: Software Engineering. Specification-Based Testing. Advantages
No Source Code : Software Testing Black-Box Testing Test-Driven Development No access to source code So test cases don t worry about structure Emphasis is only on ensuring that the contract is met Specification-Based
More informationTesting! The material for this lecture is drawn, in part, from! The Practice of Programming (Kernighan & Pike) Chapter 6!
Testing The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 6 1 Words from the Wise On two occasions I have been asked [by members of Parliament],
More informationTesting Objectives. Successful testing: discovers previously unknown errors
Testing Objectives Informal view: Testing: a process of executing software with the intent of finding errors Good testing: a high probability of finding as-yetundiscovered errors Successful testing: discovers
More informationT Salausjärjestelmät (Cryptosystems) Security testing. Security testing. Outline. Testing Final stages of life cycle
T-110.470 Salausjärjestelmät (Cryptosystems) Testing Final stages of life cycle Security testing 15.11.2004 1 3 Outline Security testing Security testing Some testing techniques Final stages of life cycle
More informationSoftware Testing for Developer Development Testing. Duvan Luong, Ph.D. Operational Excellence Networks
Software Testing for Developer Development Testing Duvan Luong, Ph.D. Operational Excellence Networks Contents R&D Testing Approaches Static Analysis White Box Testing Black Box Testing 4/2/2012 2 Development
More informationUnit Testing as Hypothesis Testing
Unit Testing as Hypothesis Testing Jonathan Clark September 19, 2012 5 minutes You should test your code. Why? To find bugs. Even for seasoned programmers, bugs are an inevitable reality. Today, we ll
More informationAerospace Software Engineering
16.35 Aerospace Software Engineering Verification & Validation Prof. Kristina Lundqvist Dept. of Aero/Astro, MIT Would You...... trust a completely-automated nuclear power plant?... trust a completely-automated
More informationSOFTWARE 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 informationThe 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 informationBlack Box Testing. EEC 521: Software Engineering. Specification-Based Testing. No Source Code. Software Testing
Black Box Testing EEC 521: Software Engineering Software Testing Black-Box Testing Test-Driven Development Also known as specification-based testing Tester has access only to running code and the specification
More informationInverting the Pyramid
Inverting the Pyramid Naresh Jain naresh@agilefaqs.com @nashjain http://nareshjain.com Time/Money/Opportunity Cost Plan Back in the Stone-age Happiness/Excitement Design Distribute Work in Isolation Integrate
More informationΗΜΥ 317 Τεχνολογία Υπολογισμού
ΗΜΥ 317 Τεχνολογία Υπολογισμού Εαρινό Εξάμηνο 2008 ΙΑΛΕΞΕΙΣ 18-19: Έλεγχος και Πιστοποίηση Λειτουργίας ΧΑΡΗΣ ΘΕΟΧΑΡΙ ΗΣ Λέκτορας ΗΜΜΥ (ttheocharides@ucy.ac.cy) [Προσαρμογή από Ian Sommerville, Software
More informationStandard Glossary of Terms Used in Software Testing. Version 3.01
Standard Glossary of Terms Used in Software Testing Version 3.01 Terms Used in the Advanced Level - Test Analyst Syllabus International Software Testing Qualifications Board Copyright International Software
More informationSoftware Quality Assurance & Testing
Software Quality Assurance & Testing 1.Software Testing - An ISTQB-BCS Certified Tester Foundation Guide 3rd edition, 2015 Brian Hambling, Peter Morgan, Geoff Thompson, Peter Williams,Angelina Samaroo
More informationStandard Glossary of Terms used in Software Testing. Version 3.2. Beta - Foundation Terms
Standard Glossary of Terms used in Software Testing Version 3.2 Beta - Foundation Terms International Software Testing Qualifications Board Copyright Notice This document may be copied in its entirety,
More informationSoftware Engineering Theory. Lena Buffoni (slides by Kristian Sandahl/Mariam Kamkar) Department of Computer and Information Science
Software Engineering Theory Lena Buffoni (slides by Kristian Sandahl/Mariam Kamkar) Department of Computer and Information Science 2015-09-20 Title/Lecturer SEPTEMBER 20, 2016 2 Requirement formalization
More informationProgram Verification! Goals of this Lecture! Words from the Wise! Testing!
Words from the Wise Testing On two occasions I have been asked [by members of Parliament], Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out? I am not able rightly
More information