Chapter 16. Rapid Application Development Testing

Rapid application development (RAD) is an effective software development paradigm that provides a systematic and automatable means of developing a software system under circumstances where initial requirements are not well known or where requirements change frequently during development. Providing high software quality assurance requires sufficient software testing. The unique nature of evolutionary, iterative development is not well suited for classical testing methodologies; therefore, the need exists for a testing methodology tailored for this developing paradigm. Part of the tailored testing methodology is ensuring RAD is the right development methodology for the system being developed.

Overview

This chapter describes a testing strategy for RAD: spiral testing. This document shows key RAD characteristics impinging on testing and the value of spiral testing to support evolutionary, iterative RAD. This testing strategy assumes the RAD system

  • is iterative.

  • is evolutionary.

  • contains RAD language with a defined grammar.

  • provides reusable components capability (library and retrieval).

  • uses implementation code from reusable components written in a high-level language.

  • contains a sophisticated support environment.

These characteristics will keep the RAD paradigm sufficiently general to discuss testing concerns. Because program verification and validation are the most costly activities in current development, any changes to RAD to simplify testing will accelerate the development process and increase RAD’s appeal.

Objective

The RAD testing methodology described in this test process s designed to take maximum advantage of the iterative nature of RAD. It also should focus on the requirements-capturing purpose of developing. Thus, a RAD-based testing technique starts by capturing the testing information resident in the RAD process in a form suitable for thoroughly testing the RAD system. Testers must know both the assumptions and the requirements the designers are trying to meet so that a test series can be built to verify the system. Remember, the test personnel are not usually the design personnel, nor should they be; therefore, RAD-based testing must provide tools and methods to analyze system requirements and capture requirement changes.

Concerns

This section describes the four concerns testers should have about RAD-based testing.

Testing Iterations

The iterative nature of software development implies that the system must track revision histories and maintain version control of alternate RAD versions. The user’s response to a demonstration may require that the RAD fall back to a previous iteration for change, or the developer might wish to demonstrate several iteration alternatives for user comment (one of which, or portions of several being selected). Requirements may be added, changed, or deleted. Test goals must easily change to fit modified requirements. Ideally, the developing environment will capture this modification explicitly, along with the accompanying purpose of the modification. Any testing tools developed must take these modifications into account to test the proper version and to appropriately consider the requirements and purpose germane to that version for test development. The tool should also exploit change as a likely source of errors. A tool that helps testers compare changes from one iteration to the next, along with system dependencies potentially affected by changes, helps test development considerably.

Testing Components

The use of reusable components raises reliability concerns. Have the components been unit tested, and if so, to what degree? Have they been used in previous implementations, and if so, which ones? What testing has been conducted on the previous implementations as well as the individual components? The testing methodology must consider how information on past component testing can be recorded and referenced to determine what unit testing might still be needed and what integration testing strategies might best check the components in their instantiated context.

Testing Performance

One necessary testing component is a set of test conditions. Requirements-based and functional testing base test conditions on some stated form of behavior or required performance standard, such as formal specifications or a requirements document. The development methodology does not provide a separate performance standard. The testing methodology must establish an objective standard of the intended behavior of the RAD under consideration. Every program must have an objective performance standard. The developing system must then, in some fashion, provide the tester and his or her tools with access to a system functionality description and system requirements to allow rapid, complete, and consistent derivation from the RAD. This access to functionality descriptions and requirements has the added benefit of helping develop scripts for demonstrations so that particular iteration changes and enhancements will be highlighted for the user’s comments.

Recording Test Information

The software development environment not only should capture requirements, assumptions, and design decisions, but, ideally, should map these into the RAD in a way useful to both rapid application development and testing. This mapping automatically provides a trace, documenting the RAD’s development. As the system grows, knowing why a particular design decision was made and being able to see where (and how) the RAD implements it will be difficult without automated support. The developing/testing paradigm must capture mappings from design or development decisions to the implementation. These mappings need to be rapidly revisable to quickly make the next RAD iteration.

