5 QUALITY

LEARNING OUTCOMES

When you have completed this chapter you should be able to demonstrate an understanding of the following:

  • definitions of ‘quality’;
  • quality control and quality assurance;
  • measurement of quality;
  • detection of defects during the project life cycle;
  • quality procedures: entry, process and exit requirements;
  • defect removal processes, including testing and reviews;
  • types of testing (including unit, integration, user acceptance and regression testing);
  • the inspection process and peer reviews;
  • the principles of ISO 9001:2008 quality management systems;
  • evaluation of suppliers.

5.1 INTRODUCTION

The key quality concern for IT projects is providing customers with the systems they need and which meet their requirements at a price they can afford. In order to achieve this, quality needs to be built into a product. It cannot be added to a product after it has been created – except with great difficulty and cost. It is like trying to alter the foundations of a building once it is complete. To build in quality requires a commitment from all parties to the project, from the project sponsor through all the levels of management to the technical staff, customers, users and the clerical support staff. In 1979, Philip Crosby wrote a book which opened:

Quality is free. It’s not a gift, but it is free. What costs money are the unquality things – all the actions that involve not doing the job right in the first place.

(Philip B. Crosby, Quality is Free, Mentor, 1980).

Crosby was not arguing that increasing the quality of a product did not cost money; rather, that the costs of remedying lapses in quality would be even greater. There is, as explained in Chapter 1, a relationship between quality, cost and time. The level of quality required will have an impact on both time and cost, but the more effort goes into quality at the beginning of a project, the less expenditure is needed on correcting faults at the end of the project.

5.2 DEFINITIONS OF QUALITY

A dictionary definition of quality is ‘a degree or level of excellence’, as in the phrase ‘high-quality goods’. We hope all the products of a project are of a high quality. But the definition is subjective: for example, when comparing cars, people do not agree on the quality of different makes. Another definition is ‘conformance to standard’. Within a project process there will be certain standards to which those developing the system ought to conform. However, the generally accepted definition which should apply to all projects is that the deliverables should be ‘fit for purpose’. Again referring to cars, a Rolls Royce may not be the best vehicle if you need to get to work through heavily congested traffic on time: a scooter might be more effective. The original international standard on quality, ISO 8402:1994, formally defined quality as ‘the totality of features and characteristics of a product or service which bear on its ability to satisfy stated or implied needs’.

One aspect of this ‘fit for purpose’ definition – reliability – shows how the concept applies. If the Canal Dreams ebooking enhancement fails after delivery it would be annoying but not life threatening. However, if the control systems in an aircraft in flight fail, that would be disastrous. The effort, and hence the cost, of making sure that the aircraft system does not fail would be considerably greater than that required for the Canal Dreams system. The costs of a failure in required quality would also be higher. Hence the required quality varies depending on the type of system under development and the money the customer is prepared to pay. Largely, it is the customer who decides the level of quality to be built into a system. Those responsible technically for a project must advise the customer on the benefits of a well-engineered system, but finally it is the person paying who should call the tune. However, suppliers have a professional and legal commitment to the general public to ensure that the systems they produce are safe.

As software systems become more complex, it is impossible to ensure that the software will never fail. Hardware and infrastructure might also be subject to failure. Thus it is important to examine the ways in which the systems under development will behave in the event of various types of failure. This will directly influence the development process and how quality is measured. For example, a control system for a nuclear power plant will be designed to ‘fail safe’ – that is, in the event of a systems failure it will revert to a safe state, for instance by closing down. Obviously such a requirement must be specified in the quality criteria for the system. Where something is inherently dangerous, as in this example of the nuclear power plant, the developers would have a duty of care, not just to the project sponsor, but to the world at large.

5.3 QUALITY CHARACTERISTICS

The definition of ‘fitness for purpose’ needs elaborating so that it can be applied practically. Another international standard, ISO 9126-1:2001, seeks to define a set of standard characteristics by which software quality can be measured. It specifies six high-level quality characteristics:

  • Functionality: does the system as delivered meet the functional requirements of the user? Meeting user expectations is more than just meeting a specification.
  • Reliability: how often does the system break down and how long does it take to put right? Are the results it produces consistent?
  • Usability: is it straightforward to use? How much training is required for someone to be able to use it?
  • Efficiency: what level of physical resources are required to operate the system?
  • Maintainability: all software is subject to change; can this software application be modified easily and without introducing unexpected errors?
  • Portability: how easy is it to take the software from the particular platform on which it was developed to another environment?

