Overview 1 CSCE 747 Fall 2013 CSCE 747 Software Testing and Quality Assurance Lecture 01 – Overview.

Slides:



Advertisements
Similar presentations
Overview Functional Testing Boundary Value Testing (BVT)
Advertisements

Interaction Modeling for Testing We would generate the test cases based on our understanding of the interactions that may happen. The source is, again,
Introduction to Graph “theory”
Discrete Mathematics Lecture 5 Alexander Bukharovich New York University.
Basic Structures: Sets, Functions, Sequences, Sums, and Matrices
Basic Structures: Sets, Functions, Sequences, Sums, and Matrices
Functional Testing 1 CSCE 747 Fall 2013 CSCE 747 Software Testing and Quality Assurance Lecture 01 – Functional Testing.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Software testing.
CS447/ECE453/SE465 Prof. Alencar University of Waterloo 1 CS447/ECE453/SE465 Software Testing Tutorial Winter 2008 Based on the tutorials by Prof. Kontogiannis,
Discrete Structures Chapter 3 Set Theory Nurul Amelina Nasharuddin Multimedia Department.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing and Quality Assurance
CS5371 Theory of Computation Lecture 1: Mathematics Review I (Basic Terminology)
Theoretical Computer Science COMP 335 Fall 2004
1 Software Testing and Quality Assurance Lecture 5 - Software Testing Techniques.
Equivalence Class Testing
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
 2003 Prentice Hall, Inc. All rights reserved. 1 Dijkstra Letter Quotes...the quality of programmers is a decreasing function of the density of go to.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 23 Slide 1 Software testing Slightly adapted by Anders Børjesson.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Testing phases. Test data Inputs which have been devised to test the system Test cases Inputs to test the system and the predicted outputs from these.
Software testing techniques 3. Software testing
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Defect testing l Testing programs to establish the presence of system defects.
CSC 480 Software Engineering Lecture 14 Oct 16, 2002.
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
Math 3121 Abstract Algebra I Section 0: Sets. The axiomatic approach to Mathematics The notion of definition - from the text: "It is impossible to define.
Chapter 4 Relations and Digraphs
INTRODUCTION TO THE THEORY OF COMPUTATION INTRODUCTION MICHAEL SIPSER, SECOND EDITION 1.
Software Testing The process of operating a system or component under specified conditions, observing and recording the results, and making an evaluation.
Chapter 3 – Set Theory  .
Lecture 14 Relations CSCI – 1900 Mathematics for Computer Science Fall 2014 Bill Pine.
Software Testing. 2 CMSC 345, Version 4/12 Topics The testing process  unit testing  integration and system testing  acceptance testing Test case planning.
Foundations of Software Testing Chapter 1: Preliminaries Last update: September 3, 2007 These slides are copyrighted. They are for use with the Foundations.
Introduction to Graph “theory” Why do we care about graph theory in testing and quality analysis? –The “flow” (both control and data) of a design, within.
Sample Problems for Testing
Black-box Testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Fall 2005Costas Busch - RPI1 Mathematical Preliminaries.
Sets Define sets in 2 ways  Enumeration  Set comprehension (predicate on membership), e.g., {n | n  N   k  k  N  n = 10  k  0  n  50} the set.
Today’s Agenda  Reminder: HW #1 Due next class  Quick Review  Input Space Partitioning Software Testing and Maintenance 1.
COMP 6710 Course NotesSlide 7-0 Auburn University Computer Science and Software Engineering Course Notes Set 7: Review of Graphs Computer Science and Software.
BASIS PATH TESTING.
Spring 2012 CS 214 Programming Languages. Details Moodle! REQUIRED text: Sebesta, Programming Language Concepts, 9ed. Important dates: February 17: Project.
Software testing techniques Spring 2009 Csci565: Theory and Practice of Software Testing1.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
PROGRAM DEVELOPMENT CYCLE. Problem Statement: Problem Statement help diagnose the situation so that your focus is on the problem, helpful tools at this.
CHAPTER 3 FUZZY RELATION and COMPOSITION. 3.1 Crisp relation Product set Definition (Product set) Let A and B be two non-empty sets, the product.
Mathematical Preliminaries
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CS451 Lecture 10: Software Testing Yugi Lee STB #555 (816)
1 Mathematical Preliminaries. 2 Sets Functions Relations Graphs Proof Techniques.
Chapter 12: Software Testing Omar Meqdadi SE 273 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 Software Testing. 2 Equivalence Class Testing 3 The use of equivalence class testing has two motivations: –Sense of complete testing –Avoid redundancy.
CSCI 115 Course Review.
Chapter 2 1. Chapter Summary Sets (This Slide) The Language of Sets - Sec 2.1 – Lecture 8 Set Operations and Set Identities - Sec 2.2 – Lecture 9 Functions.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Week 8 - Wednesday.  What did we talk about last time?  Relations  Properties of relations  Reflexive  Symmetric  Transitive.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Defect testing Testing programs to establish the presence of system defects.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
Chapter 5 Relations and Operations
BASIS PATH TESTING.
Types of Testing Visit to more Learning Resources.
Overview Functional Testing Boundary Value Testing (BVT)
Chapter 9 Path Testing–Part 1
Software testing.
Overview Functional Testing Boundary Value Testing (BVT)
Software Testing “If you can’t test it, you can’t design it”
Presentation transcript:

Overview 1 CSCE 747 Fall 2013 CSCE 747 Software Testing and Quality Assurance Lecture 01 – Overview

Overview 2 CSCE 747 Fall 2013 Class website/syllabus

Overview 3 CSCE 747 Fall 2013 References on Slides Most of our slides a least for a while will be generated from our Text Jorgensen, Paul C. ( ). Software Testing Auerbach Publications. Kindle Edition. The abbreviated reference at the bottom of the slides will be – “Jorgensen, Paul C. Software Testing, Auerbach Publications” and sometimes maybe even a shortened version of this – “Software Testing-Jorgensen 2011” Jorgensen, Paul C. ( ). Software Testing Auerbach Publications. Kindle Edition.

Overview 4 CSCE 747 Fall 2013 Why test? Overview4

Overview 5 CSCE 747 Fall 2013 What Testing Does and Does Not Do “Program testing can be a very effective way to show the presence of bugs, but it is hopelessly inadequate for showing their absence.”

Overview 6 CSCE 747 Fall 2013 More Dijkstra’s Quotes The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense. APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums. FORTRAN, 'the infantile disorder', by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use. FORTRAN In the good old days physicists repeated each other's experiments, just to be sure. Today they stick to FORTRAN, so that they can share each other's programs, bugs included.FORTRAN It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. BASIC Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer. Simplicity is prerequisite for reliability. Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians. We can found no scientific discipline, nor a hearty profession, on the technical mistakes of the Department of Defense and, mainly, one computer manufacturer. About the use of language: it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead.

Overview 7 CSCE 747 Fall 2013 Basic Definitions Error or mistake Fault or Defect Failure Incident Test Test case Overview7

Overview 8 CSCE 747 Fall 2013 Test Cases  Inputs to test cases:  preconditions  actual inputs  Output  Oracle Jane Austen (2010). Pride & Prejudice (Page 5). Amazon Digital Services, Inc.. Kindle Edition. Overview8

Overview 9 CSCE 747 Fall 2013 Act of Testing  establishing preconditions  specifying inputs  observing outputs  comparing outputs with those expected  ensuring postconditions Overview9

Overview 10 CSCE 747 Fall 2013 Testing Life Cycle Overview10

Overview 11 CSCE 747 Fall 2013 Functional Testing Black-Box testing Overview11

Overview 12 CSCE 747 Fall 2013 Structural Testing White-box Overview12