Workbench

Figure 16-1 illustrates the workbench for testing RAD systems. Because rapid application development goes through a series of iterations, the tasks in the workbench parallel those iterations. Note that Task 3 may, in fact, perform all the iterations between the planning iteration and the final iteration multiple times.

Workbench for testing RAD systems.

Figure 16-1. Workbench for testing RAD systems.

Input

The only input to this test process is the RAD requirements. Because of the nature of RAD, the requirements are normally incomplete when development begins. The requirements will be continually developed throughout various iterations. Thus, the input to each of the three steps in the recommended RAD test process will be different.

Do Procedures

This section begins by describing iterative RAD and spiral testing, and then integrates those topics into a three-task strategy.

Testing Within Iterative RAD

The chapter provides a framework for iterative RAD testing. The most obvious approach to testing during RAD would be to treat each development iteration as one software life cycle. An advantage is that this keeps intact the methodology of testing familiar to most testers. The lack of a conventional specification effectively removes the information basis for test planning. Under current descriptions of the developing process, a specification would need to be generated, at least in part, before conventional techniques could be applied.

The process’s complexity is also compounded by the need to conduct a full cycle of testing for each iteration, even though the early iterations will almost never contain detailed or unchanging requirements. This would be inefficient and impractical testing.

An alternative test approach is to iterate test planning in parallel with the developing iterations. This will simplify testing and reduce overall testing costs when compared to the preceding approach. The initial test plan would consider only the basic system description contained in the initial RAD iteration. As RAD iterations proceed, the test plan would expand to incorporate the latest iteration modifications. One disadvantage is that this approach causes the test plan to follow the RAD process closely. The decisions in the RAD might unduly influence the test plan, causing important test conditions not to be explored. The possible disadvantage suggests that the unit and integration testing might be done iteratively, with acceptance testing occurring entirely on the final iteration of the development cycle.

By considering how the developing process closely follows the spiral process model that leads to a spiral iterative test planning process. Figure 16-2 illustrates this process.

Spiral test planning process.

Figure 16-2. Spiral test planning process.

Spiral Testing

The proposed RAD testing strategy, termed spiral testing, remains iterative and parallels the RAD process. Spiral testing characterizes the varying types of RAD iterations by tailoring the testing process to account for these differences. Spiral testing distinguishes between the initial few RAD testing iterations, subsequent iterations, and the final few iterations. The major distinction between the first few testing iterations and the subsequent ones is that the first iterations, for any but the smallest of systems, probably will have only test planning and structuring activities that establish priorities and areas of test emphasis.

The framework for intermediate testing activity and final acceptance testing, to include test derivation, is laid in the initial iterations. Unit and integration testing will likely be confined to subsequent and final testing iterations. Subsequent testing iterations will have less framework-related activity and more acceptance test oracle derivation activity. The major distinction between the subsequent and final iterations is that the final iterations are where developers return to their RAD to fix identified errors and testers conduct final integration and acceptance and regression testing. Figure 16-3 shows the separation of the groups of iterations for either the development or testing spiral. The following sections cover spiral testing in detail.

A “targeted” spiral.

Figure 16-3. A “targeted” spiral.

Task 1: Determine Appropriateness of RAD

There are strengths and weaknesses to using the RAD concept to build software. If the advantages outweigh the disadvantages, RAD should be used. However, some applications built under the RAD concept would have been better built under other software development models.

RAD development offers the following strengths:

  • System users get a quick view of the system’s deliverables.

  • The cost of risk associated with development is reduced because decisions can be made early regarding the usability of the first RAD prototype.

  • Customer satisfaction can be improved through a series of developmental iterations rather than a focus on a single deliverable.

  • If the project is developed by a project team familiar with the user’s business, fewer developers are required because of their knowledge of the user business.

  • Using powerful development tools can reduce the cycle time for developing the final system.

