The Unified Modeling Language (UML) has emerged as an industrial standard for modeling software systems, and has been presented to the International Organization for Standardization for consideration as an international standard. UML has received a great deal of attention (both positive and negative) from the software design and development communities, and work is ongoing to enhance and expand its capabilities. However, the software testing community has had much less awareness and debate about UML, and has largely been absent as the modeling standard was developed. This is an important issues, because in many software development organizations, the cost of testing can account for more than 40% of the total development cost for a software system. Given these facts, this abstract seeks to explore the possibility of using the UML for software testing.
The UML is a visual modeling language that can be used to "specify, visualize, construct, and document the artifacts of a software system". The language itself is specified using a 4-layer meta-model architecture, which partitions the UML into three logical sub-packages: Foundation, Behavioral Elements, and Model Management. UML provides seven views into a software system. These are the static, use case, state machine, activity, interaction, physical, and model management views.
The Foundation package provides the basic infrastructure for exploring the static structure of systems. This infrastructure includes:
- class diagrams - class structure and associations
- component diagrams- map classes to software units
- deployment diagrams - physical system structure