A Software Testing Primer