Application lifecycle management (ALM) automation tools have evolved over the past three decades to address specific needs in requirements traceability, design visualization and validation and automated testing. Agile development methodologies have only made the need and use for these tools more urgent because of the accelerated nature and frequent changes experienced in the development lifecycle. In this article, CIOs learn about both...
open source and commercially available automation tools for requirements traceability, for design and for test.
Requirements traceability automation
Requirements analysis is about communication with the business and translation of business requirements into software features. When teams use Agile stories, requirements can fall through the cracks because of the more granular and fluid nature of Agile cycles compared to traditional software development methodologies. Tracing requirements back to specific software features or stories is the only way to make sure nothing is missed.
Wiki and Open Source Requirements Management Tool (OSRMT) are some of the open source requirements management tools. The OSRMT tool is an older one, but TWiki is widely in use today. Automatic requirements traceability is still not available with these tools, but manual diligence along with the support of the tool can achieve the same objectives.
Workspace.com is a commercial, hosted, Software as a Service (SaaS) offering that can be used for automated requirements management. You can import requirements from Microsoft Word documents or Excel spreadsheets into a workspace. These are then mapped to system features. As features or Agile stories are completed, you can track requirements that have been completed and those that are still pending.
Design automation tools
Design automation tools are needed for translating business requirements into software features or stories. They help in defining them to a level of detail needed to get meaningful feedback from business/product owners and also for communicating the same to the development team.
Microsoft Visio is the simplest of these tools and the one in widest use. Flowcharts drawn in Visio have been, and continue to be used, in software design. The Unified Modeling Language (UML) is used to specify, visualize, modify, construct and document the design of software. It provides a standard way to visualize a system's architectural blueprints, including business process related artifacts like activities, actors, database schemas, and components including re-usable components. SmartDraw, Visual Paradigm, Altova and Sparx Systems are some commercially available UML modeling tools. Visual Paradigm has some powerful business process modeling features that complement the UML diagramming. This may be very useful for automated test case development in business process intensive applications.
ArgoUML is an open source UML modeling tool. It has been in widespread use around the globe the past few years, and is Java-oriented. Modelio and Papyrus are some other open source UML modeling tools that have been in use for some time.
Test automation tools
Test automation needs to start with functional testing or scenario testing. This takes the level of testing up a notch from only boundary conditions testing to the business or requirements level. Does the software behave and work the way a business person trying to perform a task, expects it to? Here test actions are represented in a visual storyboard format. Using this storyboard, testers communicate and understand their test flow as well as edit their test actions in a business/storyboard form. IBM Rational Functional Tester and HP QuickTest Pro are commercial, functional test automation tools.
Test automation for regression and user interface testing with recording and playback of on-screen actions, and success/failure of the test determination are all handled by traditional automation tools. Automated QA Test Complete, HP WinRunner and Rational Robot are all commercial test automation tools that provide this kind of functionality.
Selenium is a popular open source test automation tool, especially for browser-based applications. It has a large user community to draw support from on the Web.
Automated test tools can make sure that the software works the way it is intended to. The software can work perfectly as intended and designed, but does it solve the users’ requirements in an effective way? Does it even cover all of the users’ requirements? Does the software cover all of the many use cases? That’s why automation tools are used diligently through the application development lifecycle – from requirements, design and development -- not just the testing part alone. ALM automation tools take on that much more urgency when an Agile development methodology is used because of its accelerated nature when compared to other traditional methodologies. Agile methodologies have shorter amounts of time allocated for testing, but the scope of the testing is the same as with longer cycles. Only automation tools can help you accomplish what you need to. Fortunately, there are a number of effective and efficient, commercially available and open source tools for all stages of the application lifecycle to address this problem.
Follow us on Twitter at @SoftwareTestTT and let us know what you thought of this article.