The problems associated with using the RAD model for development, on the other hand, include the following:

  • Users and developers must be committed to rapid-fire activities in an abbreviated time frame; thus any lack of commitment negates most of the advantages of the RAD model.

  • Diffusers are not continuously involved throughout the RAD cycles. Obtaining the necessary feedback at the appropriate times will facilitate development.

  • Unless the system can be appropriately modularized and has access to reusable components, the reduced cost and schedule may not be achieved.

  • Because the RAD concept does not require a fixed completion date, the risk is that the development team will continue through the RAD cycles past the point of economic return.

Understanding the strengths and weaknesses of the RAD model, testers should assess whether RAD is a desirable model for a specific software system. Using this analysis, the IT organization can be prevented from building software using the RAD model when other developmental models would be more appropriate.

Testers should use Work Paper 16-1 to determine whether the RAD model is appropriate for their software system. If the testers are uncertain whether a specific item can be answered Yes, they should give a No response. If more than 25 percent of the items have a No response, the applicability of using the RAD model for this specific software system should be re-evaluated.

Table 16-1. RAD Applicability Checklist

  

YES

NO

COMMENTS

1.

Is the system being designed a user business applications?

   

2.

Is the technical risk low?

   

3.

Is the project team familiar with the user business application?

   

4.

Is the project team skilled in the use of the RAD developmental tools?

   

5.

Is the developmental team highly motivated to develop this application using the RAD model?

   

6.

Can the system being developed be modularized?

   

7.

Are the requirements for the software system reasonably well known?

   

8.

Is the cost of the development not a critical concern?

   

9.

Is the implementation schedule not a critical concern?

   

10.

Is the software project small enough that it can be developed within about 60 days?

   

11.

Can the software functionality be delivered in increments?

   

12.

Is the software system relatively small in comparison to other systems developed by the IT organization?

   

13.

Are the users willing to become heavily involved in the development?

   

14.

Will the users be available during the developmental cycle?

   

Task 2: Test Planning Iterations

The first few iterations of the RAD serve varying purposes, depending on the particular software under design. When feasibility is not a consideration or when a detailed requirements document exists, the first development iterations establish the product’s design framework as a base upon which to RAD the remainder of the system. When feasibility must be investigated and/or when requirements are unknown, the first several development iterations seek to construct abstract RADs to see if an acceptable system can be designed. If the RAD is feasible, developers establish the major software requirements and design a development plan upon which to build the system during successive iterations, as in the first case mentioned previously. The first few development iterations will usually be devoted to establishing an overall RAD structural framework.

To mirror this process for test planning purposes, the initial test planning iterations consider the developing results and frame the testing process for the remainder of the project. This is the logical point for testers to determine the major critical portions of the RAD, and establish test priorities. As RADs establish major requirements, the test team begins to break these down into test goals, determining derived goals as well. As development continues, the testers can define the testing emphasis in greater detail, make needed test plan adjustments, and record test justifications.

It appears prudent (although not essential) throughout the development process for the test team to review user input and generate goals independently from the RAD team, so as to identify misstated requirements and to find missing requirements. This increases the quality of the RAD versions, thereby decreasing the number of iterations needed.

The initial iterations are where the test team will forecast the most important portions of the system to test. As the implementation hierarchy of the system takes shape, the testers establish test sections for path and integration testing. The long-term testing purpose is to build the framework for constructing the final acceptance-test oracle and to fit the intermediate testing activities into the overall development plan. The process will be manual for the most part, and this would be where initial testing tools and their databases/instrumentation would be initialized. The initial iteration phase would end at the RAD iteration in which the top-level requirements specification is established.

It is recommended that the documentation for each iteration of the RAD process be subject to the inspection process, as outlined in Part Three of this book, as well as complete the checklist in Work Paper 16-2.

Table 16-2. RAD Inspection Checklist for Task 2

  

INSPECTION RESULT

