Testing software is an integral part of building a system. However, if the software is based on inaccurate requirements, then despite well written code, the software will be unsatisfactory. Most of the defects in a system can be traced back to wrong, missing, vague or incomplete requirements.
Requirements seem to be ephemeral. They flit in and out of projects, they are capricious, intractable, unpredictable and sometimes invisible. When gathering requirements we are searching for all of the criteria for a system's success. We throw out a net and try to capture all these criteria.
The Quality Gateway
As soon as we have a single requirement in our net we can start testing. The aim is to trap requirements-related defects as early as they can be identified. We prevent incorrect requirements from being incorporated in the design and implementation where they will be more difficult and expensive to find and correct.
To pass through the quality gateway and be included in the requirements specification, a requirement must pass a number of tests. These tests are concerned with ensuring that the requirements are accurate, and do not cause problems by being unsuitable for the design and implementation stages later in the project.
Make The Requirement Measurable
In his work on specifying the requirements for buildings, Christopher Alexander describes setting up a quality measure for each requirement.
"The idea is for each requirement to have a quality measure that makes it possible to divide all solutions to the requirement into two classes: those for which we agree that they fit the requirement and those for which we agree that they do not fit the requirement."
In other words, if we specify a quality measure for a requirement, we mean that any solution that meets this measure will be acceptable. Of course it is also true to say that any solution that does not meet the measure will not be acceptable.
The quality measures will be used to test the new system against the requirements. The remainder of this paper describes how to arrive at a quality measure that is acceptable to all the stakeholders.
Quantifiable Requirements
Consider a requirement that says "The system must respond quickly to customer enquiries". First we need to find a property of this requirement that provides us with a scale for measurement within the context. Let's say that we agree that we will measure the response using minutes. To find the quality measure we ask: "under what circumstances would the system fail to meet this requirement?" The stakeholders review the context of the system and decide that they would consider it a failure if a customer has to wait longer than three minutes for a response to his enquiry. Thus "three minutes" becomes the quality measure for this requirement.
Any solution to the requirement is tested against the quality measure. If the solution makes a customer wait for longer than three minutes then it does not fit the requirement. So far so good: we have defined a quantifiable quality measure. But specifying the quality measure is not always so straightforward. What about requirements that do not have an obvious scale?
Non-quantifiable Requirements
Suppose a requirement is "The automated interfaces of the system must be easy to learn". There is no obvious measurement scale for "easy to learn". However if we investigate the meaning of the requirement within the particular context, we can set communicable limits for measuring the requirement.
Again we can make use of the question: "What is considered a failure to meet this requirement?" Perhaps the stakeholders agree that there will often be novice users, and the stakeholders want novices to be productive within half an hour. We can define the quality measure to say "a novice user must be able to learn to successfully complete a customer order transaction within 30 minutes of first using the system". This becomes a quality measure provided a group of experts within this context is able to test whether the solution does or does not meet the requirement.
An attempt to define the quality measure for a requirement helps to rationalise fuzzy requirements. Something like "the system must provide good value" is an example of a requirement that everyone would agree with, but each person has his own meaning. By investigating the scale that must be used to measure "good value" we identify the diverse meanings.
Sometimes by causing the stakeholders to think about the requirement we can define an agreed quality measure. In other cases we discover that there is no agreement on a quality measure. Then we substitute this vague requirement with several requirements, each with its own quality measure.
Requirements Test 1
Does each requirement have a quality measure that can be used to test whether any solution meets the requirement?
By adding a quality measure to each requirement we have made the requirement visible. This is the first step to defining all the criteria for measuring the goodness of the solution. Now let's look at other aspects of the requirement that we can test before deciding to include it in the requirements specification.
Requirements Test 2
Does the specification contain a definition of the meaning of every essential subject matter term within the specification?
When the allowable values for each of the attributes are defined it provides data that can be used to test the implementation.
Requirements Test 3
Is every reference to a defined term consistent with its definition?
Requirements Test 4
Is the context of the requirements wide enough to cover everything we need to understand?
Requirements Test 5
Have we asked the stakeholders about conscious, unconscious and undreamed of requirements?
Requirements Test 5 (enlarged)
Have we asked the stakeholders about conscious, unconscious and undreamed of requirements? Can you show that a modelling effort has taken place to discover the unconscious requirements? Can you demonstrate that brainstorming or similar efforts taken place to find the undreamed of requirements?
Requirements Test 6
Is every requirement in the specification relevant to this system?
Requirements Test 7
Does the specification contain solutions posturing as requirements?
Requirements Test 8
Is the stakeholder value defined for each requirement?
Requirements Test 9
Is each requirement uniquely identifiable?
Requirements Test 10
Is each requirement tagged to all parts of the system where it is used? For any change to requirements, can you identify all parts of the system where this change has an effect?
Conclusions
The requirements specification must contain all the requirements that are to be solved by our system. The specification should objectively specify everything our system must do and the conditions under which it must perform. Management of the number and complexity of the requirements is one part of the task.
The most challenging aspect of requirements gathering is communicating with the people who are supplying the requirements. If we have a consistent way of recording requirements we make it possible for the stakeholders to participate in the requirements process. As soon as we make a requirement visible we can start testing it. and asking the stakeholders detailed questions. We can apply a variety of tests to ensure that each requirement is relevant, and that everyone has the same understanding of its meaning. We can ask the stakeholders to define the relative value of requirements. We can define a quality measure for each requirement, and we can use that quality measure to test the eventual solutions.
Testing starts at the beginning of the project, not at the end of the coding. We apply tests to assure the quality of the requirements. Then the later stages of the project can concentrate on testing for good design and good code. The advantages of this approach are that we minimise expensive rework by minimising requirements-related defects that could have been discovered, or prevented, early in the project's life.
Requirements Testing
ReplyDeleteLooks very interesting post for testers....
Well, we are here to share our Top 10 IOS App Development Companies in New York, USA | Hire IOS App Developers New York 2022
Waiting for your future posts....
https://bayanlarsitesi.com/
ReplyDeleteGöktürk
Yenidoğan
Şemsipaşa
Çağlayan
4XE1B
kars
ReplyDeletesinop
sakarya
ankara
çorum
QF6TQ0
amasya
ReplyDeletesinop
çorum
sakarya
van
L2N0S
Mersin Lojistik
ReplyDeleteAmasya Lojistik
Kayseri Lojistik
Kırklareli Lojistik
Erzurum Lojistik
63B
bartın evden eve nakliyat
ReplyDeleteedirne evden eve nakliyat
mersin evden eve nakliyat
sinop evden eve nakliyat
siirt evden eve nakliyat
JOİ
sivas evden eve nakliyat
ReplyDeleteerzurum evden eve nakliyat
bitlis evden eve nakliyat
mardin evden eve nakliyat
rize evden eve nakliyat
TRZ
sakarya evden eve nakliyat
ReplyDeleteosmaniye evden eve nakliyat
aksaray evden eve nakliyat
çanakkale evden eve nakliyat
zonguldak evden eve nakliyat
P8G
ığdır evden eve nakliyat
ReplyDeleteağrı evden eve nakliyat
maraş evden eve nakliyat
diyarbakır evden eve nakliyat
şırnak evden eve nakliyat
İMU
0BF3F
ReplyDeleteTekirdağ Şehirler Arası Nakliyat
Bitfinex Güvenilir mi
Kayseri Şehir İçi Nakliyat
Mersin Lojistik
Antep Lojistik
Siirt Lojistik
Aksaray Evden Eve Nakliyat
Edirne Şehirler Arası Nakliyat
Etlik Boya Ustası
EA9DD
ReplyDeleteTunceli Şehir İçi Nakliyat
Cate Coin Hangi Borsada
Malatya Evden Eve Nakliyat
Tekirdağ Cam Balkon
İzmir Parça Eşya Taşıma
Karapürçek Fayans Ustası
Konya Şehirler Arası Nakliyat
Antep Evden Eve Nakliyat
Maraş Parça Eşya Taşıma
1894D
ReplyDeleteAksaray Evden Eve Nakliyat
Burdur Şehir İçi Nakliyat
Etimesgut Fayans Ustası
Afyon Şehir İçi Nakliyat
Balıkesir Parça Eşya Taşıma
Erzincan Parça Eşya Taşıma
Yenimahalle Fayans Ustası
Çankırı Parça Eşya Taşıma
Manisa Şehirler Arası Nakliyat
001D3
ReplyDeletereferans kodu binance
18D45
ReplyDeletehttps://referanskodunedir.com.tr/
F1A46
ReplyDeleteYoutube Beğeni Hilesi
Binance Yaş Sınırı
Linkedin Takipçi Hilesi
Ergo Coin Hangi Borsada
Clubhouse Takipçi Satın Al
Görüntülü Sohbet
Lunc Coin Hangi Borsada
Kripto Para Madenciliği Nedir
Telegram Abone Hilesi
FDF3A
ReplyDeletePeriscope Takipçi Satın Al
Binance Referans Kodu
Twitter Trend Topic Satın Al
Ergo Coin Hangi Borsada
Görüntülü Sohbet
Gate io Borsası Güvenilir mi
Paribu Borsası Güvenilir mi
Mith Coin Hangi Borsada
Soundcloud Dinlenme Satın Al
2BCCCAA9BE
ReplyDeleteucuz takipçi
561D62D103
ReplyDeleteucuz takipçi satın al