Re: Work on generating test cases from UML models



Date view Thread view Subject view Author view

Daniel Jackson (dnj@lcs.mit.edu)
Tue, 16 May 2000 09:33:14 -0700


robert, our work on analysis of object models might be relevant. our alcoa tool generates instances (ie, configurations, or object diagrams) from constraints. if the constraint you choose is an invariant, you get sample system states; if it's an operation, you get sample transitions; if it's a claim, you get counterexamples. the tool was motivated by the need for design analysis, but it might also be useful for testing. here are some things you might do with it: * generate interesting system states, and then construct them by executing the code; * generate operation executions, and use the pre-states to execute the code and the post-states as an oracle; * mutate the spec and generate mutant test cases; * take two versions of an operation, and ask for sample executions that distinguish them and feed these to the code. this last thing is something we often do to check our specs. suppose you have an operation OP. you construct another operation OP' that is similar (or perhaps even that you think is the same), and then you check the assertion OP <-> OP'. alcoa will then generate sample executions that belong to one and not the other (if there are any). we've done a bunch of case studies using our tool recently. these include: -- analysis of the Intentional Naming System, a new distributed name service; -- analysis of a new phone feature for AT&T; -- design of an extension to CTAS, an air-traffic control system; -- design of a new email client; -- analysis of interface querying in COM. most of these involve state spaces that are a few hundred bits wide (ie., 2^100 states) and can be analyzed in seconds. many of the analysis found serious problems that had not been noticed before. btw, in the last six months, we've made quite a lot of progress. we're about to release a new version of the tool that -- is much faster (due to new symmetry-breaking method); -- covers a wider language (full relational operators like Z, in addition to our current OCL-style ops, and numeric operators); -- includes visualization (displays object diagrams in addition to text). regards, /daniel ps. the tool will not be called "alcoa" after july 1. we thought that trademarks don't cross industry boundaries. lawyers for the Aluminum Company of America think otherwise. suggestions for a new name are very welcome! constraints: we'd like to keep tha language name (alloy), and we like being at the top of the alphabet! Daniel Jackson Ross Professor of Software Technology MIT Lab for Computer Science http://sdg.lcs.mit.edu/~dnj


Date view Thread view Subject view Author view