R
Ryan Davis
Heckle version 1.1.0 has been released!
http://www.rubyforge.org/projects/seattlerb
by Ryan Davis and Kevin Clark
Unit Testing Sadism.
=46rom http://glu.ttono.us/articles/2006/12/19/tormenting-your-tests-=20=
with-heckle :
Heckle is a mutation tester. It modifies your code and runs your =20
tests to make sure they fail. The idea is that if code can be changed =20=
and your tests don=92t notice, either that code isn=92t being covered or =
=20
it doesn=92t do anything.
It=92s a little weird, I know, but I like to think about it as pen-=20
testing. It=92s like hiring a white-hat hacker to try to break into =20
your server and making sure you detect it. You learn the most by =20
trying to break things and watching the outcome.
Anyway, Heckle was inspired by Jester, and Ryan Davis wrote a proof =20
of concept at RubyConf. As he notes, I went a little nuts and much of =20=
the current implementation I rewrote that night or on the plane home.
Changes:
=3D=3D 1.1.0 / 2006-12-19
* 12 major enhancements:
* Able to roll back original method after processing.
* Can mutate numeric literals.
* Can mutate strings.
* Can mutate a node at a time.
* Can mutate if/unless
* Decoupled from Test::Unit
* Cleaner output
* Can mutate true and false.
* Can mutate while and until.
* Can mutate regexes, ranges, symbols
* Can run against entire classes
* Command line options!
http://www.rubyforge.org/projects/seattlerb
by Ryan Davis and Kevin Clark
http://www.rubyforge.org/projects/seattlerb
by Ryan Davis and Kevin Clark
Unit Testing Sadism.
=46rom http://glu.ttono.us/articles/2006/12/19/tormenting-your-tests-=20=
with-heckle :
Heckle is a mutation tester. It modifies your code and runs your =20
tests to make sure they fail. The idea is that if code can be changed =20=
and your tests don=92t notice, either that code isn=92t being covered or =
=20
it doesn=92t do anything.
It=92s a little weird, I know, but I like to think about it as pen-=20
testing. It=92s like hiring a white-hat hacker to try to break into =20
your server and making sure you detect it. You learn the most by =20
trying to break things and watching the outcome.
Anyway, Heckle was inspired by Jester, and Ryan Davis wrote a proof =20
of concept at RubyConf. As he notes, I went a little nuts and much of =20=
the current implementation I rewrote that night or on the plane home.
Changes:
=3D=3D 1.1.0 / 2006-12-19
* 12 major enhancements:
* Able to roll back original method after processing.
* Can mutate numeric literals.
* Can mutate strings.
* Can mutate a node at a time.
* Can mutate if/unless
* Decoupled from Test::Unit
* Cleaner output
* Can mutate true and false.
* Can mutate while and until.
* Can mutate regexes, ranges, symbols
* Can run against entire classes
* Command line options!
http://www.rubyforge.org/projects/seattlerb
by Ryan Davis and Kevin Clark