DESCRIPTION/LOCATION OF NOTED DEFECT

PASS

FAIL

N/A

 

Define Purpose and Scope of System

1.

Is the defined system within the context of the organization’s goals?

    

2.

Is the defined system within the context of the organization’s information requirements?

    

3.

Have the objectives that are critical to the success of the organization been identified in the RAD purpose and scope?

    

4.

Does the system scope identify the user environment?

    

5.

Does the system scope identify the hardware environment?

    

6.

Does the system scope identify the other systems that interact with this system (e.g., regarding input and output)?

    

7.

Does the RAD system scope define available funding?

    

8.

Does the RAD system scope identify time constraints?

    

9.

Does the RAD system scope identify the available resources to build the system?

    

10.

Does the RAD system scope state the security needs for the data and software?

    

11.

Has the RAD team been established?

    

12.

Is the RAD team trained in the techniques of RAD and the use of specific fourth-generation language for implementing RAD?

    

13.

Is the RAD software development group enthusiastic about the RAD concept?

    

14.

Does the RAD team know how to control RAD?

    
 

Develop System Conceptual Model

1.

Does the RAD team use a graphic method (e.g., a data flow diagram) to construct a model of the system to be developed?

    

2.

Are the data definitions used for the RAD included in the data dictionary?

    

3.

Are the critical system objectives defined in the project scope related to specific components of the conceptual model?

    

4.

Has the major business input been defined?

    

5.

Has the major business output been defined?

    

6.

Has the cost to implement the system using traditional systems development processes been estimated?

    

7.

Has the cost of the RAD been estimated? (The RAD should cost no more than 6% to 10% of the full-scale development effort.)

    

8.

Have the benefits of the RAD system been developed?

    

9.

Have the risks associated with developing this system when it goes into production been identified?

    

10.

Have the files needed to support the RAD system when it goes into production been identified?

    

11.

Has a database administrator been consulted to determine whether the needed data will be available?

    

12.

Has the computer operations department been consulted to determine whether it could run the system if it were implemented?

    

13.

Are there sufficient communications lines to support the system?

    
 

Develop Logical Data Model

1.

Has a model of the local information flow for individual subsystems been designed?

    

2.

Has a model for the global information flow for collections of subsystems been designed?

    

3.

Have the conceptual schemas for the RAD system been defined?

    

4.

Does the conceptual schema define the attributes of each entity in the subschema?

    

5.

Has a model been developed for each physical external schema?

    

6.

Has the physical database been designed to provide optimum access for the prototype transactions?

    

7.

Does the physical database design provide efficiency in operation?

    

8.

Is the RAD design restricted to accessing the database at the logical level?

    

9.

Have the functions to be performed by the RAD system been defined?

    

10.

Has the sequence of performing the functions been defined?

    

11.

Has the potential source of input transactions and data been defined?

    

12.

Has a determination been made that the needed data can be prepared in time to meet RAD processing schedules?

    

Task 3: Test Subsequent Planning Iterations

Once the basic RAD framework is established, subsequent iterations commence in which developers enhance the RAD’s functionality and demonstrate it for user/designer review. In the typical case, additional requirements are identified and the design matures in parallel over multiple iterations. Both are validated in the review process. At some point, sufficient requirements are identified to establish the overall system design.

The subsequent testing iterations will be characterized by unit testing, integration testing, and continued requirements review to determine whether any requirements are missing. To complement the design process, the test team concurrently develops integration test plans as designers complete subsections of the system design. In addition, as reusable components are instantiated to provide required functionality, the test team or design team unit tests these modules (both approaches are acceptable in current practice) by consulting the test history of the instantiated modules and conducting additional unit testing appropriate to the developing system.