The standard itself goes into a lot more detail for each heading, but these top-level qualities are useful guides, particularly when trying to establish measurable quality criteria. The qualities can be subdivided into sub-qualities which are then measured. For example, in the Canal Dreams ebooking enhancement, response time in answering queries about the availability of boats is an important part of usability. For the application, engineering measurements have to be mapped to a value on a scale reflecting user satisfaction – for example, a response time under five seconds might correspond to ‘acceptable’.

5.4 QUALITY CRITERIA

To ensure that quality is built into a product the level of quality required has to be specified at the beginning, before the product is developed. In Chapter 2, the concept of a product definition was introduced. Each product definition includes a section headed quality criteria. The accurate completion of this section enables project team staff to check the product is fit for purpose later on in the development cycle, by seeing whether it meets the quality criteria specified.

In order to achieve this, the criteria themselves have to have three qualities:

  • They must be specific.
  • They must be measurable.
  • They must be achievable.

As an example, the aircraft control system could have a specific requirement that the product must never fail. That is quite clear. It is also measurable: by testing the product for an exhaustive amount of time until the product fails, it can be demonstrated that the requirement has not been met. In this case, we can prove when the quality criterion has not been met, but we cannot prove that it will not fail at some point in the future. Hence the ‘never’ requirement is not achievable. We can, however, provide an estimate of the probability of failure which will get smaller as testing continues. As noted with the nuclear power station, we can also plan for the possibility of failure, for example, by allowing a reversion to manual control.

An organisation should develop standards for product definitions or other documents which contain quality criteria as the basis for its quality procedures.

ACTIVITY 5.1

Refer back to the discussion about product definitions (Section 2.2.1). Draw up quality criteria that can be used to assess a product definition document (not the product it defines). Add any other headings that you consider should be standard for all product definitions. Specify how the criteria can be measured.

ACTIVITY 5.2

The following are examples of good and bad quality criteria:

All screen layouts should have similar layouts and use the same terminology.

Screens should be user friendly.

The system should be able to handle 50 transactions.

The system should allow for 20 users at any one time without degradation.

The response time should not be longer than three seconds.

Comment on the effectiveness of each of these quality criteria.

ACTIVITY 5.3

Maintainability is defined as a quality characteristic. How can it be measured?

ACTIVITY 5.4

How can the reliability of a system be measured?

5.5 QUALITY CONTROL VERSUS QUALITY ASSURANCE

Having introduced the concept of quality criteria and how they should be specified, we now discuss how the quality criteria of a product created by a project are checked. In an ideal environment the project will take place in an organisation committed to quality and with standards already in place for certain activities. If this is not so, part of project set-up will be the creation of the framework for managing the quality of the project.

The quality framework is called the quality management system (QMS). It may be based on the ISO 9001 series of standards (see Section 5.10). Within the QMS, there will be a quality strategy and quality assurance processes. They have to be reviewed and, if necessary, modified to meet the specific requirements of each new project.

A quality strategy defines the QMS and includes:

  • procedures and standards for creating a project quality plan;
  • a definition of quality criteria;
  • quality control procedures;
  • quality assurance procedures;
  • a statement of compliance with or allowed deviation from industry standards;
  • acceptance criteria;
  • an allocation of responsibilities for defining or undertaking quality-related activities.

The methods for exercising quality control are discussed in detail later, but generally these tend to take the form of a review. Quality assurance stands alongside reviews but is external to them. Quality assurance is like an audit. It is designed to confirm that proper procedures are in place and have been applied correctly. The difference between the two can be illustrated by the following example. A metal rod must be 15mm in diameter (± 0.1mm). Control is achieved by passing each rod through a measuring device which triggers rejection if the rod is out of tolerance. Assurance is exercised by checking that the measuring device is accurate and that all rods go through it.

For each component, quality criteria are specified. As we have seen above, this is in effect the first part of quality control, for without the criteria no control can take place. A control process is then undertaken to ensure that the criteria have been met. This is followed, at an appropriate time, by an assurance process which confirms that the agreed procedures have been followed and that all products have undergone the necessary checks.

