CSCE 747 Software Testing and Quality Assurance

Slides:



Advertisements
Similar presentations
Testing and Quality Assurance
Advertisements

Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Chapter 8: Path Testing Csci 565.
Path testing Path testing is a “design structural testing” in that it is based on detailed design & the source code of the program to be tested. The methodology.
Testing Dr. Andrew Wallace PhD BEng(hons) EurIng
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 9 Instructor Paulo Alencar.
Software Quality Assurance and Testing prof. A. C. (Alex) Telea Course description.
Software Testing Damian Gordon.
Path Testing + Coverage Chapter 9 Assigned reading from Binder.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
Reference Paulo Alencar, University of Waterloo Frank Tsui, Southern Polytechnic State University.
1 Software Testing & Quality Assurance Lecture 10 Created by: Paulo Alencar Modified by: Frank Xu.
1 Software Testing. 2 Path Testing 3 Structural Testing Also known as glass box, structural, clear box and white box testing. A software testing technique.
Cause & Effect Graph Comparison Testing. Cause & Effect Graph This is basically a hardware testing technique adapted to software testing. It considers.
Lec 06 Path Testing Part II - 1 CSCE 747 Fall 2013 CSCE 747 Software Testing and Quality Assurance Lecture 06 – Path Testing Part II 9/16/
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
Software Engineering 2 Software Testing Claire Lohr pp 413 Presented By: Feras Batarseh.
INTRUDUCTION TO SOFTWARE TESTING TECHNIQUES BY PRADEEP I.
Summarizing “Structural” Testing Now that we have learned to create test cases through both: – a) Functional (blackbox)and – b) Structural (whitebox) testing.
Software Testing. Software testing is the execution of software with test data from the problem domain. Software testing is the execution of software.
BASIS PATH TESTING.
Lecture Notes - Copyright © S. C. Kothari, All rights reserved.1 Efficient Debugging CPRE 556 Lecture 19.
Java Basics Hussein Suleman March 2007 UCT Department of Computer Science Computer Science 1015F.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Chapter 8 Path Testing. Path testing Path testing is a “design structural testing” in that it is based on detailed design & the source code of the program.
Overview Structural Testing Introduction – General Concepts
Theory and Practice of Software Testing
Software Quality Assurance and Testing Fazal Rehman Shamil.
Structural (White-Box) Testing Software Testing Module Dr. Samer Hanna.
CS223: Software Engineering Lecture 21: Unit Testing Metric.
Structural Coverage. Measurement of structural coverage of code is a means of assessing the thoroughness of testing. Such metrics do not constitute testing.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Harvard Mark I Howard Aiken was a pioneer in computing and a creator of conceptual design for IBM in the 1940s. He envisioned an electro-mechanical computing.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
Cause & Effect Graph Comparison Testing
Software Testing.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Paul Ammann & Jeff Offutt
BASIS PATH TESTING.
CSCE 747 Software Testing and Quality Assurance
Software Testing.
John D. McGregor Session 9 Testing Vocabulary
Software Engineering (CSI 321)
Introduction To Flowcharting
Chapter 5 Retrospective on Functional Testing Software Testing
Path testing Path testing is a “design structural testing” in that it is based on detailed design & the source code of the program to be tested. The.
Types of Testing Visit to more Learning Resources.
John D. McGregor Session 9 Testing Vocabulary
UNIT-IV ECS-602 Software engineering PART-I
Chapter 9 Path Testing–Part 1
UNIT-4 BLACKBOX AND WHITEBOX TESTING
John D. McGregor Session 9 Testing Vocabulary
Software Testing (Lecture 11-a)
Paul Ammann & Jeff Offutt
CSCE 747 Software Testing and Quality Assurance
CSCE 747 Software Testing and Quality Assurance
CSCE 747 Software Testing and Quality Assurance
Structural Coverage.
Chapter 1 Introduction(1.1)
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Structural Coverage.
Boolean Expressions to Make Comparisons
Visuals for Class 5 ChE 310 NFR.
CPRE 416-Software Evolution and Maintenance-Lecture 11
Paul Ammann & Jeff Offutt
Overview Functional Testing Boundary Value Testing (BVT)
Whitebox Testing.
CSCE 747 Software Testing and Quality Assurance
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Unit III – Chapter 3 Path Testing.
Presentation transcript:

CSCE 747 Software Testing and Quality Assurance Lecture 06 – Path Testing 9/11/2013

Jorgensen, Paul C. Software Testing Last Time Wrapup Functional Testing Ch 8 pp 117-127 Testing Effort Testing Efficiency Testing Effectiveness Guidelines Case Study – Insurance Premium Today Testing Overview Again Definition of Testing Verification vs Validation Path Testing Ch 9 pp 131-149 Jorgensen, Paul C. Software Testing A Craftsman Approach

Attributes of Software Functional Attributes – testing focusses here Quality (non-functional) Attributes Availability Usability Security Modifiability Maintainability Performance Testability … Can we test for these? Can we measure these? Can we design to achieve these? yes CSCE 742 Software Architecture

