The University of Queensland Homepage
School of ITEE ITEE Main Website

Contact
Location Room 328
General Purpose South (Building 78)
Telephone +61 7 3365 2883
E-mail wojcicki 'at' itee.uq.edu.au

 

Research Fields of Interest
Computer Science • Empirical Software Engineering
• Verification and Validation of Concurrent Java Components
• Integration of Assertions with V&V Technologies
• Modelling Technologies: Model-based testing, Model-driven development, Model checking
• Behaviour Trees

Zoology • Historical Biogeography
• Biodiversity
ISESE'06 with Victor Basili (Rio de Janeiro, Brazil)
Victor Basili & Me

 

Current Research
Evaluating the cost-effectiveness of assertions combined with V&V

Assertions are added to programs and can be checked at runtime; examples include preconditions, postconditions, monitor invariants, class invariants, check instructions and oracles. The inclusion of assertions with V&V can be advantageous by easing maintenance and testing and providing self-documenting code. The goal of this project is to determine whether or not integrating assertions with V&V technologies is cost-effective.
The first context that is being examined is that of multi-threaded programs (specifically in Java) which are hard to debug, test and verify. Synchronisation errors can easily be made that produce data race defects which can be hard to debug. Thus far, we have evaluated integrating Java PathFinder (JPF) [1] with assertions; JPF is a tool that integrates model checking, program analysis and testing. The study has been focusing on the common concurrent implementation BoundedBuffer. We are also looking into integrating assertions with noise makers (such as ConTest [2] and RaceFinder [3]) that insert calls to the yield() and sleep() functions into the code to increase the chance that running the program will reveal a defect.
The second context is the integration of assertions in model-based testing. Model-based testing is the automatic generation of efficient test procedures/vectors using models of system requirements. In this work, we are using a model-based testing tool, called NModel [4] for comparing simple conformance testing (CT) with and without (a) model-derived assertions (MDA), (b) MDAs augmented with implementation-guided assertions (IGA), and (c) assertions as oracles in the test drivers (ORC). The study examines various model-implementation pairs in C# and Java, mutating the implementations with defects, and then checking how the defects are detected using CT (a) without assertions, (b) with only MDAs and (c) with MDAs augmented with IGAs, (d) with only ORCs, (e) MDAs with ORCs, and (f) MDAs, IGAs with ORCs. So far we have investigated Magee and Kramer’s CruiseController program [5] and found that out of 15 bugs, 3 were found using MDAs with CT, 3 were found using MDAs and IGAs, 5 of the bugs were equivalent and 4 were not detected. In this simple case study, ORCs were included in MDAs. To build up our repository of components under test we are considering examples from the NModel suite [4].
In both contexts, the relevance of the results of the study greatly depends on the complexity and industrial applicability of the components under test.

References

[1] K. Havelund and T. Pressburger, "Model Checking Java Programs using Java PathFinder," International Journal of Software Tools for Technology Transfer (STTT), vol. 2, pp. 366-381, April 2000.
[2] O. Edelstein, E. Farchi, E. Goldin, Y. Nir, G. Ratsaby, and S. Ur, "Framework for testing multi-threaded Java programs," Concurrency and Computation: Practice and Experience, vol. 15, pp. 485-499, 2003.
[3] Y. Ben-Asher, Y. Eytani, and E. Farchi, "Heuristics for Finding Concurrent Bugs," in Workshop on Parallel and Distributed Testing and Debugging Nice, 2003.
[4] J. Jacky, M. Veanes, C. Campbell, and W. Schulte, Model-Based Software Testing and Analysis with C#: Cambridge University Press, 2008.
[5] J. Magee and J. Kramer, Concurrency: State Models & Java Programs: John Wiley & Sons, 1999.

Publications
2006 M. Wojcicki and P. Strooper. A State-of-Practice Questionnaire on Verification and Validation for Concurrent Programs. Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging. 1-10. [paper]
2006 M. Wojcicki and P. Strooper. Maximising the information gained from an experimental analysis of code inspection and static analysis for concurrent java components. Proceedings of the 5th ACM-IEEE International Symposium on Empirical Software Engineering. 74-83. [paper]
2007 J. Ngui, P. Strooper, L. Wildman and M. Wojcicki.  Comparing the Cost-effectiveness of Statically Analysing and Model Checking Concurrent Java Components for Deadlocks.  Proceedings of the 2007 Australian Software Engineering Conference. 223-232. [paper]
2007 M. Wojcicki and P. Strooper.  An Iterative Empirical Strategy for the Systematic Selection of a Combination of Verification and Validation Technologies.  Proceedings of the 5th Workshop on Software Quality.9. [paper]
2007 M. Wojcicki and P. Strooper. Maximising the information gained from a study of static analysis technologies for concurrent software (extended version of paper from ISESE'06). Journal of Empirical Software Engineering. [paper]
2007 P. Strooper and M. Wojcicki. Selecting V&V technology combinations: how to pick a winner? 12th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS 2007). 87-96.[paper]
2008 M. Wojcicki. Evaluating and combining verification and validation technologiesUniversity of Queensland.[paper] [archived web page]
Workshops
2005 Evaluating the cost-effectiveness of combining code inspection with static analysis tools TEST AUTOMATION WORKSHOP Queensland, Australia [program/slides]
2006 Developing a Strategy for the Systematic Selection of a Combination of Verification and Validation Technologies TEST AUTOMATION WORKSHOP Queensland, Australia [program/slides]

 

Research Groups
Assertion Integration Study [AssertIS]
Tools and techniques for testing concurrent software components [TestCon]
 
Related Tools of Interest
      ConAn - Automated testing of multithreaded java components.
      FindBugs - Static Analysis Tool
      Jlint - Static Analysis Tool
      ConTest - A tool for testing, debugging, and coverage-measuring of concurrent programs.
      Java PathFinder - Java program verification.

"Beware of bugs in the above code;  I have only proved it correct, not tried it."  D. Knuth

 

Historical Biogeography Research
 
Publications
2004 M. Wojcicki and D.R. Brooks. PACT: A simple and powerful algorithm for deriving general area cladograms. Journal of Biogeography 32(5): 755-774. [abstract]
2004 M. Wojcicki and D.R. Brooks. Escaping the matrix: a simple and powerful algorithm for comparative phylogenetic studies in coevolution. Cladistics 20(2004): 341-361. [abstract]
 
Workshops
2005 A Program for PACT WORKSHOP ON HISTORICAL BIOGEOGRAPHY
Hosted By: U.S. National Conservation Training Center in conjunction with the 2nd International Conference of The International Biogeography Society - West Virignia, USA [newsletter]

"Let theory guide your observations, but till your reputation is well established, be sparing in publishing theory.
It makes persons doubt your observations."
C. Darwin

 

Last updated 20 April 2009. Please credit if using this layout on another web page.