Aspects of Standards Testing

advertisement
IEEE Software Engineering Standards Testing
Table of Contents
Introduction .....................................................................................................................................1
Testing Objectives .......................................................................................................................1
Aspects of Standards Testing ......................................................................................................1
Two Viewpoints on Standards Testing....................................................................................1
4-level Model for Standard Maturity .......................................................................................2
Standard Types ........................................................................................................................2
Characteristics of Standards Testing ...........................................................................................3
Static vs. Dynamic Evaluation ................................................................................................3
Objectivity of Testing ..............................................................................................................3
“Positiveness” of Testing ........................................................................................................3
Standards Maturity Levels ...............................................................................................................4
Level 1: Need Satisfaction...........................................................................................................4
Viewpoint: Contents ................................................................................................................4
Viewpoint: Presentation ..........................................................................................................4
Level 2: Correctness ....................................................................................................................4
Viewpoint: Contents ................................................................................................................4
Viewpoint: Presentation ..........................................................................................................5
Level 3: Effectiveness .................................................................................................................5
Viewpoint: Contents ................................................................................................................5
Viewpoint: Presentation ..........................................................................................................6
Level 4: Attractiveness ................................................................................................................7
Viewpoint: Contents ................................................................................................................7
Viewpoint: Presentation ..........................................................................................................7
Annex 1. Popularity of Standards ................................................................................................8
Introduction
Testing Objectives
The permission letter entrusting the standards testing to the student laboratory in the Ukrainian
Software Engineering Training Center states that “the goal of the workshop is to make software
engineering standards more efficient by testing them in a real production environment and
thereby getting recommendations and comments on using them.”
In our opinion the ultimate goal of the testing is to make the standards more useful and popular.
Aspects of Standards Testing
After some practical work on the standards testing we gained an understanding that the standards
should be considered in several aspects and several points of view, such as: presentation and
contents, standard “maturity”, standard type. Let’s consider them in more detail.
Two Viewpoints on Standards Testing
Below we will use the word “Viewpoint” having in mind standard Presentation and standard
Contents. Presentation includes document’s structure, design and appearance while contents is
the ideas behind the text.
Testing of the Contents is more important for us since IEEE Standards Board and members of
the balloting pool already paid much attention to the standards’ Presentation.
4-level Model for Standard Maturity
We found convenient to use a CMM-like model for testing (evaluating) the standards. We have
distinguished four levels of a standard maturity. The model can be applied in both staged and
continuous representation. The analogue for the CMMI “Process Area” is Viewpoint – contents
or presentation.
Level 1. Need Satisfaction
 Viewpoint: Contents
The standard satisfies actual need(s) of the industry; it addresses some real problems.
 Viewpoint: Presentation
The standard satisfies primary needs of its user (contains necessary sections etc.).
Level 2. Correctness
 Viewpoint: Contents
The standard does not contain false statements.
 Viewpoint: Presentation
The standard does not contain ambiguities, self-contradictions; it is in line with formal
requirements like IEEE Standards Style Manual or S2ESC Guide for Working Groups.
Level 3. Effectiveness
 Viewpoint: Contents
The standard makes positive effect while being applied in practice; the effect of using the
standard is more valuable as compare to alternative solutions.
 Viewpoint: Presentation
The standard is usable enough.
Level 4. Attractiveness
 Viewpoint: Contents
The standard is a unique source of specific information.
 Viewpoint: Presentation
The standard’s appearance and design appeal to particular qualities of human perception,
and do it successfully.
The maturity levels are cumulative just as CMMI ones, e.g. compliance with 2nd level means
satisfaction of both 1st and 2nd level requirements. And in the same way as in CMMI, assignment
of a particular requirement to a certain level is to a great extent subjective – e.g. some
requirements could be attributed to Level 1, but we included them into Level 3 set of
requirements etc.
Standard Types
Unlike traditional way of classifying IEEE standards (Standard, Recommended Practice, Guide)
we will consider a slightly different set of types that are more useful from the testing point of
view:
 Uniformity Statement (could be also “vocabulary”, “dictionary”)
 Concept Description
 Document Description (“template”)
 Practical Guide