Testing Overview Again “Software testing is the process of analyzing a software item to detect the differences between existing and required conditions and to evaluate the features of the software item.” IEEE, "ANSI/IEEE Standard 1008-1987, IEEE Standard for Software Unit Testing," no., 1986. “Software testing is an activity that should be done throughout the whole development process” A. Bertolino, "Chapter 5: Software Testing," in IEEE SWEBOK Trial Version 1.00, May 2001. Both of these are “quotes” (indirect references) from L. Williams http://agile.csc.ncsu.edu/SEMaterials/BlackBox.pdf http://agile.csc.ncsu.edu/SEMaterials/BlackBox.pdf

Terminology Again http://agile.csc.ncsu.edu/SEMaterials/BlackBox.pdf

The First Debugging Session . 11/13/2018 The First Debugging Session . “A Buggy Relay - One of the earliest computers, the Mark II Aiken Relay Calculator, was at Harvard University. The first attempts at building computers used relays as the active devices. Grace Murray Hopper, a mathematician and computer programmer, is often wrongly credited with coining the term bug. On September 9th, 1947, an operator fixed a Mark II computer by removing a moth wedged between the contacts of Relay #70 in Panel F. The machine had been "debugged," and that term soon spread.” Read more: http://www.ehow.com/facts_7691819_called-computer-program-crashes-unexpectedly.html#ixzz2e9Qlqrpl http://www.ehow.com/facts_5031466_computer-problem-called-bug.html

Earlier Uses of the Term "Bug" While the previous story is perhaps responsible for catapulting the term "debugging" into our mainstream language, the word "bug" can be traced back to an 1896 electrical handbook titled, "Hawkins New Catechism of Electricity," lists "bug" as a term used to designate any trouble or fault in the connections or working of an electric apparatus. The term bug originated in the 14th century where bugge was the Middle English word for hobgoblin. http://www.ehow.com/facts_7691819_called-computer-program-crashes-unexpectedly.html

Verification and Validation Testing is a verification and validation software practice as are: Inspections Pair programming Verification: Are we building the product right? Validation: Are we building the right product? Laurie Williams http://agile.csc.ncsu.edu/SEMaterials/BlackBox.pdf

Laurie Williams http://agile.csc.ncsu.edu/SEMaterials/BlackBox.pdf

http://www.openseminar.org/se/modules/1/index/screen.do

Software Engineering Open Seminar http://www.openseminar.org/se/modules/7/index/screen.do

Laurie Williams http://agile.csc.ncsu.edu/SEMaterials/BlackBox.pdf

Laurie Williams http://agile.csc.ncsu.edu/SEMaterials/BlackBox.pdf

Functional Testing Review 11/13/2018 Functional Testing Review Black-box testing – Approaches Boundary values Equivalence Class Decision Table Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach 1. Program triangle 2 ‘Structured programming version of simpler specification 2. Dim a,b,c As Integer 3. Dim IsATriangle As Boolean ‘Step 1: Get Input Output (“Enter 3 integers which are sides of a triangle”) 5. Input (a,b,c) 6. Output (“Side A is “,a) 7. Output (“Side B is “,b) 8. Output (“Side C is “,c) ‘Step 2: Is A Triangle? 9. If (a < b + c) AND (b < a + c) AND (c < a + b) 10. Then IsATriangle = True 11. Else Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach ‘Step 3: Determine Triangle Type 13. If IsATriangle 14. Then If (a = b) AND (b = c) 15. Then Output (“Equilateral”) 16. Else If (a ≠ b) AND (a ≠ c) AND (b ≠ c) 17. Then Output (“Scalene”) 18. Else Output (“Isosceles”) 19. EndIf 20. EndIf 21. Else Output (“Not a Triangle”) 22. EndIf 23. End triangle2 Software Testing A Craftsman’s Approach Jorgensen – 2008

Program Graph for Simple Triangle Statement coverage Path coverage Path through the graph No loops == DAG Product rule Npaths = 2 * 4 = 8 paths Loops complicate Loop 2213 executed 100 times yields 2* 4100 paths Software Testing A Craftsman’s Approach Jorgensen – 2008

Definition of Decision to Decision Paths Definition DD-Path - a sequence of nodes in a program graph such that: Case 1: It consists of a single node with indeg = 0. Case 2: It consists of a single node with outdeg = 0. Case 3: It consists of a single node with indeg ≥ 2 or outdeg ≥ 2. Case 4: It consists of a single node with indeg = 1 and outdeg = 1. Case 5: It is a maximal chain of length ≥ 1. Software Testing A Craftsman’s Approach Jorgensen – 2008

Path Coverage Usually Impossible This example show the impossibility of completely testing even simple programs (Schach, 1993). Suppose loop executed 10 times. How many distinct paths? What about 100 times? 5.15 e +47 Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach Test Coverage Metrics Metric - Description of Coverage C0 - Every statement C1 - Every DD-Path (predicate outcome) C1p - Every predicate to each outcome C12 - C11 -coverage + loop coverage Cd - C11 -coverage + every dependent pair of DD-Paths CMCC - Multiple condition coverage Cik - Every program path that contains up to k repetitions of a loop (usually k = 2) Cstat - Statistically significant fraction of paths C∞ - All possible execution paths Based on work of E.F. Miller (Miller, 1977) Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach Jorgensen – 2008

Software Testing A Craftsman’s Approach Jorgensen – 2008