SWE 437 Homeworks 6 and 7
Fall 2018
Final Tools Assignment
There are various options for the final two assignments.
Pick one for assignment 6 and a different one for assignment 7.
-
If you have never done this before, work through a simple
TDD example such as Koskela, chapter 2:
Koskela is available online through Mason's Safari subscription:
Direct Safari
Link
Off Campus Safari Link.
-
If you have never done this before, set up a continuous
integration service such as
Jenkins
or
Travis CI.
and use it to build and update a small example system.
You should intentionally break and restore builds as part of your exercise.
Note: This works best as a collaborative exercise.
-
Use
Evosuite
to generate tests on a small project.
You should analyze the tests to see what Evosuite comes up with and what it misses.
Note: Evosuite is aimed at Java.
-
Use
Klee
to generate tests on a small project.
You should analyze the tests to see what Klee comes up with and what it misses.
Note: Klee is aimed at C.
-
Read the book How Google Tests Software
and determine where your organization is on the "Test Certified Level"
(Chapter 2) scale.
Create up a plausible plan to move your organization up to a higher
level.
Ideally, you would want to actually start implementing
this plan, but that is not required for credit.
The book is available electronically through Mason's Safari subscription:
Direct Safari Link
Off Campus Safari Link.
Note: This option really only makes sense for students who have a software development job or internship.
-
Consider the PIT
mutation tool.
Apply PIT to a program of your choosing
and generate tests to kill the PIT mutants.
Your tests should be as close to mutation-adequate as you can make them.
That means you should be able to justify unkilled mutants in your report.
Note: This tool is aimed at practicing developers, so it is relatively easy to deal with.
-
Consider the Major
mutation tool.
Apply Major to a program of your choosing
and generate tests to kill the Major mutants.
Your tests should be as close to mutation-adequate as you can make them.
That means you should be able to justify unkilled mutants in your report.
Note: This tool is far more powerful than PIT, but
it's a research tool, and it has its quirks.
-
For those interested in a game,
play Code Defenders.
Obviously, this only works as a collaborative exercise.
For full credit, you need to play the game until your test set
is pretty good. You'll need to justify why you think that is the case.
In all cases, turn in a concise report.
The report must reflect a reasonable level of investigation/analysis.
Simply making it through the download and running a canned tutorial isn't satisfactory.