First delivery of the course Software Quality and Testing Katerina Zdravkova, Anastas Mišev

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
Software Testing Logic Coverage. Introduction to Software Testing (Ch 3) © Ammann & Offutt 2 Logic Coverage Four Structures for Modeling Software Graphs.
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.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
Practical Approach to Teaching Software Testing Sashko Ristov 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27,
Introduction to Software Testing Chapter 9.1 Syntax-based Testing Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 5.2 Program-based Grammars Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 9.4 Model-Based Grammars Paul Ammann & Jeff Offutt
Introduction to Software Testing
Control Structures – Selection Chapter 4 2 Chapter Topics  Control Structures  Relational Operators  Logical (Boolean) Operators  Logical Expressions.
SWE 637: Test Criteria and Definitions Tao Xie Prepared based on Slides by ©Paul Ammann and Jeff Offutt Revised by Tao Xie.
Test Coverage CS-300 Fall 2005 Supreeth Venkataraman.
637 – Introduction (Ch 1) Introduction to Software Testing Chapter 1 Jeff Offutt Information & Software Engineering SWE 437 Software Testing
Introduction to Software Testing Chapter 5.1 Syntax-based Testing Paul Ammann & Jeff Offutt
CPS120: Introduction to Computer Science Operations Lecture 9.
1 COMS 261 Computer Science I Title: C++ Fundamentals Date: September 21, 2005 Lecture Number: 10.
Software Testing Input Space Partition Testing. 2 Input Space Coverage Four Structures for Modeling Software Graphs Logic Input Space Syntax Use cases.
Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage Paul Ammann & Jeff Offutt
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Introduction to Software Testing Chapters 1-5 Coverage Summary Paul Ammann & Jeff Offutt
Introduction to Software Testing Paul Ammann & Jeff Offutt Updated 24-August 2010.
Introduction to Software Testing. OUTLINE Introduction to Software Testing (Ch 1) 2 1.Spectacular Software Failures 2.Why Test? 3.What Do We Do When We.
Introduction to Software Testing Chapter 9.2 Program-based Grammars 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
Some facts about the cal() program February 5, 2015 Paul Ammann, SWE 437 with thanks to Bob Kurtz.
Workshop on Integrating Software Testing into Programming Courses (WISTPC14:2) Friday July 18, 2014 Introduction to Software Testing.
Introduction to Software Testing Model-Driven Test Design and Coverage testing Paul Ammann & Jeff Offutt Update.
4 - Conditional Control Structures CHAPTER 4. Introduction A Program is usually not limited to a linear sequence of instructions. In real life, a programme.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
Summary of presentation Introduction of the dissertation.
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
ISP Coverage Criteria CS 4501 / 6501 Software Testing
Introduction to Software Testing Chapter 9.2 Program-based Grammars
Mutation Testing Moonzoo Kim School of Computing KAIST
Paul Ammann & Jeff Offutt
Input Space Partition Testing CS 4501 / 6501 Software Testing
Jeff Offutt SWE 637 Software Testing
Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage
Introduction to Programming for Mechanical Engineers (ME 319)
Paul Ammann & Jeff Offutt
Logic Coverage CS 4501 / 6501 Software Testing
Introduction to Software Testing Chapter 5.1 Syntax-based Testing
Paul Ammann & Jeff Offutt
Control Structures – Selection
Introduction to Software Testing Chapter 2 Model-Driven Test Design
Introduction to Software Testing Chapter 9.2 Program-based Grammars
Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 5.2 Program-based Grammars
Logic Coverage CS 4501 / 6501 Software Testing
ISP Coverage Criteria CS 4501 / 6501 Software Testing
Visual Basic – Decision Statements
Jeff Offutt SWE 637 Software Testing
Software Testing Syntax-based Testing.
Graph Coverage Criteria 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
Mutation Testing Moonzoo Kim School of Computing KAIST
Introduction to Software Testing Chapter 8.1 Logic Coverage
Review for Final – Spring 2018
Review for Final – Spring 2019
Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage
Mutation Testing Faults are introduced into the program by creating many versions of the program called mutants. Each mutant contains a single fault. Test.
Presentation transcript:

First delivery of the course Software Quality and Testing Katerina Zdravkova, Anastas Mišev

Syllabus of M.Sc. course  Introduction to testing fundamentals  Structural testing  Functional testing  Foundation for combining formal methods and testing  Assertion based testing  Model based formal methods  Finite state machine based testing  Testing from a process algebra  Testing with UML's dynamic models  Temporal logic, model checking and their role in testing  Tools for automatic testing and continuous integration  The management process of software testing

Study pack  Exists  Slides are nice  Incomplete  No lecture notes  No supportive literature, or electronic version of a book  And, we had no experience in the area

CSII Course Sophomore Course Software Engineering Course Senior Course MS Course PhD Course Industry

Syllabus of the course (stream 4)  Introduction  Graph Testing  Logic Testing  Input Space Partitioning  Syntax Testing  Practical Considerations

Syllabus ~ book topics Four Structures for Modeling Software Graphs Logic Input Space Syntax Use cases Specs Design Source Applied to DNF Specs FSMs Source Input Models Integ Source

Grading ActivityQtyPointsTotal% to pass Homework Project150 Mid term Extra points201 ActivityQtyPointsTotal% to pass Homework Project150 Practical exam Theoretical exam Extra points201 PointsPercentageGrade < 175< 50%5 (fail) 175 – 21050% - 60%6 211 – 24961% - 71%7 250 – 28772% - 82%8 288 – 32583% - 94%9 >326> 95%10

Sample of a student assignment  Provide reachability conditions, infection conditions, propagation conditions, and test case values to kill mutants 1- 6 in the figure below MutantReachabilityInfectionPropagation

Students project Given the method Proekt1 (in C#) that returns: (a + b) / (a * b) if c = true and d = true square root (a*b)if c = false and d = true square root(a/b)if c = true and d = false -1 otherwise public double Proekt1(int a, int b, Boolean c, Boolean d) { if (c && d) { return (a + b) / (a * b); } else if (!c && d) return Math.Sqrt(a * b); else if (c && !d) return Math.Sqrt(a / b) ; else return -1; } 1. Code and compile in a language of choice 2. Partition the input space with respect to the values of the variables a and b, whether the method raises an error. The blocks should be both complete and disjoint. 3. Choose test values from each block and derive the tests that satisfy All Combinations Coverage (ACoC) 4. Identify the faults and produce a method Project1_no_Faults 5. Derive a new method from the Project_no_Faults, called Project_1_if, such that each if statement tests only one variable 6. Write a program that will execute all the test from 3, over the Project_if and Project_no_Faults methods.

Statistics AssignmentSubmissionsAvg Introduction to testing Introduction to testing Graph coverage Finite state machines Logic coverage Logic coverage Input space partitioning Input space partitioning Mutation testing Grammar mutation Project52 (so far)/ (not graded)

Exams and mid term exams  The preferred way was through mid term exams  45 students took the mid term exams(both)  43 of them passed  The rest of the students took the exams  Only 3 left for the September exams  3 students dropped out

Conclusions about the course  The course is in the 8 th semester, and it had to start for the first time at out Institute  Keti, Anastas and Saško and had no choice but to start the course  Slides by Ammann and Offutt are fantastic  We find the book fantastic too  It demystifies the topics well  The approach contains all the theoretical knowledge

Conclusions  Although it was hard to prepare the lectures, the A&O’s approach was exciting, and the effort was worthy  We learned a lot about quality and software testing  We plan to introduce tool and practical testing in the next delivery  Any suggestions how to improve the course are welcome  We are ready to deliver the same course in the framework of the Joint M.Sc. studies wherever needed

Thank you for your attention