PPT9: Asserting expectations CEN 4072 Software Testing PPT9: Asserting expectations PPT and video are due: no later than October 26, 5:00 PM Submit to: lpiegl@gmail.com This template file is just an outline of the presentation that you need to complete. Additional pages will be necessary to fully explore the topic above. Each page should contain adequate text as well as illustrations. You are free to use all publically available information (text as well as graphics) as long as the sources are properly acknowledged.
Team members’ contributions Member [name]:
Observation vs assertion Content outline: Comparison, chart and example
Basic assertions Content outline: Definition and examples Can we always make an assertion?
Assertion and macros Content outline: Assertions as macros Example code
Asserting invariants Content outline: Invariants Type of invariants How easy it is to find invariants? Invariants as requirements
Asserting invariants Content outline: Pre-conditions Post-conditions
Ensuring sanity Content outline: What is a sane code? Example code segments
Locating infections Content outline: Pre-condition failure Post-condition failure Example code
Locating infections Content outline: All-assertion pass Example code frame
Complex invariants Content outline: Complexity of the invariant as a function of the data structure Example
Invariant in debuggers Content outline: Including invariants into GDB Example
Design by contract concept Content outline: Use EIFEL’s deign by contract method
Defining invariants with Z Content outline: Example of Z specification
Defining invariants with Z Content outline: Contract vs. Z specification
Java Modeling Language (JML) Content outline: What is JML Example code
Relative debugging Content outline: Debugging by comparison to reference runs
Relative assertions Content outline: Compare variables across two runs
System assertions Content outline: Check the integrity of the program data Assertions that must hold during the entire execution
MALLOC_CHECK Content outline: Example use of the MALLOC_CHECK environmental variable
ELECTRICFENCE Content outline: A tool to avoid buffer overflow
VALGRIND Content outline: List all uses of VALGRIND with an example and charts
Home made memory handlers Content outline: The use of static memory How FORTRAN did it?
Language extensions: CYCLONE Content outline: Example use of CYCLONE, e.g. special and fat pointers
Assertion and production code Content outline: Proper use of assertions in production code
Words of wisdom Content outline: Performance vs. run-time safety The integrity of code and data
Tools Content outline: JML GUARD VALGRIND PURIFY INSURE++ CYCLONE