You will recall from Chapter 1 that the systems development life cycle has a number of stages – for example, requirements analysis is followed by systems design, followed by construction and testing. Each stage contains several quality control processes, in the form of some sort of review, and a quality assurance process takes place at the end of each stage. If proper quality control is lacking, corrective action may be mandated. The quality control and, if necessary, the quality assurance processes are repeated until the quality criteria are met.

5.6 QUALITY PLAN

The production of a quality plan is vital to the success of a project. It specifies the particular standards that apply to the project. They could be existing standards – for example, laying down the content and layout of product definitions. Modifications to existing standards may be needed because of the special characteristics of a new project. In some cases they could be completely new, as a project goes into territory not previously explored. The standards may derive from industry standards or be developed internally. If there are any gaps, then the project manager must ensure that the appropriate standards are specified.

The plan also specifies how, when and by whom the quality control activities should be undertaken, the quality assurance processes to be followed and who will carry them out. It may also include configuration management and change control procedures (see Chapter 4).

The quality plan itself is subject to quality control and quality assurance processes. Quality control would normally be an integral part of the project team’s work. The quality assurance activities, on the other hand, are usually carried out by people outside the project team who report directly to the steering committee/project board. This separation of responsibilities helps to ensure that the process is transparent and reduces possible conflicts of interest.

5.7 DETECTING DEFECTS

5.7.1 The V Model

The V Model is a useful model of the systems development process (see Figure 5.1) in which the solid lines represent the forward progress of the project and the dotted lines represent the way in which quality control is exercised.

There are two quality control processes at work: one between stages and the other across the V. For example, the requirements specification describes all the functions and quality attributes that the customer requires in the system. This should include an acceptance test plan showing how the requirements are going to be assessed in the final system. Using the acceptance test plan, user acceptance testing can be undertaken to demonstrate that the final system to be delivered does indeed meet the requirements identified. This link between the requirements specification and user acceptance testing is shown by the dotted arrow between the two, identified as the ‘acceptance test plan’.

Systems design follows requirements specification and is joined to it by an arrow. As part of the quality control process for systems design it is necessary to check that everything specified in the requirements specification has been incorporated into the design. If not, then the design is incomplete. It is also important to ensure that no requirements have been introduced into the design that were not present in the original requirements. Systems design has two dotted arrows: one across to systems testing and the other back to requirements specification. The horizontal arrow shows the systems testing that needs to be carried out to validate the design after it has been implemented. The arrow to the requirements specification indicates that the design process may discover errors in the systems requirements. For example, gaps may be found in the definition of the requirements, or two requirements may be found to be inconsistent. The same processes are applied to each stage of development.

image

5.7.2 Process requirements

The importance of quality criteria for each product was stressed earlier. Within a project, as we saw in Chapter 2, a product is the output from a process or activity. The qualities that are required in a product are captured by following the correct processes that create the product. This makes it necessary to specify for each stage, and within each stage for each activity, the process requirements:

Entry requirements state what must exist before the stage or activity can begin. For example, before design can begin, the requirements documentation must be agreed and signed off and any design techniques to be used must be specified. If new techniques are being introduced, then the necessary training should have been given. If design begins before requirements are agreed, this will lead to problems if the requirements are changed while the design is underway. Either the design will have to be reworked, at additional cost, or the need to amend the design may be forgotten and only picked up much later, when making changes will be more expensive.

Implementation requirements define how the process should be done. For example, in design, implementation requirements may specify the use of techniques such as entity modelling or logical process modelling. Implementation requirements also specify the software tools that are to be used.

Exit requirements indicate what should be in place for a successful sign-off of the activity. The exit requirements for design documentation are that it:

  • is complete;
  • has been reviewed;
  • meets the standards agreed;
  • covers all the requirements for this component;
  • leaves no outstanding issues.

5.7.3 Defect removal process

Before a defect can be removed, it must be identified. This is relatively straightforward – though more costly – in the later stages of development, when test cases can be run though the system to see if they give the expected results (dynamic testing). In the earlier stages of a project, different techniques have to be applied, such as:

  • desk checking;
  • document review;
  • peer review;
  • inspection;
  • walkthrough;
  • pair programming;
  • static testing.

