Practical Approach to Teaching Software Testing Sashko Ristov 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27,

Slides:



Advertisements
Similar presentations
Course in software testing - from bachelor to master, from Skopje to Novi Sad (and beyond) Anastas Mishev Katerina Zdravkova Sashko Ristov Hristina Mihajloska.
Advertisements

Introduction to Software Testing Chapter 1
Introduction to Software Testing Chapter 6 Input Space Partition Testing Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 1 Paul Ammann & Jeff Offutt SUMMARY OF PARTS 1 AND 2 FROM LAST WEEK.
COVERAGE CRITERIA FOR TESTING 1. ill-defined terms in Testing  complete testing  exhaustive testing  full coverage Are poorly defined terms because.
Today’s Agenda  HW #1 Due  Quick Review  Finish Input Space Partitioning  Combinatorial Testing Software Testing and Maintenance 1.
Introduction to Software Testing Chapter 3.1 Logic Coverage Paul Ammann & Jeff Offutt.
Introduction to Software Testing Chapter 4 Input Space Partition Testing Paul Ammann & Jeff Offutt
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 9 Functional Testing
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
Today’s Agenda  Quick Review  Finish Graph-Based Testing  Predicate Testing Software Testing and Maintenance 1.
CS4311 Spring 2011 Unit Testing Dr. Guoqiang Hu Department of Computer Science UTEP.
Introduction to Software Testing
Coverage Literature of software testing is primarily concerned with various notions of coverage Four basic kinds of coverage: Graph coverage Logic coverage.
Introduction to Software Testing Chapter 8.1 Logic Coverage Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 5.1 Syntax-based Testing Paul Ammann & Jeff Offutt
Software Testing Input Space Partition Testing. 2 Input Space Coverage Four Structures for Modeling Software Graphs Logic Input Space Syntax Use cases.
Today’s Agenda  Reminder: HW #1 Due next class  Quick Review  Input Space Partitioning Software Testing and Maintenance 1.
Introduction to Software Testing Chapter 4 Input Space Partition Testing Paul Ammann & Jeff Offutt retest/
Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapters 1-5 Coverage Summary Paul Ammann & Jeff Offutt
First delivery of the course Software Quality and Testing Katerina Zdravkova, Anastas Mišev
1 Introduction to Abstract Mathematics Predicate Logic Instructor: Hayk Melikya Purpose of Section: To introduce predicate logic (or.
1 Input Space Partitioning(2). Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 4  Section 4.1  Section
Introduction to Software Testing Chapter 3.1 Logic Coverage Paul Ammann & Jeff Offutt.
Review for Final – Fall 2015 Jeff Offutt SWE 637 Software Testing
Introduction to Software Testing Chapter 4 Input Space Partition Testing Paul Ammann & Jeff Offutt
Workshop on Integrating Software Testing into Programming Courses (WISTPC14:2) Friday July 18, 2014 Introduction to Software Testing.
Introduction to Software Testing Chapter 3.2 Logic Coverage
Introduction to Software Testing. Introduction 2 Four Structures for Modeling Software Graphs Logic Input Space Syntax Use cases Specs Design Source Applied.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 8.1 Logic Coverage
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 3, Sec# 1 & 2 Logic Coverage
Paul Ammann & Jeff Offutt
ISP Coverage Criteria CS 4501 / 6501 Software Testing
Input Space Partition Testing CS 4501 / 6501 Software Testing
Paul Ammann & Jeff Offutt
Jeff Offutt SWE 637 Software Testing
Introduction to Software Testing Chapter 3.5 Logic Coverage for FSMs
Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Logic Coverage CS 4501 / 6501 Software Testing
Course Software Testing & Verification 2016/17 Wishnu Prasetya
Introduction to Software Testing Chapter 5.1 Syntax-based Testing
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 3, Sec# 3.5
Moonzoo Kim School of Computing KAIST
Introduction to Software Testing Chapter 3.2 Logic Coverage
Introduction to Software Testing Chapter 3.5 Logic Coverage for FSMs
Logic Coverage CS 4501 / 6501 Software Testing
ISP Coverage Criteria CS 4501 / 6501 Software Testing
Jeff Offutt SWE 637 Software Testing
Logic Coverage Active Clause Coverage CS 4501 / 6501 Software Testing
Logic Coverage for Source Code CS 4501 / 6501 Software Testing
Introduction to Software Testing Chapter 5.1 Syntax-based Testing
[Ammann and Offutt, “Introduction to Software Testing,” Ch. 8]
Introduction to Software Testing Chapter 8.1 Logic Coverage
Review for Final – Spring 2018
Introduction to Software Testing Chapter 3.2 Logic Coverage
Review for Final – Spring 2019
Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage
Presentation transcript:

Practical Approach to Teaching Software Testing Sashko Ristov 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Objective To present several applications developed to be used on laboratory exercises for software testing For Software quality and testing course 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Agenda About the course Difficulties and improvements – Input Space Partitioning – Logic Coverage Conclusions and Future Work 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

About the course Weekly ( ) lessons – 2 x theory – 1 x theoretical exercises – 2 xpractical laboratory exercises Laboratory groups up to 20 students 10 laboratory exercises Mandatory Project - Practical 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Course Objective To introduce the students with the necessity of software testing, – Why testing is important? Various software testing techniques, – How to test? Practical testing, validation and verification of software – What ? 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Course Literature Paul Ammann and Jeff Offutt, Introduction to software testing, Cambridge university press Ilene Burnstein, Practical Software Testing, Springer professional computing 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Agenda About the course Difficulties and improvements – Input Space Partitioning – Logic Coverage Conclusion and Future Work 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Course difficulties Too many similar definitions Short time to explain and teach all (Almost all) laboratory exercises are on paper RESULT: Students avoid laboratory exercises 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Course improvements This year practical projects from material – develop the application in groups for each laboratory exercise Students will learn the material Practical exercise the teaching material 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Course improvements Fully new developed applications for: – Graph Coverage * – Input Space Partitioning – Logic Coverage – Syntax Based Testing * * - not finished completely yet 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Agenda About the course Difficulties and improvements – Input Space Partitioning – Logic Coverage Conclusion and Future Work 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Input Space Partitioning Introduction: All testing is about choosing elements from the input space of the software being tested Defining ways to divide the input space according to the test requirements Domain - Possible values that the input parameters can have 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Input Space Partitioning Each partition must satisfy two properties: – The partition must cover the entire domain (completeness) – All possible cases – The blocks must not overlap (disjoint) - Without duplicates 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Input Space Partitioning COMBINATION STRATEGIES CRITERIA: All Combinations Coverage (ACoC): – All combinations of blocks from all characteristics must be used. Each Choice Coverage (ECC): – One value from each block for each characteristic must be used in at least one test case. 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Input Space Partitioning Pair-Wise Coverage (PWC): – A value from each block for each characteristic must be combined with a value from every block for each other characteristic. Base Choice Coverage (BCC): – A base choice block is chosen for each characteristic, and a base test is formed by using the base choice for each characteristic. Subsequent tests are chosen by holding all but one base choice constant and using each non-base choice in each other characteristic. 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Input Space Partitioning Application Input – Number of variables – Number (and name) of blocks for each variable Application Output – Minimal test set required for ACoC, ECC, PWC and BCC 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Input Space Partitioning Example Input – Variable 1 Blocks A (True), B (False) – Variable 2 Blocks 1, 2, 3 (positive, ZERO, negative numbers) – Variable 3 Blocks x (>10), y (<= 10) 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Input Space Partitioning BCC – a 1 x – BASIC Test – b 1 x – a 2 x – a 3 x – a 1 y 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Agenda About the course Difficulties and improvements – Input Space Partitioning – Logic Coverage Conclusion and Future Work 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Logic Coverage Test criteria based on logical expressions Clauses and predicates are used to introduce a variety of coverage criteria 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Logic Coverage Input variables: Truth Table example abcPPaPbPc 1TTTTTTT 2TTFFTFT 3TFTFTTF 4TFFFTFF 5FTTFTTT 6FTFTTFT 7FFTTTTF 8FFFTTFF a, b, c are clauses, p is predicate. Pa, Pb, Pc are conditions under which the values of a, b, c determine that of p 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Logic Coverage Output variables: – Active Clause Coverage GACC, CACC, RACC – Inactive Clause Coverage GICC, RICC – Implicant Coverage (p, p’) – Unique True Point Coverage 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Logic Coverage Output Example: Variable1: GICC pairs for P=T are: NA GICC pairs for P=F are: NA Variable1: RICC pairs for P=T are: NA RICC pairs for P=F are: NA Variable1: CACC pairs are: (6,2)(7,3)(8,4)(5,1) Variable1: RACC pairs are: (6,2)(7,3)(8,4)(5,1) Variable2: GICC pairs for P=T are: (8,6) GICC pairs for P=F are: (4,2) Variable2: RICC pairs for P=T are: (8,6) RICC pairs for P=F are: (4,2) Variable2: CACC pairs are: (7,5)(3,1) Variable2: RACC pairs are: (7,5)(3,1) Variable3: GICC pairs for P=T are: (8,7) GICC pairs for P=F are: (4,3) Variable3: RICC pairs for P=T are: (8,7) RICC pairs for P=F are: (4,3) Variable3: CACC pairs are: (6,5)(2,1) Variable3: RACC pairs are: (6,5)(2,1) 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Agenda About the course Difficulties and improvements – Input Space Partitioning – Logic Coverage Conclusion and Future Work 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Conclusions Students can study the material at home, as well Students can check if their results are (in)correct We made the course more practical More effective and efficient studying and teaching 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Future Work Develop more applications for other testing purpose Upgrade existing applications Integrate many other already created (open source) testing tools in laboratory exercises Develop a software package for Teaching Software Testing 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia

Thank you for your attention Any question? 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27, 2011, Ohrid, Macedonia