Overview 13 CSCE 747 Fall 2013 Error and Fault Taxonomies Overview13

Overview 14 CSCE 747 Fall 2013 Faults classified by severity – B. Bezier Overview14

Overview 15 CSCE 747 Fall 2013 Overview15

Overview 16 CSCE 747 Fall 2013 Overview16

Overview 17 CSCE 747 Fall 2013 Levels of Testing Overview17

Overview 18 CSCE 747 Fall 2013 Overview18

Overview 19 CSCE 747 Fall 2013 Java Testing Tools Junit Eclipse Maven Mockito Hamcrest Jenkins

Overview 20 CSCE 747 Fall 2013 Running Examples 1.The triangle problem - a venerable example in testing circles; 2.NextDate - a logically complex function, and 3.The commission problem - an example that typifies Management Information Systems (MIS) applications

Overview 21 CSCE 747 Fall 2013 More Examples The simple ATM (SATM) system; The currency converter, an event-driven application typical of graphical user interface (GUI) applications; and The windshield wiper control device from the Saturn™ automobile. o-oCalendar, an object-oriented version of NextDate

Overview 22 CSCE 747 Fall 2013 Triangle Problem Most widely used example in software testing literature. Problem Statement Simple version: The triangle program accepts three integers, a, b, and c, as input. These are taken to be sides of a triangle. The output of the program is the type of triangle determined by the three sides: Equilateral, Isosceles, Scalene, or Not A Triangle.

Overview 23 CSCE 747 Fall 2013 Triangle Improved Improved version: The triangle program accepts three integers, a, b, and c, as input. These are taken to be sides of a triangle. The integers a, b, and c must satisfy the following conditions: c1. 1 ≤ a ≤ 200 c4. a < b + c c2. 1 ≤ b ≤ 200 c5. b < a + c c3. 1 ≤ c ≤ 200 c6. c < a + b The output of the program is the type of triangle determined by the three sides: Equilateral, Isosceles, Scalene, or NotATriangle. If an input value fails any of conditions c1, c2, or c3, the program notes this with an output message, for example, “Value of b is not in the range of permitted values.” If values of a, b, and c satisfy conditions c1, c2, and c3, one of four mutually exclusive outputs is given: 1. If all three sides are equal, the program output is Equilateral. 2. If exactly one pair of sides is equal, the program output is Isosceles. 3. If no pair of sides is equal, the program output is Scalene. 4. If any of conditions c4, c5, and c6 is not met, the program output is NotATriangle.

Overview 24 CSCE 747 Fall 2013 Flowchart for the traditional triangle program implementation

Overview 25 CSCE 747 Fall 2013 Dataflow Diagram

Overview 26 CSCE 747 Fall 2013 Eclipse And Java For Total Beginners “Eclipse And Java For Total Beginners” video tutorial, which is available at Install Java: Select “Eclipse IDE for Java Developers”. Install Eclipse: Implement Triangle program (base problem) Dropbox report on progress/code by Midnight Tuesday 8/27/2013

Overview 27 CSCE 747 Fall 2013 Discrete Math for Testers Set Theory: , Venn diagrams, Subsets:    element of   Set operations – Union, intersection, complement – Relative complement: A-B – Symmetric difference: A  B

Overview 28 CSCE 747 Fall 2013 Relations Cartesian Product – – A  B = { : x  A and y  B} –Ordered pairs usually (x,y) in this text – | A  B | = |A| * |B| Relations Formally a relation R:A  B is just a subset of A  B – i.e., a set of ordered pairs first coordinate from A and second from B – function

Overview 29 CSCE 747 Fall 2013 Partitions A partition of a set A is a set of disjoint subsets A 1, A 2, A 3, … A n, such that – A 1  A 2  A 3  …  A n =A – Note disjoint means if i  j then A 2  A 3 =  As in partition up test space

Overview 30 CSCE 747 Fall 2013 Set Identities