When specifying quality criteria that apply to, say, a software specification, the technique for testing if those criteria are met should be specified, along with the type of staff who will implement the technique and the tools they will need.

Desk checking

Desk checking is the most basic of the review activities. Authors, or creators, of products review what they have produced. This may mean reading it through and checking for errors in the case of a document, or working through the logic of a program to identify mistakes. It will, hopefully, remove many trivial errors before the product is subjected to more vigorous scrutiny.

ACTIVITY 5.5

Read through the following table and identify any errors:

image

Document review

In a document review, one or more people other than the author read a document to ensure that it meets the specified quality criteria. For example, is it complete, unambiguous, self-consistent and consistent with related documents? Is it clear? Are all technical terms properly used and understood? Does it conform to the agreed layout? If the document is a requirement, then such a review could well be carried out by the potential user of the system.

Peer review

A peer review is a particular type of document review that is often carried out on a design document or actual code. The author’s co-workers (or peers) examine copies of the document and make comments about it. The issues considered include:

  • Is the proposed design technically feasible?
  • Is there an easier or better way to achieve the same objectives?
  • Does the design conform to company standards for such processes?
  • Can the design communicate with other parts of the system?
  • Does the design cover all the requirements that should be included in this part?
  • Are there any ambiguities?

The peer reviewers of software often dry-run the code – that is, take some test input data and manipulate it on paper according to the instructions in the code.

Peer reviews can be done relatively informally within the project team. However, the time needed by the reviewers needs to be officially scheduled – after all, they have their own software on which to work as well.

Inspection

An inspection is a more formalised way of reviewing a product. Its purpose is to review the product in order to identify defects in a planned, independent, controlled and documented manner. It is a process with the following structure:

  • Preparation:
    • setting up the review meeting, including the time, place and who is to attend;
    • distributing documentation – for example, the product and its description;
    • reviewers annotating the product, if it is a document, and recording defects.
  • Meeting:
    • discussion of potential defects identified by reviewers which should confirm: whether they are defects or not, but not seek to produce a solution;
    • agreement of follow-up appropriate to each defect.
  • Recording:
    • follow-up actions and responsibilities;
    • agreement of outcome and sign-off if appropriate.
  • Follow-up:
    • advising the project manager of the outcome;
    • planning remedial work;
    • signing off when complete.

There are four roles within this process:

(1) The moderator sets the agenda and controls the review process, ensures actions and required results are agreed and, once the process is complete, signs off the review.

(2) The author provides the reviewers with relevant product documentation, answers questions about the product during the review and agrees actions to resolve defects.

(3) Reviewers undertake the review, assessing the product against the quality criteria, identifying potential defects and ensuring that the nature of any defect is clearly understood by the author.

(4) The scribe takes notes of the agreed actions, who is to carry them out and who is to check corrections. He or she confirms these details at the end of the meeting.

Walkthrough

A walkthrough is a particular technique which can be used during an inspection or on its own. The author takes the audience through the documents and they feed back their comments on it. The audience may be drawn from both technical and user groups, each of which would have a different view on the documents. For example, IT infrastructure management staff may be concerned about the proposed system’s impact on what they already manage. Again there would be a scribe to record any actions agreed.

With peer reviews, inspections and walkthroughs, no attempt should be made during the meeting to solve the problems identified. Problems should be recorded; the author will then go away and seek to come up with a solution. The review can then be repeated if it is felt that the changes required were of sufficient significance. An alternative is for one person to be instructed to ensure that the necessary alterations have been made.

Pair programming

The review techniques described above depend on copies of documents, including code, being printed and additional reviewing activities being scheduled. To avoid this, in agile development environments, code developers sometimes work in pairs. The pair take turns to type in code at the workstation while the other advises and checks on what is being entered. This is rather like a real-time version of a peer review.

Static testing

Some software tools (programs) carry out static testing by analysing the structure of the code. Such tools look at the branches and loops in a program and calculate a measure of complexity. The more complex a software component is, the more difficult it will be to maintain. In addition, dynamic analysis can identify code which is not executed by the test data used. This is useful as it may show up a shortcoming in the test data or unneeded code in the software.

All the above processes take place during the activities on the left-hand side of the V model. The quality control processes on the right-hand side are dominated by dynamic testing.

5.8 DYNAMIC TESTING