On any given maturity level the requirements to different types of standards are slightly
different, and the methods of testing are also different.
Characteristics of Standards Testing
Static vs. Dynamic Evaluation
We found convenient to distinguish 2 kinds of standards testing – static evaluation and dynamic
one (similar to software verification techniques). By static evaluation we mean just reading and
inspection of the standard. Conversely, dynamic evaluation means application of the standard in
practice.
Dynamic evaluation is more important for us since IEEE Standards Board and members of the
balloting pool already inspected the standards’ text.
It is mandatory to perform dynamic evaluation wherever it is possible. In practice that means that
we should apply the standard in a production environment first, and only then analyze
satisfaction of the requirements of maturity levels.
Dynamic evaluation is difficult for Uniformity Statements and Concept Descriptions though.
Objectivity of Testing
In any case testing results should be objective. That means, in particular, measurability of testing
results and conformance of testing method to a preconcerted set of requirements wherever
possible.
“Positiveness” of Testing
The testing results should contain some useful suggestions rather than pure critique for the
defects found.
Standards Maturity Levels
Level 1: Need Satisfaction
Viewpoint: Contents
Requirement1. The standard addresses some real problems of the industry.
How to Test
1. Make the list of ALL the problems resolved by the standard (let’s call it List of
Addressed Problems).
2. For each problem estimate its urgency for the industry.
It’s advisable to get measurable evaluation, e.g. numeric results of expert poll.
3. For each problem estimate the degree of satisfaction of the corresponding need by the
standard.
It’s also advisable to get numeric results.
Requirement2. The standard addresses all the problems related to the concerned problem area.
How to Test
1. Make precise definition of the concerned area.
The Overview section of the standard can be used to get initial understanding of the
standard’s scope. Although we cannot fully trust the declared scope, and after the practical
use of the standard we should revise the definition of the concerned area.
2. Make the list of the problems related to the concerned area (let’s call it List of Related
Problems) for all categories of the standard’s users (target audiences).
3. Compare the List of Addressed Problems with the List of Related Problems.
“Positive” testing. It’s advisable to make some suggestions of how to address the items
from the List of Related Problems which are not present in the List of Addressed Problems.
Viewpoint: Presentation
Requirement1. The standard includes Index section if necessary.
IEEE Standards Style Manual says that “Indexes are discouraged unless the document is
very long or complicated”. However we experienced Index to be useful in most paper
documents (equivalent to”Find Text” feature in electronic documents).
How to Test
1. If the index is present ensure it contains all the helpful words and phrases (including
keywords declared on a Title page).
Level 2: Correctness
Viewpoint: Contents
Requirement1. The standard does not contain false statements which are illogical or not proved
to be true in practice.
How to Test
1. Apply each statement in practice if possible.
It’s advisable to make some numeric evaluations which prove the correctness of the
statement, e.g. some statistics.
Requirement2. For each problem addressed by the standard all the necessary aspects are
covered.
How to Test
1. The questions should be answered: which statements are not complete, what is not taken
into account.
Requirement3. The standard is approved by well-known industry experts.
How to Test
1. At least one prominent expert was invited to the Working Group or Balloting Pool.
It’s difficult to say whether the particular person is a world- known expert or not. One of
the possible methods is to search amazon.com for the books of this author; at least one of
them has to be so popular that the Spotlight Review section displayed instead of Customer
Review (that means that only part of reviews are displayed).
Requirement4. The standard is harmonized with other IEEE and ISO/IEC standards.
How to Test
1. Review all other software engineering standards concerning the same subject area.
At least the standard should be tightly adjusted to the clauses of IEEE/EIA 12207.0.
2. Suggest possible harmonization steps.
Requirement5. The standard is harmonized with other sources of information (literature, web
resources) concerning the same subject area.
How to Test
1. Review the most known books and web resources on the subject.
It’s important to take into account the sources of information from Agile and OpenSource
communities.
2. Suggest possible harmonization steps.
Viewpoint: Presentation
Requirement1. The title of the standard reflects its scope and purpose.
If the title is not adequate suggest more suitable one.
Requirement2. The standard doesn’t contain ambiguities and self-contradictions.
Suggest replacement for each ambiguity or self-contradiction found.
Level 3: Effectiveness
Viewpoint: Contents
Requirement1. The ideas expressed in the standard are easy to apply in practice.
Any suggestions on how to simplify the methods proposed in the standard should be stated.
Requirement2.Using the standard makes positive effect for all target audiences.
How to Test
1. Determine the target audience(s) of the standard.
2. For each audience make practical experiments on using the standards.
It’s advisable to get measurable results (some statistics).
Requirement3. The effect of using the standard is more valuable as compare to alternative
solutions.
How to Test
1. The questions should be answered: is it possible to behave slightly different from what is
suggested in the standard? is it possible to behave inversely? What would be the effect?
It’s advisable to make practical experiments and get some statistics.
Requirement4.The artifacts appeared as a result of using the standard are useful; they satisfy
corresponding needs.
It’s advisable to get measurable results (some statistics).
Viewpoint: Presentation
Requirement1. The structure and design of the standard takes into account needs of all
categories of the standard’s readers.
Don’t confuse “category of readers” with one of users (target audience). “Users” is a
more broad term embracing not only direct readers but also people who gain the knowledge
of standard from readers.
How to Test
1. List user categories and corresponding information needs.
2. Estimate the degree of satisfaction of each need by means of the proper structure and
design.
3. The following question should be answered: is it possible to present the same ideas in
more convenient form?
Requirement2. The standard contains necessary “how to use” hints.
How to Test
1. Ensure that the following questions are answered in the standard: who (target audience),
when, where, under what circumstances and how will use it.
2. Find out is it possible to use the standard more widely.
Requirement3. The relation of the standard to IEEE/EIA 12207.0 is indicated.
The best solution is mapping table containing references to the corresponding clauses of
12207.
Requirement4. The criteria of correspondence to the standard are explicitly stated.
Requirement5. The standard is detailed enough, easy to overview and easy to understand.
How to Test
1. The questions should be answered: is it possible to say the same more briefly? is it
possible to remove some text without negative impact on perception of the ideas?
Requirement6. Optionality of each clause of the standard is indicated.
It’s better to have some “optionality scale” rather than binary marks like
required/optional.
Requirement7. The standard contains feedback form within it.
Our suggestion is to provide readers with some incentives for doing comments, like “if
the feedback is valuable enough its author gets a permission to join the balloting pool even
if he/she is not a member of the IEEE-SA, and his/her name will appear in the list of
balloting pool members in the next version of the standard”.
Requirement8. The major statements (ideas) are marked out explicitly.
How to Test
1. Create a list of the major ideas.
Requirement9. The standard contains brief description of all clauses.
It’s also advisable to indicate which clauses are the most important.
Requirement10. Meaning of all keywords is clear.
How to Test
1. Ensure all necessary keywords are displayed at the Title page.
2. Ensure all of them are present in the Definitions section.
Level 4: Attractiveness
Viewpoint: Contents
Requirement1. The standard is a unique source of specific information.
2 different cases are possible: either the original ideas are expressed in the standard, or
it summarizes the ideas expressed in all the accessible sources of information on given
subject. In the latter case it’s advisable to reference all the sources of information on given
subject.
Viewpoint: Presentation
Requirement1. The standard contains the List of Addressed Problems.
Requirement2.The standard contains sufficient number of examples.
Requirement3.The form of presentation of information is convenient enough.
How to Test
1. Consider different forms of presentation for different audiences: brief description, table,
picture, diagram etc.
Requirement4.The standard contains information on where to get (buy) it.
Annex 1. Popularity of Standards
If we consider wide application and popularity of the standards to be the ultimate goal it would
be interesting to estimate the degree of popularity of the existing set of standards. We attempted
to do that using number of references on the standard’s name in Google as indicator.
Here are the raw data sorted by number of references in Google. In order to make some
conclusions as regards the key parameters for standard’s popularity the data needs to be further
analyzed taking into account standard types, subject areas, and number of years in use.
Standard
IEEE 1016
IEEE 830
IEEE 829
IEEE 1028
IEEE 1058
IEEE 1471
IEEE 1220
# of
references
10,900
10,700
8,190
7,130
5,800
5,300
5,220
IEEE 828
4,220
IEEE 1362
IEEE 1233
IEEE 1008
IEEE 1490
IEEE
610.12
IEEE 1465
IEEE 1219
IEEE 1062
IEEE 730
IEEE 1063
IEEE 1012
3,770
3,730
2,930
2,920
2,610
IEEE 1074
IEEE 1540
IEEE 1228
IEEE 1061
IEEE 1045
1,530
923
897
814
788
IEEE 1462
IEEE
12207.0
IEEE 1044
IEEE
12207.1
IEEE 1517
669
553
Software Quality requirements
Software Maintenance
Software Acquisition
Software Quality Assurance
Software User Documentation
Software Verification and
Validation
Software Life Cycle Processes
Software Risk Management
Software Safety
Software Quality Metrics
Software Development
Productivity
Selection of CASE tools
Software Life Cycle Processes
531
438
Software Anomalies
Software life cycle processes
409,000
1,300,000
11
7
389
Software Reuse Processes
472,000
5
2,610
2,500
2,280
2,220
2,060
1,940
Subject Area
Software Design
Software Requirements
Software Testing
Software Review
Software Project Management
Software Architecture
Software System Engineering
Process
Software Configuration
Management
Software System Definition
Software System Requirements
Software Unit Testing
Software Project Management
Software Engineering
# of Subject
Area references
18,700,000
13,400,000
10,600,000
16,800,000
10,700,000
9,190,000
4,570,000
# of years
in use
21
20
21
15
29
8
10
5,520,000
21
10,100,000
10,200,000
3,370,000
9,050,000
10,200,000
9
8
17
6
14
7,020,000
8,880,000
5,610,000
2,980,000
7,060,000
548,000
6
12
11
25
17
18
1,220,000
6,780,000
7,510,000
508,000
3,290,000
13
3
10
12
12
3,690,000
1,300,000
9
8
Standard
# of
references
IEEE 982.1 364
IEEE
356
1420.1
IEEE
355
12207.2
IEEE
257
1420.1b
IEEE 1012a 114
IEEE
1320.1
IEEE
1420.1a
IEEE
14143.1
IEEE
1320.2
IEEE
1175.1
IEEE 2001
# of Subject
Area references
6,750,000
52,600
# of years
in use
16
9
1,300,000
7
Reuse Software Library
Interoperability
Software Verification and
Validation
IDEF0
52,600
5
548,000
18
18,100
11
52,600
8
74
Reuse Software Library
Interoperability
Software Measurement
5,390,000
6
63
IDEF1X
6,900
10
46
CASE Tool Interconnections
55,300
12
?
Web Page Engineering
7,030,000
5
106
81
Subject Area
Reliable Software
Reuse Software Library
Interoperability
Software life cycle processes
Download