Overview 31 CSCE 747 Fall 2013 Functions Definition Domain and Range f: D  R Types of functions – Onto – Into – One-to-one – Many-to-one Composition

Overview 32 CSCE 747 Fall 2013 Fig 3.4 Causal Flows in DF diagram

Overview 33 CSCE 747 Fall 2013 Participation of a Relation Properties of functions (a function is a relation) – One-to-many, … many-to-many Definition Given two sets A and B, a relation R ⊆ A × B, the participation of relation R is: – Total iff every element of A is in some ordered pair in R – Partial iff some element of A is not in some ordered pair in R – Onto iff every element of B is in some ordered pair in R – Into iff some element of B is not in some ordered pair in R Jorgensen, Paul C. ( ). Software Testing (Page 43). Auerbach Publications. Kindle Edition.

Overview 34 CSCE 747 Fall 2013 Properties of Relations A relation R ⊆ A × A is: – Reflexive iff for all a ∈ A, ∈ R – Symmetric iff ∈ R ⇒ ∈ R – Antisymmetric iff, ∈ R ⇒ a = b – Transitive iff, ∈ R ⇒ ∈ R Ordering relation is reflexive, antisymmetric, and transitive – Partial order – Common in software: predecessor, successor, ancestor… Jorgensen, Paul C. ( ). Software Testing (Page 44). Auerbach Publications. Kindle Edition.

Overview 35 CSCE 747 Fall 2013 Equivalence Relation Definition A relation R ⊆ A × A is an equivalence relation if R is reflexive, symmetric, and transitive. Equivalence class –. Induces a partition –.

Overview 36 CSCE 747 Fall 2013 Propositional Logic Logical operators – three basic logical operators are – and ( ∧ ), – or ( ∨ ), and – not (¬); Propositional symbols Expressions, Truth Tables Well formed formulas (wwfs) R ∧ A ∧ ¬(B ∨ C)

Overview 37 CSCE 747 Fall 2013 Truth Table Equivalence “Proofs” Definition Two propositions p and q are logically equivalent (denoted p ⇔ q) iff their truth tables are identical. Jorgensen, Paul C. ( ). Software Testing Auerbach Publications. Kindle Edition.

Overview 38 CSCE 747 Fall 2013 Graph Theory for Testers Definition A graph G = (V, E )

Overview 39 CSCE 747 Fall 2013 Graph Definitions degree, in-degree, out-degree adjacency matrix incidence matrix paths connectedness – Connectedness is an equivalence relation component

Overview 40 CSCE 747 Fall 2013 condensation graph Definition Given a graph G = (V, E), its condensation graph is formed by replacing each component by a condensing node.

Overview 41 CSCE 747 Fall 2013 cyclomatic number The cyclomatic number of a graph G is given by V(G) = e – n + p, – where e is the number of edges in G, – n is the number of nodes in G, and – p is the number of components in G.

Overview 42 CSCE 747 Fall 2013 Directed Graphs sources, sinks, transfer node A (directed ) path is a sequence of edges such that, for any adjacent pair of edges e in the sequence, the terminal node of the first edge is the initial node of the second edge. A cycle is a directed path that begins and ends at the same node. A (directed ) semipath is a sequence of edges such that, for at least one adjacent pair of edges in the sequence, the initial node of the first edge is the initial node of the second edge, or the terminal node of the first edge is the terminal node of the second edge.

Overview 43 CSCE 747 Fall 2013 Reachability Matrix

Overview 44 CSCE 747 Fall 2013 Connectedness in Digraphs

Overview 45 CSCE 747 Fall 2013 Program Graphs

Overview 46 CSCE 747 Fall 2013

Overview 47 CSCE 747 Fall 2013 Finite State Models

Overview 48 CSCE 747 Fall 2013 Petri Nets Petri nets are the accepted model for protocols and other applications involving concurrency and distributed processing.