Dynamic testing is divided into various levels:

  • unit;
  • integration;
  • systems;
  • user acceptance;
  • regression.

For each type of testing, a set of test data and a set of expected results must be produced. Referring back to the V model, a test plan should have been produced at the appropriate stage in the development process on the left-hand side of the V. The plan should contain the necessary guidance for producing the test data, if not the test data itself.

Unit testing

Unit testing is the very basic testing to be carried out on a piece of software. Test data for unit testing should be designed to cover the usual range of input expected for the system. Each function that the software is expected to handle should be tested. The test should take place not just once but in various combinations and different sequences. Often problems lie in the combinations of data and transactions. Testing is then extended to cover, for example, numbers just inside and just outside any specified limits. Alphabetic fields are tested with entries longer than that which the system should permit. Mandatory fields are left blank. This is not an exhaustive list but is indicative of what is necessary. All tests are designed to ensure that this particular unit will not fail because of bad data or unusual combinations but will handle them in a predefined way.

ACTIVITY 5.6

Assume that the table of time/date checks drawn up (and corrected) in Activity 5.5 has now been implemented in an input screen in an IT system. Draw up a set of test data and expected results that could be used to test that the checks on data are being carried out correctly.

Each set of test results should be carefully checked against the expected results to ensure agreement. Any discrepancies should be noted and reported so that the software can be amended and retested. Sometimes, however, the expected results are wrong! It is important to keep records of all faults found and resulting changes made, so that if problems arise at a later stage there is a trail which can be followed to establish how they were introduced.

There are tools – commonly called test harnesses – which can simulate programs or subroutines that supply data to or use data from the module under test. The test harness can record data input and output and the routes through the program which have been exercised. Automated tools can also simulate keyboard input and capture and compare screen output with expected results.

Once unit testing has been successfully completed the unit can be signed off and registered as a configuration item (see Chapter 4).

Integration testing

Integration testing links a number of system components and runs them as a whole. This checks that the units communicate properly with each other. The sorts of things that come to light at this stage include:

  • data items which are treated as being in different formats in different units;
  • reference codes given different meanings by different authors;
  • conditions set by one component that another cannot cope with.

Some of these can be avoided by the use of shared databases and database management systems (DBMS), but transaction files which link different sub-systems can still be mistakenly defined to have different formats in different places.

As errors are found they will be recorded and corrected. The integration test will then need to be repeated.

Systems testing

Systems testing is the final stage in testing by the development professionals. It involves running the whole system on the infrastructure that will be used when the system is operational. It may sound just like a step up from integration testing but there are many additional issues which must be addressed, for example:

  • Does the system run on the infrastructure to be used for the final system?
  • Are the response times within the tolerances set in the requirements specification?
  • Can the system cope with the planned workloads?
  • What is the effect of high loading on the system?

Again, there are tools to help. They can be used to simulate large numbers of users and high volumes of data.

User acceptance testing

User acceptance testing is the crucial test. Can the users operate the system? Does it meet their expectations, not just their requirements? Users should be involved in the development process from the beginning of the project and should have had sight of how the system is working before this point is reached so it now contains few surprises. Expectations as well as requirements have to be managed. It may or may not be helpful to involve users in earlier testing activities: it is a matter of keeping a balance between helping them to understand the way the system works, and them seeing all the faults that arise during testing and becoming disillusioned.

Acceptance testing underlines the importance of having clear requirements from the start. Users should have a well-defined acceptance test to guide them as they test whether the system meets their expressed needs. Where discrepancies are found, the fault must be recorded, the source of the problem established and the system reworked and retested.

Regression testing

Regression testing is quite different from the earlier testing processes. Regression testing needs to take place at each stage of testing. Whenever a fault is found and the offending piece of software identified, it has to be corrected. Unfortunately this may well introduce further errors or uncover ones that were masked by the first error. Regression testing involves running an agreed set of test data through the system again to confirm that the original error has been corrected and no further errors have been introduced or uncovered. The later a fault is discovered in the testing hierarchy, the more regression testing has to take place.

Regression testing is also needed whenever the system is changed, whether during development or after implementation, as changes made to one part of a system can adversely affect another. Regression testing can largely be automated by using a standard set of test data and expected results.

5.9 EVALUATING SUPPLIERS

