First delivery of the course Software Quality and Testing

advertisement
First delivery of the course Software
Quality and Testing
Katerina Zdravkova, Anastas Mišev
{keti,anastas}@ii.edu.mk
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
http://www.cs.gmu.edu/~offutt/softwaretest/contents.html
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
Applied to
Applied
to
Source
Specs
Source
Specs
Design
Input
Space
Logic
Use cases
Syntax
Applied
to
FSMs
DNF
Source
Models
Integ
Input
Grading
Activity
Qty
Points
Total
% to
pass
Activity
Qty
Points
Total
% to
pass
Homework
10
10
100
50
Homework
10
10
100
50
Project
1
50
50
50
Project
1
50
50
50
Mid term
2
100
200
30
Practical exam
1
100
100
50
Extra points
20
1
20
Theoretical
exam
1
100
100
50
Extra points
20
1
20
Points
Percentage
Grade
< 175
< 50%
5 (fail)
175 – 210
50% - 60%
6
211 – 249
61% - 71%
7
250 – 287
72% - 82%
8
288 – 325
83% - 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
Mutant
1
2
3
4
5
6
Reachability
Infection
Propagation
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.
2.
3.
4.
5.
6.
Code and compile in a language of
choice
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.
Choose test values from each block and
derive the tests that satisfy All
Combinations Coverage (ACoC)
Identify the faults and produce a
method Project1_no_Faults
Derive a new method from the
Project_no_Faults, called
Project_1_if, such that each if
statement tests only one variable
Write a program that will execute all
the test from 3, over the Project_if and
Project_no_Faults methods.
Statistics
Assignment
Submissions
Avg
Introduction to testing
65
8.55
Introduction to testing
65
7.11
Graph coverage
65
8.49
Finite state machines
65
6.98
Logic coverage
65
6.14
Logic coverage
65
7.34
Input space partitioning
65
8.74
Input space partitioning
65
9.17
Mutation testing
65
8.63
Grammar mutation
65
9.58
Project
52 (so far)
/ (not graded)
Exams and mid term exams

The preferred way was through mid term exams



The rest of the students took the exams


45 students took the mid term exams(both)
43 of them passed
Only 3 left for the September exams
3 students dropped out
Conclusions about the course




The course is in the 8th 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
Download