Requirements Analysis Using Event/Response and Use Cases: Test Planning & Execution

Planning

In addition to being a great way to elicit the complete scope of a project, the Event/Response methodology delivers a comprehensive framework for test planning and execution. When using this methodology, what many call “User Acceptance Testing” can be replaced by the term “Event Testing”.

In my prior posts on this topic, I identified the primary deliverables of the Event/Response methodology as:

  1. The Event List (containing the event that triggers the response, the origin and data content of the information flow into your “business”, the named processes, the outputs of the processes and the destinations of the outputs), and
  2. The Use Cases. You can plan to test by simulating the actual Events, creating the data flows, executing the processes and examining the outputs. The Use Cases give you a good start on creating the data and usage variations for each Event. Doing this yields a direct mapping of the scope and requirements to the test cases and execution.

Note that since the Event List also contains the roles of the actors initiating the events and processes, as well as the roles receiving the outputs, security testing can also be built into this framework.

Another major plus of planning and executing the tests this way is that you are testing the system as it will actually be used in context, as opposed to functional testing which tests bits of functionality in isolation.

A recent project of mine used this methodology and yielded 180 Events and over 1,600 test cases. Because of this comprehensive approach, the system was very well tested and only experienced minor problems after implementation.

Advertisements

The Project Plan Part 4: The Test Plan

Planning

The Test Plan applies primarily to projects that include new and changed software and/or business processes. Doing this planning in advance is key to meeting the target schedule as testing is typically the most time consuming portion of a project. Unfortunately, when many projects are in schedule trouble, testing is usually the first target for cutting the planned effort. Having a solid Test Plan will help mitigate that risk.

There are multiple aspects to the test plan:

Determine the Test Plan Objectives

  • To identify the activities required to prepare for and conduct testing
  • To define the test scope, strategy and methodology to be used for the test
  • To define financial control tests (if applicable)
  • To identify configuration controls and metrics
  • To define metrics and status reporting
  • To identify responsibilities for the tasks included in the plan
  • To define the test tools and the environment needed to conduct the test
  • To identify test interactions with other organizations
  • To identify test customers and deliverables
  • To identify the major testing milestones
  • To define the sources of information used to prepare the plan

Define the Test Approach:

Give a high-level description of the approach and activities to be followed in testing the solution. If you are using Agile methods, this is where you will plan the release/test cycles.

Identify the Major Test Responsibilities:

Identify teams and individuals who will be managing and executing the tests. It should also specify their responsibilities.

The Features and Functionality to Test:

This is a high-level description (not the detailed test cases). You should consider the following:

  • Specific features to be tested
  • The types of error testing to be performed
  • The types of stress/load testing to be performed
  • The type of usability testing to be performed
  • The type of reliability testing to be performed
  • The type of recovery testing to be performed
  • The type of compatibility/migration testing to be performed
  • The type of security testing to be performed
  • The types of software and hardware to be employed if testing is to be performed over multiple software and hardware configurations (configuration testing)

Document your thoughts on the test process:

You should consider the following:

  • How you will define the acceptance criteria
  • Deliverables – materials that must be made available or created in order to conduct the tests and that will be developed from the tests to describe the test results.
  • Test Documentation – itemize the documentation you will require in regards to recording the test procedures and results.
  • Test Data – Where will it come from? How will it be created? Are regular refreshes needed?
  • Support Organizations – identify all interfacing organizations (Technology Services, Vendors, etc) that are needed to support the testing. Describe what will be needed.
  • Test Setup, Procedures and Walk-thru – general description of the steps the test will go thru to ensure quality tests.
  • Tracking and Reporting Status – Define the information test team members will communicate during the testing process. This should include the bug reporting tools and methods as well as a bug classification strategy

The Project Plan Part 4: The Test Plan

Planning

The Test Plan applies primarily to projects that include new and changed software and/or business processes. Doing this planning in advance is key to meeting the target schedule as testing is typically the most time consuming portion of a project. Unfortunately, when many projects are in schedule trouble, testing is usually the first target for cutting the planned effort. Having a solid Test Plan will help mitigate that risk.

There are multiple aspects to the test plan:

Determine the Test Plan Objectives

  • To identify the activities required to prepare for and conduct testing
  • To define the test scope, strategy and methodology to be used for the test
  • To define financial control tests (if applicable)
  • To identify configuration controls and metrics
  • To define metrics and status reporting
  • To identify responsibilities for the tasks included in the plan
  • To define the test tools and the environment needed to conduct the test
  • To identify test interactions with other organizations
  • To identify test customers and deliverables
  • To identify the major testing milestones
  • To define the sources of information used to prepare the plan

Define the Test Approach:

Give a high-level description of the approach and activities to be followed in testing the solution. If you are using Agile methods, this is where you will plan the release/test cycles.

Identify the Major Test Responsibilities:

Identify teams and individuals who will be managing and executing the tests. It should also specify their responsibilities.

The Features and Functionality to Test:

This is a high-level description (not the detailed test cases). You should consider the following:

  • Specific features to be tested
  • The types of error testing to be performed
  • The types of stress/load testing to be performed
  • The type of usability testing to be performed
  • The type of reliability testing to be performed
  • The type of recovery testing to be performed
  • The type of compatibility/migration testing to be performed
  • The type of security testing to be performed
  • The types of software and hardware to be employed if testing is to be performed over multiple software and hardware configurations (configuration testing)

Document your thoughts on the test process:

You should consider the following:

  • How you will define the acceptance criteria
  • Deliverables – materials that must be made available or created in order to conduct the tests and that will be developed from the tests to describe the test results.
  • Test Documentation – itemize the documentation you will require in regards to recording the test procedures and results.
  • Test Data – Where will it come from? How will it be created? Are regular refreshes needed?
  • Support Organizations – identify all interfacing organizations (Technology Services, Vendors, etc) that are needed to support the testing. Describe what will be needed.
  • Test Setup, Procedures and Walk-thru – general description of the steps the test will go thru to ensure quality tests.
  • Tracking and Reporting Status – Define the information test team members will communicate during the testing process. This should include the bug reporting tools and methods as well as a bug classification strategy