It is usual these days for systems to be developed by third parties. It is therefore important to establish whether those third party suppliers have the necessary quality procedures in place to ensure that the software to be supplied is to the standard expected.

To do this one has to investigate the supplier, ask some searching questions, examine documentation and perhaps undertake auditing of their processes. The types of questions to be asked include.

  • Do they operate to ISO 9001 (the international standard for quality management systems)?
  • How are their projects organised? (For example, do they follow PRINCE2, the standard for project management procedures sponsored by the UK government?)
  • Do they use a defined development methodology, such as the Dynamic System Development Method (DSDM Atern)?
  • How is quality control exercised?
  • At what points are quality reviews held?
  • Is there a quality assurance process?
  • Is there a configuration management system in place?
  • How are change requests handled?

This list is by no means exhaustive. The response to each question should be supported by evidence. For example, if it is claimed that software quality is assessed by reviews, then examples of the outputs from the reviews can be examined. Observing some of their reviews can increase confidence in their quality processes.

It must be recognised that the supplier and the customer have different business objectives. Making a project a success therefore needs both parties to see the project as a joint venture. The customer cannot simply hand it over to the supplier and wait for delivery, nor should the supplier hide the development process from the customer. Each side needs to be involved to an appropriate level for the type of project being undertaken.

5.10 ISO 9001:2008

ISO 9001:2008 is the international standard for quality management and is specifically aimed at producers and suppliers of any products and services, not necessarily software. Organisations are inspected and awarded ISO 9001 certification by accredited auditors. This means that as a potential client you can assume a particular standard of quality management without having to carry out detailed checks yourself.

However, while ISO 9001 states that a quality level should be specified, it does not say what that level should be. For example, when producing a ballpoint pen it could be stated that a quality requirement is for the ink in the pen to last three years, but equally it could state three days. If the requirement is met then the expected quality is achieved even if it is very low. Thus having a set of ISO 9001 procedures only guarantees that a level of quality has been specified, not that this level is accepted universally as being appropriate. This does allow the client of a ISO 9001:2008 supplier to negotiate the quality criteria they personally need.

ISO 9001:2008 is based on the following principles:

  • Customer focus: understanding and meeting or exceeding the customer requirements;
  • Leadership: providing this for the organisation to give it the purpose, unity and direction to achieve quality objectives;
  • People: involvement of staff at all levels of the organisations involved;
  • Process approach: attention to individual processes which produce intermediate or deliverable products;
  • Systems approach to management: focusing on inter-related processes producing deliverable products;
  • Continual improvement;
  • Factual approach to decision-making;
  • Mutually beneficial client-supplier relationships.

The TickIT Guide is designed to show the application of ISO 9001:2008 to software systems. In doing this, it also takes account of another ISO standard, ISO/IEC 90003:2004, which offers guidance on the application of ISO 9001:2008 to software engineering. The current (2012) version of the TickIT Guide, Issue 5.5, is in line with ISO 9001:2008. TickIT applies whenever software development is carried out, the software is incorporated in the delivered product or service and the organisation wishes to be ISO 9001 accredited. TickIT is managed and maintained by the British Standards Institution (BSI).

image

ADVANCED TOPIC

Capability maturity models

5.11 CAPABILITY MATURITY MODELS

In the discussion of ISO9001:2008, we assumed that the motivation was to allow customers to assess potential suppliers. Sometimes, however, the managers of a supplier organisation want to assess their own quality processes to find ways of improving them. They want to gauge their current level of effectiveness, but also identify what needs to be done to get it to a higher level. This brings in the concept of maturity modes, where the organisation is assessed as being at a particular level of process maturity.

On example of this is the capability maturity model (CMM) originally developed by the Software Engineering Institute at Carnegie Mellon University for the US Department of Defense. This comprises five levels.

(1) Initial. Any organisation would be at this level by default. Good quality work may be done, but customers cannot be sure that this is always the case.

(2) Managed. Some basic project management and other systems are in place.

(3) Defined. The way each task in software development is done is defined to enable consistent good practice.

(4) Quantifiably managed. Processes and their products are measured and controlled – for example, the number of errors created in each process.

(5) Optimising. The measurement data collected is analysed to find ways of improving processes.

The assessment of an organisation’s maturity level can be done internally, or external auditors could be employed so that the maturity level can be published externally, as in the case of ISO 9001.

SAMPLE QUESTIONS

1. ‘Fitness for purpose’ defines which of the following?

(a) The quality of the project deliverables

(b) The usability of the delivered IT application

(c) The capability of the staff who will implement the IT application

(d) The capability of the staff who will use the system when it is operational

2. User acceptance testing is an example of which of the following?

(a) Project control

(b) Project monitoring

(c) Quality control

(d) Quality assurance

3. Which of the following is NOT a defined role in inspections?

(a) The moderator

(b) The project manager

(c) The scribe

(d) The author

4. ISO 9001:2008 is a standard that defines which of the following?

(a) Project management standards

(b) IT project deliverables

(c) Quality management systems

(d) Software testing procedures

ANSWERS TO SAMPLE QUESTIONS

1. (a) 2. (c) 3. (b) 4. (c)

POINTERS FOR ACTIVITIES

ACTIVITY 5.1

Quality criteria could include:

(1) A product description must contain the following headings or sections (from Chapter 2):

  • identity;
  • description;
  • derived from;
  • components;
  • format;
  • quality criteria.

Additional headings could include the following:

  • author;
  • owner;
  • date first compiled;
  • date of last amendment;
  • version number.

(2) The ‘derived from’ section must refer to valid product types.

(3) The ‘format’ section must provide enough information to allow someone to create an instance of the product in the correct form.

One can easily identify other criteria.

These criteria meet the requirement of being specific (for example, a list of contents), measurable (the sections are either there or not) and achievable (it is possible, without difficulty, to ensure that each heading is present).

The quality of a product description will most likely be measured through a review process, such as inspection by a fellow developer. What this process does not do is to ensure fully that the correct information is entered for each heading. This may require a further set of quality criteria which again should be subject to review.

ACTIVITY 5.2

image

Ideally the last two criteria should be combined so that a baseline of three seconds is given with a loading of 20 simultaneous users. This can still be improved upon. For example, it could be stated that the response time should be less than four seconds for at least 95 per cent of the time with a loading of 20 simultaneous users and should never exceed 10 seconds. Such a statement does allow for the odd occasion when the three seconds might be exceeded. These examples show how difficult, yet important, it is to get the quality criteria correctly specified for each product in the development process.

ACTIVITY 5.3

As will be seen later in the main text of this chapter, there is a difference between measuring the quality of an existing software component – where actual performance can be measured – and assessing the likely quality of an application as it is being built. In an existing software component, we could collect statistics about the amount of effort that has been needed to implement actual changes.

If the software is being created, we could examine the code to see if it has characteristics that are likely to lead to maintainability. A system would be maintainable if it satisfied the following criteria (among others):

  • The structure of the software is clear.
  • The names used for items of data and procedures are indicative of what is being referred to.
  • Code is clear and unambiguous.
  • Documentation is present to support code.

There are other possible software engineering criteria that could be discussed, such as loose coupling of components (minimal cross-references) and cohesion (all code for a function being together).

The measurement for these criteria would probably be a peer review process.

ACTIVITY 5.4

Two ways in which reliability of a system has been traditionally measured:

(1) Meantime between failure (MTBF) specifies how long the system runs without failing. These days, this would be specified in weeks or even months. Something which fails every day would not be very popular with those operating the system.

(2) Meantime to repair (MTTR) specifies how long it takes to repair the system when it fails. It is no good if a system cannot be restored to a working situation in a reasonable length of time. That length of time needs to be specified as part of the acceptance criteria. Note that this measure is also related to the attribute of maintainability.

Other valid measurements could be considered, such as the percentage availability of the system.

ACTIVITY 5.5

The errors include:

Time: minutes should be in the range 059.

Time: seconds should be in the range 059.

Day: July (month 7) has 31 days, February never has more than 29 days and there is no leap year check. The cross-check should be ‘If month = 2 and year is leap, up to 29; if month = 2 and year is not leap, up to 28; if month = 4, 6, 9 or 11, up to 30’.

ACTIVITY 5.6

image

You may find some ‘holes’ in the above test data. It should illustrate that although devising test data is not the most glamorous job, creating effective test cases does require the kind of attention to detail that we normally expect of software developers. Devising test data will also trigger questions about the precise nature of the requirements – for example, is there really no upper limit on year?

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

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