Should this additional testing be necessary, the test team updates the test history to reflect the additional testing and its results. This update could be as simple as appending a test script (although this could eventually cost a large amount of storage for a large components test library) or as complex as completely revising the test history to incorporate new test sets, assumptions tested, test case justifications, and additional test history details. The complex update may be needed to reduce a series of simple updates into a consistent and usefully compact synthesis. As performance aberrations are found during a given iteration’s tests, they are readdressed to the design team for correction prior to the next iteration demonstration.

As the design team RADs system components, the test team can commence integration test planning for those components. The integration testing process is the same at any hierarchical system level for integration testing. The test team needs to keep integration testing at various levels coordinated to maximize test efficiency. If a standard structure for integration test sets could be constructed, then it might be possible to develop tools to manipulate these to conduct increasing levels of integration testing as more components and system subsections are implemented. Currently, most of this process would be manual. Final integration testing cannot commence until the RAD implementation is complete.

Throughout testing, testers consult the RAD specification and all requirements to determine the correct responses to test data. Considerable information needed for test data selection will likely be found in the RAD specification language. Automated support to extract this information would be very helpful, but will depend on the developing language in question and on possessing the capability automatically to relate the criteria to selected test data and execute the test.

Throughout the iterations, the test methodology must remain responsive to change. Existing components and specifications may change or disappear between iterations, contingent with user/developer/tester input. Additionally, each new iteration adds increased functionality or furthers the completion of existing incomplete implementations. The test development process must capture all effects of change because additional testing or retesting of previously tested code may be required. This retesting raises the issue of “phase agreement” between the RAD spiral and the test-planning spiral.

An in-phase agreement would have formal iteration testing proceed at the completion of a development iteration and prior to iteration demonstration to the user. The advantage here is that the test team will have tested the system and the developers are not as likely to demonstrate a system that contains undiscovered or obvious bugs. Any problems encountered in testing are corrected prior to user review. User confidence is not enhanced when bugs that are not related to design issues are discovered during the demonstration. On the other hand, many iterations will usually be demonstrating requirements not yet validated, and it is wasteful to test requirements that have not been validated.

An out-of-phase agreement relies on the designers to test their RAD iteration sufficiently prior to demonstration (for their reputation, not for formal testing). The test team conducts formal testing for an iteration at the conclusion of the user demonstration. They modify the formal test plan, developed during the development iteration, by removing any planned testing of eliminated, changed, or superseded requirements and by adding additional testing of corrections and modifications resulting from the user’s review. Test planning proceeds in tandem with iterations development, but actual testing waits for the results of the user’s review. Once the testers obtain user comments, they may assume that the stated requirements at that point represent solid requirements for the purpose of testing. This assumption continues until a requirement is explicitly or implicitly changed or eliminated. The advantages of out-of-phase testing are a savings in testing conducted (because you test only reviewed requirements) and increased test responsiveness to user review. The disadvantages are the increased likelihood of missed requirements and the possibility of bugs in the demonstrated systems. Work Paper 16-3 should be used when subsequent iterations are inspected.

Table 16-3. RAD Inspection Checklist for Task 3

  

INSPECTION RESULT

DESCRIPTION/LOCATION OF NOTED DEFECT

PASS

FAIL

N/A

 

Develop and Demonstrate RAD System

1.

Have the basic database structures derived from the logical data modeling been defined?

    

2.

Have the report formats been defined?

    

3.

Have the interactive data entry screens been defined?

    

4.

Have the external file routines to process data been defined?

    

5.

Have the algorithms and procedures to be implemented by the RAD been defined?

    

6.

Have the procedure selection menus been defined?

    

7.

Have the test cases to ascertain that data entry validation is correct been defined?

    

8.

Have report and screen formatting options been defined?

    

9.

Has a RAD system been developed using a fourth-generation language?

    

10.

Has the RAD been demonstrated to management?

    

11.

Has management made strategic decisions about the application based on RAD appearance and objectives?

    

12.

Has the RAD been demonstrated to the users?

    

13.

Have the users been given the opportunity to identify problems and point out unacceptable procedures?

    

14.

