29
Fundamentals of Software Testing

Fundamentals of Software Testing (Homès/Fundamentals of Software Testing) || Front Matter

  • Upload
    bernard

  • View
    230

  • Download
    5

Embed Size (px)

Citation preview

Fundamentals of Software Testing

I would like to dedicate this book to a number of persons:

– to those who came before me and opened the way in the field of testing, many of themare listed in the bibliography;

– to those who will follow me, hoping that this book will provide you with a good start inthis wonderful career;

– to my colleagues and dear friends who read the draft and proposed suggestions;

– to my spouse and children who have to suffer a husband and father who is toofrequently away and quite demanding.

Fundamentalsof

Software Testing

Bernard Homès

First published 2012 in Great Britain and the United States by ISTE Ltd and John Wiley & Sons, Inc.

Apart from any fair dealing for the purposes of research or private study, or criticism or review, aspermitted under the Copyright, Designs and Patents Act 1988, this publication may only be reproduced,stored or transmitted, in any form or by any means, with the prior permission in writing of the publishers,or in the case of reprographic reproduction in accordance with the terms and licenses issued by theCLA. Enquiries concerning reproduction outside these terms should be sent to the publishers at theundermentioned address:

ISTE Ltd John Wiley & Sons, Inc.27-37 St George’s Road 111 River StreetLondon SW19 4EU Hoboken, NJ 07030UK USA

www.iste.co.uk www.wiley.com

© ISTE Ltd 2012

The rights of Bernard Homès to be identified as the author of this work have been asserted by him inaccordance with the Copyright, Designs and Patents Act 1988.____________________________________________________________________________________

Library of Congress Cataloging-in-Publication Data

Homès, Bernard.Fundamentals of software testing / Bernard Homès.p. cm.Includes bibliographical references and index.ISBN 978-1-84821-324-11. Computer software--Testing. I. Title.QA76.76.T48H674 2012005.1--dc23

2011040335

British Library Cataloguing-in-Publication DataA CIP record for this book is available from the British LibraryISBN: 978-1-84821-324-1

Printed and bound in Great Britain by CPI Group (UK) Ltd., Croydon, Surrey CR0 4YY

Table of Contents

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv

Chapter 1. Fundamentals of Testing . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1. Why is testing necessary? (FL 1.1) . . . . . . . . . . . . . . . . . . . . . . 11.1.1. Software systems context . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.2. Causes of software defects . . . . . . . . . . . . . . . . . . . . . . . . 31.1.3. Role of testing in software development,maintenance and operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.4. Test and quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.5. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2. What is testing? (FL 1.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2.1. Origin of defects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.2.2. Common goals of testing . . . . . . . . . . . . . . . . . . . . . . . . . 91.2.3. Examples of objectives for testing . . . . . . . . . . . . . . . . . . . . 91.2.4. Test and debugging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.3. Paradoxes and main principles (FL 1.3) . . . . . . . . . . . . . . . . . . . 111.3.1. Testing identifies the presence of defects . . . . . . . . . . . . . . . . 111.3.2. Exhaustive testing is impossible . . . . . . . . . . . . . . . . . . . . . 111.3.3. Early testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.4. Defect clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.5. Pesticide paradox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.3.6. Testing is context dependent . . . . . . . . . . . . . . . . . . . . . . . 131.3.7. Absence of errors fallacy . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4. Fundamental test process (FL 1.4) . . . . . . . . . . . . . . . . . . . . . . 141.4.1. Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.4.2. Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

vi Fundamentals of Software Testing

1.4.3. Test analysis and design . . . . . . . . . . . . . . . . . . . . . . . . . . 161.4.4. Test implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.4.5. Test execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.4.6. Analysis of exit criteria . . . . . . . . . . . . . . . . . . . . . . . . . . 201.4.7. Reporting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.4.8. Test closure activities . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

1.5. Psychology of testing (FL 1.5) . . . . . . . . . . . . . . . . . . . . . . . . 221.5.1. Levels of independence . . . . . . . . . . . . . . . . . . . . . . . . . . 231.5.2. Adaptation to goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.5.3. Destructive or constructive? . . . . . . . . . . . . . . . . . . . . . . . 251.5.4. Relational skills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251.5.5. Change of perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

1.6. Testers and code of ethics (FL 1.6) . . . . . . . . . . . . . . . . . . . . . . 271.6.1. Public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.6.2. Customer and employer . . . . . . . . . . . . . . . . . . . . . . . . . . 281.6.3. Product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.6.4. Judgment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.6.5. Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.6.6. Profession . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321.6.7. Colleagues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.6.8. Self . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

1.7. Synopsis of this chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341.8. Sample exam questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Chapter 2. Testing Throughout the Software Life Cycle . . . . . . . . . . . . 43

2.1. Software development models (FL 2.1) . . . . . . . . . . . . . . . . . . . 432.1.1. Sequential models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442.1.2. Iterative models (FL 2.1.2) . . . . . . . . . . . . . . . . . . . . . . . . 472.1.3. Incremental model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.1.4. RAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502.1.5. Agile models. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522.1.6. Selection of a development model . . . . . . . . . . . . . . . . . . . . 562.1.7. Positioning tests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

2.2. Test levels (FL 2.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582.2.1. Component level testing or component tests . . . . . . . . . . . . . . 592.2.2. Integration level testing or Integration tests . . . . . . . . . . . . . . 602.2.3. System tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622.2.4. Acceptance tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642.2.5. Other levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

2.3. Types of tests (FL 2.3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662.3.1. Functional tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672.3.2. Non-functional tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Table of Contents vii

2.3.3. Tests based on the structure or architecture of the software . . . . . 712.3.4. Tests associated with changes . . . . . . . . . . . . . . . . . . . . . . 722.3.5. Comparisons and examples . . . . . . . . . . . . . . . . . . . . . . . . 73

2.4. Test and maintenance (FL 2.4) . . . . . . . . . . . . . . . . . . . . . . . . 742.4.1. Maintenance context . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752.4.2. Evolutive maintenance. . . . . . . . . . . . . . . . . . . . . . . . . . . 762.4.3. Corrective maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . 762.4.4. Retirement and replacement . . . . . . . . . . . . . . . . . . . . . . . 772.4.5. Regression test policies . . . . . . . . . . . . . . . . . . . . . . . . . . 782.4.6. SLA validation and acceptance. . . . . . . . . . . . . . . . . . . . . . 81

2.5. Oracles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812.5.1. Problems with oracles . . . . . . . . . . . . . . . . . . . . . . . . . . . 812.5.2. Sources of oracles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822.5.3. Oracle usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

2.6. Specific cases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832.6.1. Performance tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832.6.2. Maintainability tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

2.7. Synopsis of this chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842.8. Sample exam questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Chapter 3. Static Techniques (FL 3.0) . . . . . . . . . . . . . . . . . . . . . . . 91

3.1. Static techniques and the test process (FL 3.1) . . . . . . . . . . . . . . . 913.2. Review process (FL 3.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943.2.1. Types of reviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953.2.2. Roles and responsibilities during reviews . . . . . . . . . . . . . . . 1003.2.3. Phases of reviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033.2.4. Success factors for reviews . . . . . . . . . . . . . . . . . . . . . . . . 1163.2.5. Comparison of the types of reviews . . . . . . . . . . . . . . . . . . . 117

3.3. Static analysis by tools (FL 3.3). . . . . . . . . . . . . . . . . . . . . . . . 1193.3.1. Types of static analysis . . . . . . . . . . . . . . . . . . . . . . . . . . 1203.3.2. Types of defects that can be identified . . . . . . . . . . . . . . . . . 1253.3.3. Data flow analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

3.4. Added value of static activities . . . . . . . . . . . . . . . . . . . . . . . . 1303.5. Synopsis of this chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1313.6. Sample exam questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

Chapter 4. Test Design Techniques (FL 4.0). . . . . . . . . . . . . . . . . . . . 137

4.1. The test development process (FL 4.1). . . . . . . . . . . . . . . . . . . . 1394.1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1394.1.2. Traceability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

4.2. Categories of test design techniques (FL 4.2) . . . . . . . . . . . . . . . . 1434.2.1. Black box, white box, or gray box . . . . . . . . . . . . . . . . . . . . 143

viii Fundamentals of Software Testing

4.2.2. Experience-based techniques . . . . . . . . . . . . . . . . . . . . . . . 1454.2.3. Test characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1454.2.4. Limitations and assumptions . . . . . . . . . . . . . . . . . . . . . . . 146

4.3. Black-box techniques (FL 4.3) . . . . . . . . . . . . . . . . . . . . . . . . 1474.3.1. Equivalence partitioning (FL 4.3.1) . . . . . . . . . . . . . . . . . . . 1484.3.2. Boundary value analysis (FL 4.3.2) . . . . . . . . . . . . . . . . . . . 1554.3.3. Decision tables (FL 4.3.3) . . . . . . . . . . . . . . . . . . . . . . . . . 1584.3.4. Other combinational techniques . . . . . . . . . . . . . . . . . . . . . 1624.3.5. State transition testing (FL 4.3.4) . . . . . . . . . . . . . . . . . . . . 1634.3.6. Use case testing (FL 4.3.5) . . . . . . . . . . . . . . . . . . . . . . . . 1704.3.7. Limitations and assumptions . . . . . . . . . . . . . . . . . . . . . . . 172

4.4. Structure-based techniques (FL 4.4) . . . . . . . . . . . . . . . . . . . . . 1724.4.1. Statement testing and coverage (FL 4.4.1) . . . . . . . . . . . . . . . 1744.4.2. Decision testing and coverage (FL 4.4.2) . . . . . . . . . . . . . . . . 1804.4.3. Other structure-based techniques (FL 4.4.3) . . . . . . . . . . . . . . 1834.4.4. MC/DC coverage (FL 4.4.3) . . . . . . . . . . . . . . . . . . . . . . . 1854.4.5. Limitations and assumptions of structure-based testing . . . . . . . 1864.4.6. Coverage level and exit criteria. . . . . . . . . . . . . . . . . . . . . . 187

4.5. Experience-based techniques (FL 4.5) . . . . . . . . . . . . . . . . . . . . 1874.5.1. Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1884.5.2. Defect taxonomies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1894.5.3. Error guessing and ad hoc testing . . . . . . . . . . . . . . . . . . . . 1904.5.4. Exploratory testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1904.5.5. Limitations and assumptions . . . . . . . . . . . . . . . . . . . . . . . 192

4.6. Choosing test techniques (FL 4.6) . . . . . . . . . . . . . . . . . . . . . . 1934.7. Synopsis of this chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1944.8. Sample exam questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

Chapter 5. Test Management (FL 5.0) . . . . . . . . . . . . . . . . . . . . . . . 209

5.1. Test organization (FL 5.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 2095.1.1. Independence levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2095.1.2. Roles and responsibilities . . . . . . . . . . . . . . . . . . . . . . . . . 2125.1.3. Human and contract aspects . . . . . . . . . . . . . . . . . . . . . . . 214

5.2. Test planning and estimation (FL 5.2) . . . . . . . . . . . . . . . . . . . . 2155.2.1. Planning and evaluation activities . . . . . . . . . . . . . . . . . . . . 2185.2.2. Test planning activities . . . . . . . . . . . . . . . . . . . . . . . . . . 2285.2.3. Test documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295.2.4. Entry and exit criteria for test activities . . . . . . . . . . . . . . . . . 235

5.3. Test progress monitoring and control (FL 5.3) . . . . . . . . . . . . . . . 2395.4. Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2425.4.1. What to report, to whom, and how? . . . . . . . . . . . . . . . . . . . 2425.4.2. Statistics and graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

Table of Contents ix

5.5. Transverse processes and activities . . . . . . . . . . . . . . . . . . . . . . 2465.5.1. Test data definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2475.5.2. Configuration management (FL 5.4) . . . . . . . . . . . . . . . . . . 2475.5.3. Change management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

5.6. Risks management (FL 5.5) . . . . . . . . . . . . . . . . . . . . . . . . . . 2485.6.1. Principles of risk management . . . . . . . . . . . . . . . . . . . . . . 2495.6.2. Project risks and product risks . . . . . . . . . . . . . . . . . . . . . . 2535.6.3. Introduction to risk management . . . . . . . . . . . . . . . . . . . . . 254

5.7. Defect management (FL 5.6) . . . . . . . . . . . . . . . . . . . . . . . . . 2575.7.1. Introduction to defect management . . . . . . . . . . . . . . . . . . . 2575.7.2. Defect identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2585.7.3. Actions applied to defects . . . . . . . . . . . . . . . . . . . . . . . . . 2635.7.4. Defect disposition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

5.8. Synopsis of this chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645.9. Sample exam questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

Chapter 6. Tools support for Testing (FL 6.0) . . . . . . . . . . . . . . . . . . 277

6.1. Types of test tools (FL 6.1) . . . . . . . . . . . . . . . . . . . . . . . . . . 2786.1.1. Test tool classification . . . . . . . . . . . . . . . . . . . . . . . . . . . 2786.1.2. Tools supporting test management. . . . . . . . . . . . . . . . . . . . 2786.1.3. Tools supporting requirement management . . . . . . . . . . . . . . 2796.1.4. Tools supporting static tests. . . . . . . . . . . . . . . . . . . . . . . . 2796.1.5. Modeling tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2806.1.6. Tools supporting test design and test data creation . . . . . . . . . . 2806.1.7. Tools supporting test execution . . . . . . . . . . . . . . . . . . . . . 2816.1.8. Tools supporting test environment management . . . . . . . . . . . 2816.1.9. Tools supporting test data comparison . . . . . . . . . . . . . . . . . 2826.1.10. Tools supporting test coverage measurement. . . . . . . . . . . . . 2826.1.11. Other test supporting tools . . . . . . . . . . . . . . . . . . . . . . . . 283

6.2. Assumptions and limitations of test tools (FL 6.2). . . . . . . . . . . . . 2836.2.1. Advantages and risks of the tools . . . . . . . . . . . . . . . . . . . . 2846.2.2. Specific considerations for some tools . . . . . . . . . . . . . . . . . 285

6.3. Selecting and introducing tools in an organization (FL 6.3) . . . . . . . 2896.3.1. Main principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2906.3.2. Tools selection process . . . . . . . . . . . . . . . . . . . . . . . . . . 2906.3.3. Test tool implementation . . . . . . . . . . . . . . . . . . . . . . . . . 2936.3.4. To build or to buy test tools? . . . . . . . . . . . . . . . . . . . . . . . 295

6.4. Synopsis of this chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2956.5. Sample exam questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296

x Fundamentals of Software Testing

Chapter 7. Mock Exam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

Chapter 8. Templates and Models . . . . . . . . . . . . . . . . . . . . . . . . . . 315

8.1. Master test plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3158.2. Test plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3178.2.1. Test plan as per IEEE 829-1998 . . . . . . . . . . . . . . . . . . . . . 3178.2.2. Test plan as per IEEE 829-2008 . . . . . . . . . . . . . . . . . . . . . 317

8.3. Test design document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3198.3.1. Test design specifications as per IEEE 829-1998 . . . . . . . . . . . 3198.3.2. Test design document as per IEEE 829-2008 . . . . . . . . . . . . . 319

8.4. Test case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3208.4.1. Test case document as per IEEE 829-1998 . . . . . . . . . . . . . . . 3208.4.2. Test case document as per IEEE 829-2008 . . . . . . . . . . . . . . . 320

8.5. Test procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3218.5.1. Test procedure document as per IEEE 829-1998 . . . . . . . . . . . 3218.5.2. Test procedure document as per IEEE 829-2008 . . . . . . . . . . . 321

8.6. Test log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3228.6.1. Test log as per IEEE 829-1998 . . . . . . . . . . . . . . . . . . . . . . 3228.6.2. Test log as per IEEE 829-2008 . . . . . . . . . . . . . . . . . . . . . . 322

8.7. Defect report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3228.7.1. Defect report as per IEEE 829-1998. . . . . . . . . . . . . . . . . . . 3228.7.2. Defect report as per IEEE 829-2008. . . . . . . . . . . . . . . . . . . 323

8.8. Test report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3248.8.1. Test report as per IEEE 829-1998 . . . . . . . . . . . . . . . . . . . . 3248.8.2. Interim test report as per IEEE 829-2008 . . . . . . . . . . . . . . . . 3248.8.3. Level test report as per IEEE 829-2008 . . . . . . . . . . . . . . . . . 3258.8.4. Master test report as per IEEE 829-2008 . . . . . . . . . . . . . . . . 325

Chapter 9. Answers to the Questions . . . . . . . . . . . . . . . . . . . . . . . . 327

9.1. Answers to the end of chapter questions . . . . . . . . . . . . . . . . . . . 3279.2. Correct answers to the sample paper questions . . . . . . . . . . . . . . . 329

Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

Preface

Why this book

Software testing is becoming more and more important in the industry, reflectingthe increasing importance of software quality in today’s world.

Due to the lack of formal and recognized training in software testing, a group ofspecialist consultants gathered together in 2002 and founded the InternationalSoftware Testing Qualifications Board (ISTQB). They defined the minimal set ofmethodological and technical knowledge that testers should know depending ontheir experience. This was gathered into what is called a syllabus. The foundationlevel syllabus was reviewed in 2011 and is the basis of an international certificationscheme, already obtained by more than 200,000 testers worldwide. For testers whowish to prepare for the ISTQB foundation level exam, this book can serve asreference material and a study guide. It references the 2011 version of the ISTQBCertified Tester Foundation Level syllabus.

This book follows the order and chapters of the syllabus, helping you tosuccessfully complete the certification exam. It is a one-stop reference book offeringyou:

– more detailed explanations than those found in the ISTQB syllabus;

– definitions of the terms (i.e. the Glossary) used in the certification exams;

– practice questions similar to those encountered during the certification exam;

– a sample exam.

For testers who want to acquire a good understanding of software and systemtests, this book provides the fundamental principles as described by the ISTQB andrecognized experts.

xii Fundamentals of Software Testing

This book provides answers and areas of discussion allowing test leaders andmanagers to:

– improve their understanding of testing;

– have an overview of process improvement linked to software testing;

– increase the efficiency of their software development and tests.

Throughout this book, you will find learning objectives (noted FLO-…) thatrepresent the ISTQB foundation level syllabus learning objectives. These are thetopics that certification candidates should know and that are examined in the ISTQBcertification exams.

Prerequisite

Software testing does not require specific prerequisites. Although it is notmandatory, a common understanding of data processing and software allows you tohave a better understanding of software testing.

The reader with software development knowledge, whatever the programminglanguage, will understand certain aspects faster, but a simple practice as a usershould be enough to understand this book.

ISTQB, CFTL (Comité Français des Tests Logiciels) and national boards

The ISTQB is a not-for-profit international association grouping nationalsoftware testing boards covering approximately 50 countries. These national boardsare made up of software testing specialists, consultants, and experts, and togetherthey define the syllabi and examination directives for system and software testers.The CFTL represents France on the ISTQB and offers the ISTQB certification inFrance.

To define the syllabus content for all three software tester certification levels (i.e.foundation, advanced, expert), and the applicable exam directives, the ISTQB hascreated a number of working groups, each in charge of a specific subject (i.e.foundation level syllabus, advanced level syllabus, expert level syllabi, trainingprovider accreditation, examination specification, etc.). These work groups are, asthe national boards, made up of software testing experts and specialists, consultants,presenters at conferences, professors and national or international specialists insoftware testing and systems quality. Their combined expertise enables them tosynthesize knowledge from numerous fields (aeronautics, space, medical,

Preface xiii

commercial, rail, telecoms, etc.) and various levels (technicians, analysts, projectleaders, specialists, experts, researcher, managers, etc.).

A number of prominent authors of software testing books participate in thecreation of the syllabi, ensuring that these reflect what a tester should knowdepending on his/her level of experience (foundation, advanced, expert) and onhis/her objectives (test management, functional testing, and test techniques,specialization in software security or performance testing, etc.).

Glossary and syllabus

The ISTQB is aware of the broad diversity of terms used and the associateddiversity of interpretation of these terms depending upon the customers, countries,and organizations. A common glossary of software testing terms has been set up andnational boards provide translation of these terms in national languages to promotebetter understanding of the terms and the associated concepts. This becomes moreand more important in a context of international cooperation and offshore sub-contracting.

The syllabi define the basis of the certification exams; they also help to definethe scope of training and are applicable at three levels of experience: foundationlevel, advanced level and expert level. This book focuses on the foundation level.

The foundation level, made up of a single module, is detailed in the followingchapters.

The advanced level is made up of three modules:

– test manager, which focuses on the test management and test processimprovements aspects;

– test analyst, which focuses on the testing of characteristics of the software andsystems, mostly without the use of tools; and

– technical test analyst, which focuses on the testing of non-functionalcharacteristics of software and systems, mostly with the use of tools.

The expert level focuses on specific aspects, such as test management, testprocess improvement, or performances.

xiv Fundamentals of Software Testing

ISTQB certification

The ISTQB proposes software tester certifications, which are recognized asequivalent by all ISTQB member boards throughout the world. The level ofdifficulty of the questions and the exams are based on the same criteria (defined inthe syllabi) and the same terms (defined in the Glossary).

The certification exams proposed by the CFTL and the national boards of theISTQB enable the candidates to validate their knowledge, and assure employers orpotential customers of a minimum level of knowledge from their testers, whatevertheir origin.

These certifications are recognized as equivalent throughout the whole world,enabling international cross-recognition. In France, more than 1,500 people havesuccessfully passed the certification, and more than 200,000 have acquired such acertification worldwide. This shows the need from the industry to have anindependent certification of the software testing activities.

Key for understanding the content

To be used efficiently, this book has the following characteristics:

FLO-xxx: text that starts with FLO-xxx is a reminder of the learning objectivespresent in the ISTQB foundation level syllabus for certified testers. Those objectivesare expanded in the paragraphs following this tag.

The titles of the chapters correspond to those of the ISTQB foundation levelsyllabus, version 2011. This is often the case too for the section heads; the syllabusreference is provided in the form (FLx.y) where x.y stands for the chapter andsection head of the ISTQB foundation level syllabus. The example below shows thatthe section of the book refers to the 2.4 section of the foundation syllabus:

2.4. Tests and maintenance (FL2.4)

A synopsis closes each of the chapters, summarizing the aspects covered andidentifying the terms of the glossary to know for the certification exam. Sampleexam questions are also provided at the end of each chapter. These questions weredeveloped by applying the same criteria as for the creation of real exam questions.

The sample questions provided in Chapters 1, 2, 3, 4, 5 and 6 are reproducedwith kind permission of © Bernard Homès 2011.

Glossary

The definitions hereafter are extracted from the International Software TestingQualifications Board (ISTQB) Standard Glossary of Terms used in SoftwareTesting. Only the terms used for the Foundation Level certification exams arementioned, so as not to drown the reader in terms that are used at other levels or inother syllabi.

ACM: (Association for Computer Machinery) professional and scientificassociation for the development of information technology as science andprofession.

Acceptance testing: Formal testing with respect to user needs, requirements, andbusiness processes conducted to determine whether or not a system satisfies theacceptance criteria and to enable the user, customers, or other authorized entity todetermine whether or not to accept the system.

Alpha testing: Simulated or actual operational testing by potentialusers/customers or an independent test team at the developers’ site, but outside thedevelopment organization. Alpha testing is often employed as a form of internalacceptance testing.

Attack: Directed and focused attempt to evaluate the quality, especiallyreliability, of a test object by attempting to force specific failures to occur.

Beta testing: Operational testing by potential and/or existing users/customers atan external site not otherwise involved with the developers, to determine whether ornot a component or system satisfies the user/customer needs and fits within thebusiness processes. Beta testing is often employed as a form of external acceptancetesting in order to acquire feedback from the market.

Black-box technique: See black-box testing.

xvi Fundamentals of Software Testing

Black-box testing: Testing, either functional or non-functional, withoutreference to the internal structure of the component or system.

Boundary value analysis: A black-box test design technique in which test casesare designed based on boundary values.

Branch coverage: The percentage of branches that have been exercised by a testsuite. One hundred percent branch coverage implies both 100% decision coverageand 100% statement coverage

Bug: see defect.

CFTL: Comité Français des Tests Logiciels, French association [LOI 01] for thedevelopment of testing in France and French-speaking countries.

Code coverage: An analysis method that determines which parts of the softwarehave been executed (covered) by the test suite and which parts have not beenexecuted, e.g. statement coverage, decision coverage, or condition coverage.

Commercial off-the-shelf software (COTS): See off-the-shelf software.

Compiler: A software tool that translates programs expressed in a high-orderlanguage into their machine language equivalents.

Complexity: The degree to which a component or system has a design and/orinternal structure that is difficult to understand, maintain, and verify. See alsocyclomatic complexity.

Component integration testing: Tests executed to identify defects in theinterfaces and interactions between integrated components.

Component testing: The testing of individual software components.

Configuration control: An element of configuration management, consisting ofthe evaluation, co-ordination, approval or disapproval, and implementation ofchanges to configuration items after formal establishment of their configurationidentification.

Configuration item: An aggregation of hardware, software or both, that isdesignated for configuration management and treated as a single entity in theconfiguration management process.

Configuration management: A discipline applying technical and administrativedirection and surveillance to: identify and document the functional and physical

Glossary xvii

characteristics of a configuration item, control changes to those characteristics,record and report change processing and implementation status, and verifycompliance with specified requirements.

Confirmation testing: See re-testing.

Control flow: An abstract representation of all possible sequences of events(paths) in the execution through a component or system.

Coverage: The degree, expressed as a percentage, to which a specified coverageitem has been exercised by a test suite.

Coverage measurement tool: See coverage tool.

Coverage tool: A tool that provides objective measures of what structuralelements, e.g. statements, branches, have been exercised by the test suite.

Cyclomatic complexity: The number of independent paths through a program.Cyclomatic complexity is defined as: L – N + 2P, where:

– L = the number of edges/links in a graph;

– N = the number of nodes in a graph;

– P = the number of disconnected parts of the graph (e.g. a calling graph and asubroutine).

Data-driven testing: A scripting technique that stores test input and expectedresults in a table or spreadsheet, so that a single control script can execute all of thetests in the table. Data driven testing is often used to support the application of testexecution tools such as capture/playback tools. See also keyword-driven testing.

Data flow: An abstract representation of the sequence and possible changes ofthe state of data objects, where the state of an object is any of creation, usage, ordestruction.

Debugging: The process of finding, analyzing, and removing the causes offailures in software.

Debugging tool: A tool used by programmers to reproduce failures, investigatethe state of programs, and find the corresponding defect. Debuggers enableprogrammers to execute programs step-by-step, to halt a program at any programstatement, and to set and examine program variables.

xviii Fundamentals of Software Testing

Decision coverage: The percentage of decision outcomes that have beenexercised by a test suite. One hundred percent decision coverage implies both 100%branch coverage and 100% statement coverage.

Decision table testing: A black-box test design technique in which test cases aredesigned to execute the combinations of inputs and/or stimuli (causes) shown in adecision table.

Defect: A flaw in a component or system that can cause the component orsystem to fail to perform its required function, e.g. an incorrect statement or datadefinition. A defect, if encountered during execution, may cause a failure of thecomponent or system.

Defect density: The number of defects identified in a component or systemdivided by the size of the component or system (expressed in standard measurementterms, e.g. lines-of-code, number of classes, or function points).

Defect management: The process of recognizing, investigating, taking action,and disposing of defects. It involves recording defects, classifying them, andidentifying the impact.

Defect management tool: See incident management tool.

Driver: A software component or test tool that replaces a component that takescare of the control and/or the calling of a component or system.

Dynamic analysis tool: A tool that provides run-time information on the state ofthe software code. These tools are most commonly used to identify unassignedpointers, check pointer arithmetic, and to monitor the allocation, use, and de-allocation of memory and to highlight memory leaks.

Dynamic testing: Testing that involves the execution of the software of acomponent or system.

Entry criteria: The set of generic and specific conditions for permitting aprocess to proceed with a defined task, e.g. test phase. The purpose of entry criteriais to prevent a task starting that would entail more (wasted) effort compared to theeffort needed to remove the failed entry criteria.

Equivalence partition: A portion of an input or output domain for which thebehavior of a component or system is assumed to be the same, based on thespecification.

Error: A human action that produces an incorrect result [IEEE 610]

Glossary xix

Error guessing: A test design technique where the experience of the tester isused to anticipate what defects might be present in the component or system undertest as a result of errors made, and to design tests specifically to expose them.

Exit criteria: The set of generic and specific conditions, agreed upon with thestakeholders, for permitting a process to be officially completed. The purpose of exitcriteria is to prevent a task from being considered completed when there are stilloutstanding parts of the task which have not been finished. Exit criteria are used bytesting to report against and to plan when to stop testing.

Exhaustive testing: A test approach in which the test suite comprises allcombinations of input values and preconditions.

Exploratory testing: Testing where the tester actively controls the design of thetests as those tests are performed and uses information gained while testing to designnew and better tests.

Failure: Actual deviation of the component or system from its expecteddelivery, service, or result (according to Fenton). The inability of a system or systemcomponent to perform a required function within specified limits. A failure may beproduced when a fault is encountered [EUR 00].

Failure rate: The ratio of the number of failures of a given category to a givenunit of measure, e.g. failures per unit of time, failures per number of transactions,failures per number of computer runs.

Fault attack: See attack.

Field testing: See beta testing.

Finite state testing: See state transition testing.

Formal review: A review characterized by documented procedures andrequirements, e.g. inspection.

Functional requirement: A requirement that specifies a function that acomponent or system must perform.

Functional testing: Testing based on an analysis of the specification of thefunctionality of a component or system. See also black-box testing.

Horizontal traceability: The tracing of requirements for a test level through thelayers of test documentation (e.g. test plan, test design specification, test casespecification, and test procedure specification).

xx Fundamentals of Software Testing

IEEE: Institute for Electrical and Electronic Engineers, a professional, not forprofit association for the advancement of technology, based on the electrical andelectronic technologies. This association is active in the design of standards. There isa French chapter of this association providing publications useful for softwaretesters.

Impact analysis: The assessment of change to the layers of developmentdocumentation, test documentation, and components, in order to implement a givenchange to specified requirements.

Incident: Any event occurring during testing which requires investigation.

Incident report: A document reporting on any event that occurs during thetesting which requires investigation.

Incident management tool: A tool that facilitates the recording and statustracking of incidents found during testing. They often have workflow-orientedfacilities to track and control the allocation, correction, and re-testing of incidentsand provide reporting facilities. See also defect management tool.

Incremental development model: A development life cycle where a project isbroken into a series of increments, each of which delivers a portion of thefunctionality in the overall project requirements. The requirements are prioritizedand delivered in priority order in the appropriate increment. In some (but not all)versions of this life cycle model, each sub-project follows a “mini V-model” with itsown design, coding and testing phases.

Independence of testing: Separation of responsibilities, which encourages theaccomplishment of objective testing.

Informal review: A review not based on a formal (documented) procedure.

Inspection: A type of review that relies on visual examination of documents todetect defects, e.g. violations of development standards and non-conformance tohigher-level documentation. The most formal review technique and, therefore,always based on a documented procedure. See also peer review.

Intake test: A special instance of a smoke test to decide whether the componentor system is ready for detailed and further testing. An intake test is typically carriedout at the start of the test execution phase. See also smoke test.

Integration: The process of combining components or systems into largerassemblies.

Glossary xxi

Integration testing: Testing performed to expose defects in the interfaces and inthe interactions between integrated components or systems. See also componentintegration testing, system integration testing.

Interoperability testing: The process of testing to determine the interoperabilityof a software product. See also functionality testing.

ISTQB: International Software Testing Qualifications Board, a nonprofitassociation developing international certification for software testers.

Keyword driven testing: A scripting technique that uses data files to contain notonly test data and expected results, but also keywords related to the applicationbeing tested. The keywords are interpreted by special supporting scripts that arecalled by the control script for the test. See also data-driven testing.

Master test plan: See project test plan.

Maintainability testing: The process of testing to determine the maintainabilityof a software product.

Metric: A measurement scale and the method used for measurement.

Mistake: See error.

Moderator: The leader and main person responsible for an inspection or otherreview process.

Modeling tool: A tool that supports the validation of models of the software orsystem.

N-switch coverage: The percentage of sequences of N+1 transitions that havebeen exercised by a test suite.

N-switch testing: A form of state transition testing in which test cases aredesigned to execute all valid sequences of N+1 transitions (Chow). See also statetransition testing.

Non-functional requirement: A requirement that does not relate to functionality,but to attributes of it such as reliability, efficiency, usability, maintainability, andportability.

Off-the-shelf software: A software product that is developed for the generalmarket, i.e. for a large number of customers, and that is delivered to many customersin identical format.

xxii Fundamentals of Software Testing

Oracle: See test oracle

Peer review: See technical review.

Performance testing: The process of testing to determine the performance of asoftware product.

Performance testing tool: A tool to support performance testing and that usuallyhas two main facilities: load generation and test transaction measurement. Loadgeneration can simulate either multiple users or high volumes of input data. Duringexecution, response time measurements are taken from selected transactions andthese are logged. Performance testing tools normally provide reports based on testlogs and graphs of load against response times.

Portability testing: The process of testing to determine the portability of asoftware product.

Probe effect: The effect on the component or system when it is being measured,e.g. by a performance testing tool or monitor. For example performance may beslightly worse when performance testing tools are being used.

Product risk: A risk directly related to the test object. See also risk.

Project risk: A risk related to management and control of the (test) project, e.g.lack of staffing, strict deadlines, changing requirements, etc. See also risk.

Project test plan: A test plan that typically addresses multiple test levels. Seemaster test plan.

Quality: The degree to which a component, system or process meets specifiedrequirements and/or user/customer needs and expectations.

RAD: Rapid Application Development, a software development model.

Regression testing: Testing of a previously tested program followingmodification to ensure that defects have not been introduced or uncovered inunchanged areas of the software, as a result of the changes made. It is performedwhen the software or its environment is changed.

Reliability testing: The process of testing to determine the reliability of asoftware product.

Requirement: A condition or capability needed by a user to solve a problem orachieve an objective that must be met or possessed by a system or system

Glossary xxiii

component to satisfy a contract, standard, specification, or other formally imposeddocument.

Requirement management tool: A tool that supports the recording ofrequirements, attributes of requirements (e.g. priority, knowledge responsible), andannotation, and facilitates traceability through layers of requirements andrequirement change management. Some requirement management tools also providefacilities for static analysis, such as consistency checking and violations to pre-defined requirement rules.

Re-testing: Testing that runs test cases that failed the last time they were run, inorder to verify the success of corrective actions.

Review: An evaluation of a product or project status to ascertain discrepanciesfrom planned results and to recommend improvements. Examples includemanagement review, informal review, technical review, inspection, and walk-through.

Review tool: A tool that provides support to the review process. Typical featuresinclude review planning and tracking support, communication support, collaborativereviews, and a repository for collecting and reporting of metrics.

Reviewer: The person involved in the review who identifies and describesanomalies in the product or project under review. Reviewers can be chosen torepresent different viewpoints and roles in the review process.

Risk: A factor that could result in future negative consequences; usuallyexpressed as impact and likelihood.

Risk-based testing: An approach to testing to reduce the level of product risksand inform stakeholders on their status, starting in the initial stages of a project. Itinvolves the identification of product risks and their use in guiding the test process.

Robustness testing: Testing to determine the robustness of the software product.

SBTM: Session-based test management, an ad hoc and exploratory testmanagement technique, based on fixed length sessions (from 30 to 120 minutes)during which testers explore a part of the software application.

Scribe: The person who has to record each defect mentioned and anysuggestions for improvement during a review meeting, on a logging form. Thescribe has to ensure that the logging form is readable and understandable.

xxiv Fundamentals of Software Testing

Scripting language: A programming language in which executable test scriptsare written, used by a test execution tool (e.g. a capture/replay tool).

Security testing: Testing to determine the security of the software product.

Site acceptance testing: Acceptance testing by users/customers at their site, todetermine whether or not a component or system satisfies the user/customer needsand fits within the business processes, normally including hardware as well assoftware.

SLA: Service level agreement, service agreement between a supplier and itsclient, defining the level of service a customer can expect from the provider.

Smoke test: A subset of all defined/planned test cases that cover the mainfunctionality of a component or system, to ascertain that the most crucial functionsof a program work, but not bothering with finer details. A daily build and smoke testis among industry best practices.

State transition: A transition between two states of a component or system.

State transition testing: A black-box test design technique in which test casesare designed to execute valid and invalid state transitions. See also N-switch testing.

Statement coverage: The percentage of executable statements that have beenexercised by a test suite.

Static analysis: Analysis of software artifacts, e.g. requirements or code, carriedout without execution of these software artifacts.

Static code analyzer: A tool that carries out static code analysis. The tool checkssource code, for certain properties such as conformance to coding standards, qualitymetrics, or data flow anomalies.

Static testing: Testing of a component or system at specification orimplementation level without execution of that software, e.g. reviews or static codeanalysis.

Stress testing: A type of performance testing conducted to evaluate a system orcomponent at or beyond the limits of its anticipated or specified workloads, or withreduced availability of resources such as access to memory or servers. See alsoperformance testing, load testing.

Stress testing tool: A tool that supports stress testing.

Glossary xxv

Structural testing: See white-box testing.

Stub: A skeletal or special-purpose implementation of a software component,used to develop or test a component that calls or is otherwise dependent on it. Itreplaces a called component.

System integration testing: Testing the integration of systems and packages;testing interfaces to external organizations (e.g. electronic data interchange, theinternet).

System testing: The process of testing an integrated system to verify that it meetsspecified requirements.

Technical review: A peer group discussion activity that focuses on achievingconsensus on the technical approach to be taken. A technical review is also knownas a peer review.

Test: A set of one or more test cases.

Test approach: The implementation of the test strategy for a specific project. Ittypically includes the decisions made that follow based on the (test) project’s goaland the risk assessment carried out, starting points regarding the test process, the testdesign techniques to be applied, exit criteria, and test types to be performed.

Test basis: All documents from which the requirements of a component orsystem can be inferred. The documentation on which the test cases are based. If adocument can be amended only by way of formal amendment procedure, then thetest basis is called a frozen test basis.

Test case: A set of input values, execution preconditions, expected results, andexecution post conditions, developed for a particular objective or test condition,such as to exercise a particular program path or to verify compliance with a specificrequirement.

Test case specification: A document specifying a set of test cases (objective,inputs, test actions, expected results, and execution preconditions) for a test item.

Test comparator: A test tool to perform automated test comparison.

Test condition: An item or event of a component or system that could be verifiedby one or more test cases, e.g. a function, transaction, quality attribute, or structuralelement.

xxvi Fundamentals of Software Testing

Test control: A test management task that deals with developing and applying aset of corrective actions to get a test project on track when monitoring shows adeviation from what was planned. See also test management.

Test coverage: See coverage.

Test data: Data that exists (for example, in a database) before a test is executed,and that affects or is affected by the component or system under test.

Test data preparation tool: A type of test tool that enables data to be selectedfrom existing databases or created, generated, manipulated and edited for use intesting.

Test design: The process of transforming general testing objectives into tangibletest conditions and test cases. See test design specification.

Test design specification: A document specifying the test conditions (coverageitems) for a test item, the detailed test approach, and identifying the associated highlevel test cases.

Test design technique: A method used to derive or select test cases.

Test design tool: A tool that supports the test design activity by generating testinputs from a specification that may be held in a CASE tool repository, e.g.requirements management tool, or from specified test conditions held in the toolitself.

Test-driven development: Agile development method, where the tests are designedand automated before the code (from the requirements or specifications), then theminimal amount of code is written to successfully pass the test. This iterative methodensures that the code continues to fulfill requirements via test execution.

Test environment: An environment containing hardware, instrumentation,simulators, software tools, and other support elements needed to conduct a test.

Test execution: The process of running a test by the component or system undertest, producing actual results.

Test execution schedule: A scheme for the execution of test procedures. The testprocedures are included in the test execution schedule in their context and in theorder in which they are to be executed.

Test execution tool: A type of test tool that is able to execute other softwareusing an automated test script, e.g. capture/playback.

Glossary xxvii

Test harness: A test environment comprised of stubs and drivers needed toconduct a test.

Test leader: See test manager.

Test level: A group of test activities that are organized and managed together. Atest level is linked to the responsibilities in a project. Examples of test levels arecomponent test, integration test, system test, and acceptance test.

Test log: A chronological record of relevant details about the execution of tests.

Test management: The planning, estimating, monitoring, and control of testactivities, typically carried out by a test manager.

Test manager: The person responsible for testing and evaluating a test object.The individual, who directs, controls, administers, plans, and regulates theevaluation of a test object.

Test monitoring: A test management task that deals with the activities related toperiodically checking the status of a test project. Reports are prepared that comparethe results with what was expected. See also test management.

Test objective: A reason or purpose for designing and executing a test.

Test oracle: A source to determine expected results to compare with the actualresult of the software under test. An oracle may be the existing system (for abenchmark), a user manual, or an individual’s specialized knowledge, but should notbe the code.

Test plan: A document describing the scope, approach, resources, and scheduleof intended test activities. Amongst others, it identifies test items, the features to betested, the testing tasks, who will do each task, the degree of tester independence,the test environment, the test design techniques, and test measurement techniques tobe used, and the rationale for their choice, and any risks requiring contingencyplanning. It is a record of the test planning process.

Test policy: A high-level document describing the principles, approach, andmajor objectives of the organization regarding testing.

Test procedure: See test procedure specification.

Test procedure specification: A document specifying a sequence of actions forthe execution of a test; also known as the test script or manual test script.

xxviii Fundamentals of Software Testing

Test report: See test summary report.

Test script: Commonly used to refer to a test procedure specification, especiallyan automated one.

Test strategy: A high-level document defining the test levels to be performedand the testing within those levels for a program (one or more projects).

Test suite: A set of several test cases for a component or system under test,where the post-condition of one test is often used as the precondition for the nextone.

Test summary report: A document summarizing testing activities and results. Italso contains an evaluation of the corresponding test items against exit criteria.

Tester: A technically skilled professional who is involved in the testing of acomponent or system.

Testware: Artifacts produced during the test process required to plan, design,and execute tests, such as documentation, scripts, inputs, expected results, setup andclear-up procedures, files, databases, environment, and any additional software orutilities used in testing.

Thread testing: A version of component integration testing where theprogressive integration of components follows the implementation of subsets of therequirements, as opposed to the integration of components by levels of a hierarchy.

Traceability: The ability to identify related items in documentation and software,such as requirements with associated tests. See also horizontal traceability, verticaltraceability.

Usability testing: Testing to determine the extent to which the software productis understood, easy to learn, easy to operate, and attractive to the users underspecified conditions.

Use case testing: A black-box test design technique in which test cases aredesigned to execute user scenarios.

User acceptance testing: See acceptance testing.

V-model: A framework to describe the software development life cycle activitiesfrom requirement specification to maintenance. The V-model illustrates how testingactivities can be integrated into each phase of the software development life cycle.

Glossary xxix

Validation: Confirmation by examination and through provision of objectiveevidence that the requirements for a specific intended use or application have beenfulfilled.

Verification: Confirmation by examination and through the provision ofobjective evidence that specified requirements have been fulfilled.

Version control: See configuration control.

Vertical traceability: The tracing of requirements through the layers ofdevelopment documentation to components.

Walk-through: A step-by-step presentation by the author of a document in orderto gather information and to establish a common understanding of its content.

White-box testing: Testing based on an analysis of the internal structure of thecomponent or system.