“All models are wrong; some models are useful.”
“Discovering the unexpected is more important than confirming the known.”
– Statistician George Box
The theme of this issue of CrossTalk is the exciting area of Model Based Testing. Without a doubt every software product manager would jump at the opportunity for delivering a product in less time and lower cost, while knowing that it has undergone a testing regimen sufficient of ensuring the highest quality. Often the effort related to shifting our approaches or processes is interpreted as waste; in regards to implementing model based testing, I can assure you this effort is well worth the investment.
Modeling is a necessary and beneficial part of every software effort. Regardless of the tools or documentation in front of them, every programmer works to convert an internal mental model of a process into working code. From the informality of this internal model to the structured formality of a tool like the Unified Modeling Language (UML), every working piece of software is built upon layers of abstraction and modeling. Settling on the right models and abstractions to solve a particular problem are the meat and potatoes of software engineering.
Modeling is the foundational element essential for the programmer to build a working piece of software. Methods for modeling and testing continue to evolve at a rapid pace in the world of software development. From the formal, top-down modeling favored by UML and the waterfall lifecycle model to the informal models that are continually developed and updated by Agile practitioners, the best models can vary across projects and teams. In the same vein, rigorous testing to requirements and formal Validation and Verification are the best choice for many situations, while Test-Driven Development or test-first programming continue to grow in popularity. In the quest for continual improvement, it will likely prove that adopting the best ideas from the wide variety of modeling and testing practices will result in better processes and products.
I hope that this issue of CrossTalk informs and assists a software community that continues to adapt to address the ever growing complexity of systems. Our teams are being asked every day to achieve a greater level of user experience with impeccable quality in a rapidly changing environment at a lower cost. I would like to encourage all of our community partners to redouble our focus on building relationships focused on learning, sharing, and improving.
Michael Jennings Group Director, 76 Software Maintenance Group