Has the prototype been demonstrated before a representative group of users?

    

15.

If the RAD is unacceptable to management or users, have requests for changes or corrections been documented?

    

16.

Has a decision been made concerning whether to develop another RAD iteration?

    

Task 4: Test the Final Planning Iteration

Once developers establish all requirements (usually in the latter iterations), the final few iterations of development are devoted to implementing the remaining functionality, followed by error correction. Therefore, the testers can devote their work to completing the test for acceptance testing, and to remaining unit testing and subsection integration testing.

The final test planning iterations commence with the completion of the operational RAD and prior to final user acceptance. As any final requirements are implemented or as system components are fine-tuned, tests are developed and conducted to cover these changes. Most important, the test team completes the acceptance test plan. Once the system is completely implemented and the acceptance test design is complete, the test team conducts the acceptance test. The test team checks differences in actual results from expected results and corrects the tests as appropriate while the design team corrects system faults. The cycle continues until the system successfully completes testing. If the design team is busier than the test team, the test team can use the available time to conduct additional testing or priority-superseded testing previously skipped. The result should be a sufficiently tested software system. Work Paper 16-4 should be used when the final iteration is inspected.

Table 16-4. RAD Inspection Checklist for Task 4

  

INSPECTION RESULT

DESCRIPTION/LOCATION OF NOTED DEFECT

PASS

FAIL

N/A

 

Revise and Finalize Specifications

1.

Is someone on the RAD team responsible for reviewing each component for inconsistencies, ambiguities, and omissions?

    

2.

Has the statement of goals and objectives been reviewed to ensure that all elements are present, that all components have been defined, and that there are no conflicts?

    

3.

Has the definition of system scope been reviewed to ensure that all elements are present, that all components have been defined, and that there are no conflicts?

    

4.

Have the system diagrams been reviewed to ensure that all elements are present, that all components have been defined, and that there are no conflicts?

    

5.

Has the data dictionary report been reviewed to ensure that all elements are present, that all components have been defined, and that there are no conflicts?

    

6.

Has the risk analysis been reviewed to ensure that all elements are present, that all components have been defined, and that there are no conflicts?

    

7.

Has the logical data model been reviewed to ensure that all elements are present, that all components have been defined, and that there are no conflicts?

    

8.

Have the data entry screens been reviewed to ensure that all elements are present, that all components have been defined, and that there are no conflicts?

    

9.

Have the report layouts been reviewed to ensure that all elements are present, that all components have been defined, and that there are no conflicts?

    

10.

Have the selection menus and operational flow been reviewed to ensure that all elements are present, that all components have been defined, and that there are no conflicts?

    

11.

Has the physical database structure been reviewed to ensure that all elements are present, that all components have been defined, and that there are no conflicts?

    

12.

Has the draft user manual been reviewed to ensure that all elements are present, that all components have been defined, and that there are no conflicts?

    

13.

Have all of the RAD elements been indexed?

    

14.

Have all of the RAD elements been cross- referenced by subject and component?

    

15.

Does the RAD documentation contain sample reports?

    

16.

Does the RAD documentation contain sample data entry screens?

    

17.

Does the RAD documentation contain a listing of the fourth-generation commands for each programmed function?

    
 

Develop Production System

1.

Has a decision been made by the end user regarding putting the system in production?

    

2.

If so, have all the significant system problems been resolved?

    

3.

If the RAD is very inefficient, is it discarded in place of a production system built using traditional methods?

    

4.

If the RAD does not have adequate controls, is it thrown away and a new system developed using traditional methods?

    

5.

If the RAD is placed into production, does it have adequate data validation?

    

6.

If the RAD is placed into production, does it have adequate system controls?

    

7.

If the RAD is placed into production, does it have adequate documentation for maintenance purposes?

    

8.

If the system is rebuilt using traditional methods, does the developmental project team believe that the RAD documentation is adequate for developing a production system?

    
 

Release Test System

1.

