Chapter 3 The Realities of Software Testing

The Realities of Software
Testing
Chapter 3

Highlights
 No perfect process
 Trade-offs and concessions
 Why software can never be perfect
 Why software testing isn’t just a technical
problem
 The terms commonly used by software
testers
Testing Axiom

It’s impossible to Test a Program
Completely
 Four key reasons
 The number of possible inputs is very large
 The number of possible outputs is very large
 The number of paths through the software is
very large
 The software specification is subjective. You
might say that a bug is in the eye of beholder

Software Testing Is a Risk-Based
Exercise
 Not to test every possible test scenario
 Customer will eventually find it someday
 Dilemma
 Testing vs. Release deadline
 Stop testing vs. Costly bug
 Key concept
 Reduce the huge domain of possible tests
into a manageable set
 Make wise risk-based decision on what’s
important to test and what’s not

Optimal Amount of Testing
Number of
Missed Bugs
Cost of Testing
Optimal Amount
of Testing
Under Testing
Over Testing
Quantity
Amount of Testing

Testing Can’t Show That Bugs Don’t
Exist
 Bugs in the House
 Testing
 Can show that bugs exist
 Can’t show that bugs don’t exist
 What can you do?
 Test more and find more

The More Bugs You Find, the More
Bugs There Are
 The nature of real bug and software bug:
 Both types tend to come into groups
 “bugs follow bugs”
 Several reasons
 Programmers have bad days
 Programmers often make the same mistake
 Some bugs are really just the tip of the iceberg

The Pesticide Paradox
 The more you test software, the more
immune it becomes to your test
 Spiral model example
 How to overcome
 Write new and different tests to exercise
different parts of the program and find more
bugs

Not All Bugs You Find Will Be Fixed
 Reasons
 There’s not enough time
 It’s really not a bug
 Misunderstanding, test errors or spec changes
 Its’ too risky to fix
 Make a bug fix that causes other bugs to appear
 It’s just not worth it

When a Bug’s a Bug Is Difficult to say
 There’s problem in the software but no one
ever discover it
 Is It a bug????
 Obey the rules to define bugs in Chapter 1
 You can’t claim that a bug exists if you didn’t
see it
 Bugs that are undiscovered or haven’t yet
been observed are often referred to as latent
bugs

Product Specification Are never Final
 Constantly changing product specification
 Fast moving industry
 Longer development schedule
 The only invariance is the variance of the
requirement (specification)

Software Testers Aren’t the Most
Popular Members of a Project Team
 Goal of software tester
 Find bugs, find them as early as possible, and
make sure they get fixed
 Keep peace with your fellow team member
 Find bug early
 Temper your enthusiasm
 Don’t just report bad news

Software Testing Is a Disciplined
Technical Profession
 Professional software tester are mandatory
 Core, vital members of the staff
 Career choice
Software Testing Terms and
Definitions

Precision and Accuracy
 Neither accurate nor precise
 Precise, but not Accurate
 Accurate, but not Precse
 Accurate and Precise

Verification and Validation
 Verification
 Process confirming that something-softwaremeets
its specification
 Validation
 The process confirming that it meets the
user’s requirement
 Example: Hubble telescope

Quality and Reliability
 Quality
 The customer feel that the product is excellent
and superior to his other choices
 Reliability
 One aspect of quality
 How often the product crashes or trashes his
data

Testing and Quality Assurance (QA)
 The goal of software tester is to find bugs,
find them as early as possible, and make
sure they get fixed
 A software quality assurance person’s main
responsibility is to create and enforce
standards and methods to improve the
development process and to prevent bugs
from ever changing 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Explores and identifies the main issues, concepts, principles and evolution of software testing, including software quality engineering and testing concepts, test data generation, test deployment analysis, and software test management This book examines the principles, concepts, and processes that are fundamental to the software testing function. This book is divided into five broad parts. Part I introduces software testing in the broader context of software engineering and explores the qualities that testing aims to achieve or ascertain, as well as the lifecycle of software testing. Part II covers mathematical foundations of software testing, which include software specification, program correctness and verification, concepts of software dependability, and a software testing taxonomy. Part III discusses test data generation, specifically, functional criteria and structural criteria. Test oracle design, test driver design, and test outcome analysis is covered in Part IV. Finally, Part V surveys managerial aspects of software testing, including software metrics, software testing tools, and software product line testing. Presents software testing, not as an isolated technique, but as part of an integrated discipline of software verification and validation Proposes program testing and program correctness verification within the same mathematical model, making it possible to deploy the two techniques in concert, by virtue of the law of diminishing returns Defines the concept of a software fault, and the related concept of relative correctness, and shows how relative correctness can be used to characterize monotonic fault removal Presents the activity of software testing as a goal oriented activity, and explores how the conduct of the test depends on the selected goal Covers all phases of the software testing lifecycle, including test data generation, test oracle design, test driver design, and test outcome analysis Software Testing: Concepts and Operations is a great resource for software quality and software engineering students because it presents them with fundamentals that help them to prepare for their ever evolving discipline. Table of Contents PART I INTRODUCTION TO SOFTWARE TESTING Chapter 1 Software Engineering: A Discipline Like No Other Chapter 2 Software Quality Attributes Chapter 3 A Software Testing Lifecycle PART II FOUNDATIONS OF SOFTWARE TESTING Chapter 4 Software Specifications Chapter 5 Program Correctness and Verification Chapter 6 Failures, Errors, and Faults Chapter 7 A Software Testing Taxonomy PART III TEST DATA GENERATION Chapter 8 Test Generation Concepts Chapter 9 Functional Criteria Chapter 10 Structural Criteria PART IV TEST DEPLOYMENT AND ANALYSIS Chapter 11 Test Oracle Design Chapter 12 Test Driver Design Chapter 13 Test Outcome Analysis PART V MANAGEMENT OF SOFTWARE TESTING Chapter 14 Metrics for Software Testing Chapter 15 Software Testing Tools Chapter 16 Testing Product Lines

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值