Many people do not associate the UML with testing activities on a project. This is not surprising. For decades, the commitment to rigorous testing has received spotty support, usually in favor of meeting the schedule commitments on projects. This mindset arises from decades of de-emphasizing the importance of testing. Although there have been various industry-wide quality initiatives such as Total Quality Management, Six Sigma, and so forth, testing often takes a back seat to the other activities in systems development. One of the main factors causing this is timing—people focus on what they perceive is urgent. As Alexander Kossiakoff and William N. Sweet say in Systems Engineering Principles and Practice, “Test planning is seldom allocated adequate priority in either staffing or funding in the early phases of system development.” [KOSS1] Testing is often thought of as an activity that happens later in the development lifecycle, after coding. Early in the development lifecycle, teams focus on the more immediate issues, such as architecture, design, and so forth. By the time the team gets to the “testing phase” of the project, schedule slips have already occurred, so this time is made up by shrinking the time allotted for testing. This typical scenario illustrates how the importance of testing is compromised for other “urgent” project issues.
We contend that testing should not be relegated to the tail end of a project. We believe people involved in the testing effort should be involved at the beginning of the project through to the delivery of the final product. Involving the test personnel at the beginning, as early as the business modeling stage, will help prevent errors from being introduced into your system in the first place. As Stephen Covey said about focusing on what is important (in our case, testing) over what is urgent:
Your effectiveness would increase dramatically. Your crises and problems would shrink to manageable proportions because you would be thinking ahead, working on the roots, doing the preventive things that keep situations from developing into crises in the first place. [COVE1]
|
|
So, how exactly can you as a test professional (or software developer) use the UML to help your test activities? The good news is that the UML models developed by the analysts, architects, and designers in the early phases of a project can be directly used to jump-start testing activities.