Has the system been approved by the test team before being released for test?

    

2.

Has the system design been documented in detail?

    

3.

Have the user manuals been revised?

    

4.

Has a training plan been developed?

    

5.

Are the users involved in the testing?

    

6.

Is the system put under full production conditions during testing?

    

7.

Does the existing system remain in place until the new system has passed testing?

    

8.

Have all end users been trained in the operation of the system?

    

9.

If the output is crucial to the organization, has a parallel operation test been performed?

    

10.

Are errors noted during testing documented?

    

11.

Are needed changes noted during testing documented?

    

12.

Has a formal decision procedure been developed to determine when to move the system out of testing?

    
 

Release Production System

1.

Have the users accepted the system before it is placed into production?

    

2.

Have the final user manuals been prepared?

    

3.

Have the final user manuals been distributed to the end users?

    

4.

Have the end users been trained in any changes occurring between testing and placement of the system into production?

    

Check Procedures

Work Paper 16-5 is a quality control checklist for testing RAD systems. It is designed so that Yes responses indicate good test practices and No responses warrant additional investigation. A Comments column is provided to explain No responses and to record results of investigation. The N/A column is used when the checklist item is not applicable to the test situation.

Table 16-5. RAD Systems Quality Control Checklist

  

YES

NO

N/A

COMMENTS

1.

Does the test team contain a collective knowledge and insight into how RAD systems are developed?

    

2.

Does the test team collectively understand the tool that is used in RAD?

    

3.

Do the testers understand that the RAD’s requirements will be continually changing as development progresses?

    

4.

Does the test team collectively understand how to use the inspection tools?

    

5.

Is the inspection process used at the end of each iteration of RAD?

    

6.

Are new requirements documented prior to developing each RAD iteration?

    

7.

Did the testers test each RAD iteration?

    

8.

Is the tester’s input incorporated into the process of updating requirements for the next iteration of a RAD?

    

Output

This testing process will have multiple outputs of approximately the same composition. These outputs are test reports that indicate findings at the end of the testing of each iteration of the RAD development. The test reports should indicate what works and what does not work. They should also contain testers’ recommendations for improvement. Note that if there are many iterations of the system being developed, the reports may be less formal so that they can be more quickly provided to the development team.

Guidelines

Spiral testing has the advantages of being flexible and maximizing the amount of testing conducted during the RAD process. It allows for the steady development of an acceptance test in the face of continual system change and facilitates lower-level testing as soon as implementation code is instantiated. The spiral testing approach particularly suits the methodology for use with evolutionary, iterative RAD that is itself spiral. Using test histories for reusable components should speed the testing process by reducing the amount of unit testing required. Testers can obtain a further benefit of the test history feature, the compounding of unit testing for reusable components, by either increasing the component confidence factor or at least delineating the bounds within which it may be successfully used.

The spiral testing approach also results in thorough documentation of the testing conducted and a formal, written test plan that can be viewed with the user for approval. The extended time for test development (considerably more than in conventional life cycle models) also should provide for a more thorough test.

The major disadvantage to the approach is that the final acceptance test remains a moving target until the completion of implementation coding. Additionally, the test team must remain vigilant against following the development process so closely that they fail to view the system objectively from the outside. The first disadvantage is inherent to the development process; therefore, the goal is to minimize its effect. Spiral testing is likely to do this. The second disadvantage may be reduced with experience but will likely require separate test teams to conduct critical acceptance tests. Note that the spiral testing strategy remains a theory at this point. Further research will be required to determine its feasibility and practicality.

Summary

This chapter provided a testing process for systems developed using the RAD methodology. Testers need to be familiar with the RAD methodology their organization uses. The materials contained in this chapter focused on the inspection process because it is more effective in uncovering defects than is dynamic testing. Dynamic testing is more effective when used in the later iterations of the RAD process. This chapter was designed to be used in conjunction with the seven-step process outlined in Part Three.

 

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset