Better Software - March 2008 - (Page 40) n critical projects, testers are commonly required to design, maintain, and execute a regression test suite to certify an application before it is deployed in production. In this case, we are concerned with the test suite completeness, as our final application certification is only as good as the regression suite coverage. To be used as a frame of reference, a conventional test-coverage measurement technique requires complete software requirements. We then establish traceability between requirements and related tests that allows us to measure test coverage and identify coverage gaps. However, testers in the field commonly deal with incomplete and even missing software requirements. On such projects, they do not have sufficient visibility into the application’s test coverage. This article provides a solution that I have found to be effective for this problem on many critical projects. The solution, a technique called requirements composition table (RCT), allows testers to assess the regression test suite completeness and identify test coverage gaps. Once gaps are identified, testers can better decide how to evolve the regression test suite to improve the application’s test coverage. The RCT is based on the insight that we do not need descriptions of software requirements in order to measure regression test coverage and identify coverage gaps; just having their inventory and structure can be sufficient. Identifying coverage gaps using this technique involves six steps: 1. Decompose the application functionality. 2. Identify core features. 3. Identify crosscutting concerns. 4. Develop a requirements composition table. 5. Establish traceability between requirements and regression tests. 6. Measure test coverage and identify gaps. I illustrate the technique using an imaginary hotel management system (HMS). The following are terms used in its workflow: 40 BETTER SOFTWARE MARCH 2008 O Figure 1: Application functional decomposition • Core feature—This is a unit of the application functionality that, being executed, allows the user to achieve a particular business goal (result). For example, functionality captured by use cases can be qualified as core features. • Crosscutting concern—This term comes from the aspect-oriented software development methodology (see the StickyNotes for more information). It refers to a specific category of software requirements that are scattered across the application and tangled with core features. ing rate plans, etc. • 03. Accounting—used by accounting personnel for creating and reviewing financial statements, conducting cashier audits, maintaining credit card limits, etc. • 04. Housekeeping—used by housekeeping staff for maintaining the cleaning and occupancy statuses of rooms, assigning rooms to attendants, etc. • 05. System Setup—used by hotel management for setting up hotel property defaults and user profiles, managing tax codes and charge codes, etc. Each module still presents a complex chunk of functionality, so we continue decomposition from the second perspective—types of requirements—where we want to separate software requirements by different categories (i.e., concerns). Business applications implement core features that allow the user to achieve concrete business goals. They can be presented from the end-user perspective and specified by use cases. In addition, business applications are implemented based on some generic engineering principles related to data-entry validations, user role validations, concurrency control, handling front-end connectivity, data exchange with other systems, etc. We begin our anaysis by decomposing the application functionality into a high-level structure of functional requirements from two perspectives: application modules and types of functional requirements. Our HMS application can have the following modules: • 01. Front Desk—used by frontdesk clerks for creating and managing reservations, handling financial charges, etc. • 02. Hotel Management—used by hotel management for managwww.StickyMinds.com http://www.StickyMinds.com
Table of Contents Feed for the Digital Edition of Better Software - March 2008 Better Software - March 2008 Contents Mark Your Calendar Contributors eLightenment Technically Speaking Code Craft Test Connection Management Chronicles Cover Story: Breaking Ground On SOA Software Development Worst Practices Mind the Gap Product Announcements 10 Things You Might Not Know About... The Last Word Ad Index Better Software - March 2008 Better Software - March 2008 - (Page Intro) Better Software - March 2008 - Better Software - March 2008 (Page Cover1) Better Software - March 2008 - Better Software - March 2008 (Page Cover2) Better Software - March 2008 - Better Software - March 2008 (Page 1) Better Software - March 2008 - Better Software - March 2008 (Page 2) Better Software - March 2008 - Contents (Page 3) Better Software - March 2008 - Mark Your Calendar (Page 4) Better Software - March 2008 - Mark Your Calendar (Page 5) Better Software - March 2008 - Contributors (Page 6) Better Software - March 2008 - Contributors (Page 7) Better Software - March 2008 - eLightenment (Page 8) Better Software - March 2008 - eLightenment (Page wp1) Better Software - March 2008 - eLightenment (Page wp2) Better Software - March 2008 - eLightenment (Page 9) Better Software - March 2008 - eLightenment (Page 10) Better Software - March 2008 - eLightenment (Page 11) Better Software - March 2008 - eLightenment (Page 12) Better Software - March 2008 - Technically Speaking (Page 13) Better Software - March 2008 - Code Craft (Page 14) Better Software - March 2008 - Code Craft (Page 15) Better Software - March 2008 - Code Craft (Page 16) Better Software - March 2008 - Code Craft (Page 17) Better Software - March 2008 - Test Connection (Page 18) Better Software - March 2008 - Test Connection (Page 19) Better Software - March 2008 - Management Chronicles (Page 20) Better Software - March 2008 - Management Chronicles (Page 21) Better Software - March 2008 - Management Chronicles (Page 22) Better Software - March 2008 - Management Chronicles (Page 23) Better Software - March 2008 - Cover Story: Breaking Ground On SOA (Page 24) Better Software - March 2008 - Cover Story: Breaking Ground On SOA (Page 25) Better Software - March 2008 - Cover Story: Breaking Ground On SOA (Page 26) Better Software - March 2008 - Cover Story: Breaking Ground On SOA (Page 27) Better Software - March 2008 - Cover Story: Breaking Ground On SOA (Page 28) Better Software - March 2008 - Cover Story: Breaking Ground On SOA (Page 29) Better Software - March 2008 - Cover Story: Breaking Ground On SOA (Page 30) Better Software - March 2008 - Cover Story: Breaking Ground On SOA (Page 31) Better Software - March 2008 - Software Development Worst Practices (Page 32) Better Software - March 2008 - Software Development Worst Practices (Page 33) Better Software - March 2008 - Software Development Worst Practices (Page 34) Better Software - March 2008 - Software Development Worst Practices (Page 35) Better Software - March 2008 - Software Development Worst Practices (Page 36) Better Software - March 2008 - Software Development Worst Practices (Page 37) Better Software - March 2008 - Mind the Gap (Page 38) Better Software - March 2008 - Mind the Gap (Page 39) Better Software - March 2008 - Mind the Gap (Page 40) Better Software - March 2008 - Mind the Gap (Page 41) Better Software - March 2008 - Mind the Gap (Page 42) Better Software - March 2008 - Mind the Gap (Page 43) Better Software - March 2008 - Mind the Gap (Page 44) Better Software - March 2008 - Product Announcements (Page 45) Better Software - March 2008 - 10 Things You Might Not Know About... (Page 46) Better Software - March 2008 - The Last Word (Page 47) Better Software - March 2008 - Ad Index (Page 48) Better Software - March 2008 - Ad Index (Page Cover3) Better Software - March 2008 - Ad Index (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.