This example is for review for review at the meeting on 8th April, with comments required by 3rd April. All comments should be submitted using the feedback form.
Procedure testing shall model the procedural requirements of the software system as a complete and delivered unit. Procedure Requirements shall define what is expected of any procedural documentation and shall be written in the form of Procedural instructions. These procedural instructions will normally come in the form of one of the following documents:
· A user Guide
· An Instruction Manual
· A User Reference Manual
This information will normally define how the user is meant to:
· Set up the system for normal usage
· Operate the system in normal conditions
· Become a competent user of the system (tutorial files)
· Trouble-shoot the system when faults arise
· Re-configure the system
There shall be 2 types of testing carried-out when performing procedural testing: Static and Dynamic
Static testing of the procedural instructions themselves should firstly be carried out. This would include an assessment of the system, examining things such as, set-up, main areas of operation, complex areas of operation, tutorial file examples, trouble-shooting, etc. The result of the assessment would group together a series of procedural instructions thought to be a requirement of the end-user in order to use the system effectively. These would then go through a series of reviews that would include the end-user, or a representative of the end-user. This purpose of these reviews would be to: assess the importance of the procedural instruction to become part of the manual, it's usefulness to the end-user and the degree of its ability to be understood by the end-user.
Dynamic testing of the system shall be conducted using Test Cases. Primarily Test Cases shall be guided by the procedural instructions with the aim of ascertaining whether the procedural requirements have been met. Test Cases shall be designed to exercise the procedural instructions of the system under specified conditions.
For each test case the following shall be specified:
1. Set-up of the system
2. The specific procedural sequence to be exercised
3. The expected outcome of the system
4. The expected outcome of the User, i.e. what the user has achieved/understood.
Procedural testing shall be measured in the following ways:
Static testing – shall be measured as the percentage of the total specified procedural requirements, which have been covered by procedural instructions, reviewed.
Dynamic testing – as a percentage of the specified procedural requirements which have been executed.
Figure 1 - Procedure testing Flow diagram
|Comment from Margaret Edney||My
understanding of procedure testing is that it verifies the interactions
between the manual and automated processes within a system. This
definition looks at the system very much from a user's point of view. The
emphasis seems to be on reviewing the use of the system, rather than
verifying the interfaces between the user and system. Perhaps the
definition needs to cover both views.
I agree with Erik's suggestion on including Process cycle testing, certainly within the individual domain examples.
|Comment from Mark Robison||As we're
aware, there are a number of different definitions
of a procedure. One of the simplest seems to be that
of the isogroup.
"A description of tasks that realise a process."
Procedures in turn have a series of streamsoften known as workflows." Procedure testing is the discipline of targeting these various workflows in order to demonstrate they meet the defined requirements.
It is suggested that this testing has twokey elements, the functional aspect and the non-functional. The procedures functional aspects focus on the basic integrity of the procedure and confirm it meets the defined objective.
However, the non-functional aspects arelinked to the numerous other characteristics covered in other non-functional techniques.
Most would agree, the most challenging aspectsof procedure testing are the rather subjective characteristics such as useability. Often a procedure is given a clean bill of health only to prove utterly worthless when released to customers in the field.
This rather laboured background is givento make a point about the technique under review. It is suggested that it is incredibly important to mention the links to the other non-functional techniques in this description.
This section does not cover the analysis of theprocedures in question. It gives a good overview of types of document centric procedures but does not say how you would analyse such procedures for the static and dynamic test design.
How does an organisation decide what itstesting mission is when tackling procedures ?
How are processes selected for static or dynamictesting ? OR is the implication that both are required ? Some think the static test reviews with the end users are too late and that these sorts of reviews are better employed when defining/modelling requirements. To review procedures for larger systems in this way would also be costly and time consuming.
I wonder how we would use requirement coveragefor many of the non-functional procedure type requirements ? My experience with the definition of NF requirements is that they often lose their 'testability' characteristics and we are left trying to design tests but are actually establishing a more detailed requirement layer.
Again I think we need the link to othertechniques such as Usability and Maintainability.
We could possibly look beyond basic coveragemetrics, possibly to more refined statistical techniques.
Some possible non-functional relations (I haven't hadtime to read all techniques, so I apologise for the lose
Are the procedures understandable, learnable, convenient
- will the procedure operate in a number of differentenvironments or geographical locations.
-Can the procedure be refined or amended withoutwholesale changes to workflows
- Do procedures reflect product compatibilityrequirements
- has the procedure been prepared to facilitate futuredevelopment or possible adaptations.
-Do the procedures reflect a systematic approachto the tasks ....
|Comment from Isabel Evans||Procedure -
definition - agree with Erik's comment. Important also to add testing of
the manual business procedures around the software. This could be for
for a conversion/migration project - dress rehearsal of the manual check procedures and sign off around the s/w processes
for a business processes - dress rehearsal of the manual processes around the software system
These business / manual processes can be tested by e.g. using control flow diagrams, and by the test methods Erik mentions
|Comment from Marco Giromini||“Analysis”
1st line: Procedure testing shall “verify” the procedural requirements
“Analysis – 2nd list” I suggest to add the following items:
- recovery and restart the system (when failures arise)
- control systematic failures to achieve necessary risk reduction, e.g. Failure detection by on-line monitoring, Input acknowledgement (these techniques and measures are based on procedure instructions [IEC 61508]).
“Dynamic testing”: Shall be measured “as a percentage of the specified procedural requirements which have been executed” by any test case.
I suggest to add: Procedure testing shall be measured as the percentage exercised by static or dynamic testing, of the total specified procedural requirements.
I think that specific testing techniques, such as Use Case testing, should be referred in the Procedure Testing Definition; while general testing techniques, such as Conformance testing, Boundary testing, Random testing, should be referred in the Procedure Testing Guideline.
|Comment from Erik van Veenendaal||For the procedure testing standard at least a reference should be made to the Procescyclustest (as described in TMap) and to use case testing (as described in STQE). Both techniques are the ones that I teach and use very effectively within projects|