*********声明:本系列课程为Cem Kanner的软件黑盒测试基础的笔记版**************
What's A COMPUTER PROGRAM?
Textbooks often define a "computer program" like this:A program is a set of instructions(指令) for a computer.
That's like defining a house like this:
- A house is a set of construction materials assembled(建筑材料集合) according to house-design patterns.
I'd rather define it as:
- A house is something built for people to live in.
The second definition focuses on the Stakeholders(for people) and Purpose(to live in), rather than on its materials.
Stakeholder(项目相关人): Any person affected by(受到……影响): success or failure of a project, or, actions or inactions of a product,or effects of a service.
------------------------------------------------------------------------------------------------------
A DIFFERENT DEFINITION
- A computer program is:
- a communication
- among several humans and computers
- who are distributed over space and time,
- that contains instructions that can be executed by a computer
The point of the program is to provide value to the stakeholders.
-----------------------------------------------------------------------------------------------------
WHAT ARE WE REALLY TESTING FOR?
Quality is value to some person----Jerry Weinberg
Quality is inherently subjective(质量天生就是主观的). Different stakeholders will perceive the same product as having different levels of quality.
Testers look for different things for different stakeholders.
--------------------------------------------------------------------------------------------------------
SOFTWARE ERROR
An attribute(属性,品质) of a software product
- that reduces its value to a favored stakeholder
- increases its value to a disfavored stakeholder
- without a sufficiently large countervailing benefit
An error:
May or may not be a coding error, or a functional error. Design errors are bugs too.
------------------------------------------------------------------------------------------------------------
SOFTWARE TESTING
- is an empirical(经验)
- technical(技术)
- investigation(审查)
- conducted to provide stakeholders with information about the quality of the product or service under test(为项目相关者提供被测产品或服务的质量信息)
We design and run tests in order to gain useful information about the product's quality.
-------------------------------------------------------------------------------------------------------------
TESTING IS ALWAYS A SEARCH FOR INFORMATION----测试的作用
- Find important bugs(找到严重的缺陷)
- Assess the quality of the product(评估产品的质量)
- Help managers assess the progress of the project(帮助管理者评估项目的进度)
- Help managers make release decisions(帮助管理者做出决定是否发布release)
- Block premature product releases(阻止发布草率的release)
- Help predict and control product support costs(预估和控制产品支持的费用)
- Check interoperability with other products(检查和其他产品的协同工作能力)
- Find safe scenarios for use of the product(找出产品使用过程中的安全场景)
- Assess conformance to specifications(评估产品是否和规格说明书一致)
- Certify the product meets a particular standard(确保产品符合通用的标准)
- Ensure the testing process meets accountability standards(确保测试过程满足可度量的标准)
- Minimize the risk of safety-related lawsuits(减少安全相关的诉讼风险)
- Help clients improve product quality & testability(帮助客户提高产品质量和可测性)
- Help clients improve their processes(帮助客户改进他们的过程)
- Evaluate the product for a third party(有第三方评估产品)