第1讲:The nature of Testing--測试的本质

*********声明:本系列课程为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(有第三方评估产品)
时间: 2024-08-02 19:01:27

第1讲:The nature of Testing--測试的本质的相关文章

第1讲:The nature of Testing--测试的本质

*********声明:本系列课程为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

利用Continuous Testing实现Eclipse环境自己主动单元測试

当你Eclipse环境中改动项目中的某个方法时,你可能因为各种原因没有执行单元測试,结果代码提交,悲剧就可能随之而来. 所幸infinitest(http://infinitest.github.io/)提供了一个Continuous Testing插件,以及时自己主动执行单元測试.尽管会多占一些CPU资源,但开发者的硬件谁会不留一点余地呢?大不了,音乐.视频.360卸载就OK了.安装方法有两种: (1)使用"Install new software",输入地址:http://infi

C语言单元測试

对于敏捷开发来说,单元測试不可缺少,对于Java开发来说,JUnit非常好,对于C++开发,也有CPPUnit可供使用,而对于传统的C语言开发,就没有非常好的工具可供使用,能够找到的有这么几个工具: CuTest -- CuTest(Cute Test)是一个很easy的C语言单元測试工具.在使用它的时候,仅仅须要包括两个文件“CuTest.c CuTest.h”,然后就能够写測试用例,进行測试了.它对用例差点儿没有管理功能,报表输出也很easy,能够用来试验单元測试的基本想法. CUnit -

软件安全性能測试(转载)

近来,在我负责的公司某软件产品的最后測试工作,经常被问到这样一个问题:在做測试过程中,我们的软件产品在安全性方面考虑了多少?应该怎样測评一个软件究竟有多安全? 这个软件因为涉及客户商业上重要的信息资料,因此用户关心的核心问题始终环绕“这个软件安全吗”.一个因为设计导致的安全漏洞和一个因为实现导致的安全漏洞,对用户的终于影响都是巨大的.我的任务就是确保这个软件在安全性方面能满足客户期望. 一.什么是软件安全性測试 (1)什么是软件安全 软件安全属于软件领域里一个重要的子领域.在曾经的单机时代,安全

写可測试的代码

写可測试的代码 不论什么一个软件都是能够測试.在某种意义上,用户的使用过程也就是一个软件測试的过程.但是这并非我们今天要讲的可測试性.我们讲的可測试性指的是代码的可測试性,通俗点儿说就是是一串代码里包括的逻辑是不是能够被单元測试所覆盖.在这篇文章里我会从单元測试的基本概念開始引伸到怎样写单元測试,怎样写可单元測试的代码.文章里全部的样例都是C#写的,一来它是我职业生涯的主力语言.二来C#广为人知,相信对广大职业的或是业余的程序猿来说读懂C#的代码不会是什么特别困难的事情.实际上我描写叙述的方法和

iOS8使用TestFlight进行内部測试功能尝鲜

iOS8公布了有一段时间了,我们的策划非常新潮的速度给升级到iOS8了. 于是XCode5不支持了,仅仅好从MacOS 10.8升级到10.9,再升级到10.9.5,再下载XCode6安装-- 然后前两天上传一个版本号给苹果审核.发现iTunes Connect里多了一个Prerelease选项卡.里面有一个Internal Testers.于是上网搜索了下,看到了一篇介绍文章:http://www.infoq.com/cn/news/2014/06/apple-ios8-testflight/

TaintDroid下载预编译(五):TaintDroid(Android)系统编译虚拟机和真机測试

光说不练非好汉,如今就让我们开启自己编译的系统測试!事实上懂得这些过程.就知道了Android手机系统定制的整个流程.现有的智能机都是使用Google的android开源的系统然后加入一些自己的东西.就成为公司的系统! TaintDroid(Android)虚拟机上測试 我们前面讲了怎样编译,编译的成功的标识就是生成system.img文件,例如以下图: sdk替换 拷贝system.img镜像文件,替换掉sdk中的镜像.例如以下图: 对于创建AVD非常easy,这里几张图就能够看懂. wate

using the easy connect naming method 简单连接測试

一直都不明确sqlnet.ora中的NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)是什么意思.今天看到一篇文档,就是登陆选用的方式.做一个測试: tnsnames.ora  10.10.32.119 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.32.119)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME =

Android Gradle Plugin指南(四)——測试

原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Testing 5.Testing(測试) 构建一个測试程序已经被集成到应用项目中,没有必要再专门建立一个測试项目. 5.1 Basics and Configuration(基本知识和配置) 正如前面所提到的,紧邻main sourceSet的就是androidTest sourceSet,默认路径在src/androidTest/下. 在这个測试so