软件测试第一周:
第一章:
软件测试:软件测试是一种活动,目的在于评价一个程序或系统的属性或能力,决定它符合它自身所需要的结果。
进行测试的目的:
1.因为我们不是足够好的程序员
2.没有集中足够的精力去克服错误
3.有时忘记使用全构造化的编成,自顶向下的设计得到我们的解决方案
4.我们本应该区分出其他程序员或客户说的话,知道他们是如何想的,和他们真正含义
5.测试本身就是承认“失败(失效)”
学习测试的目的:
1.管理软件的开发过程:需求测试-〉功能验收测试计划
2.更好的设计,编制软件(需求、完成需要的功能、可测性、安全可靠,可用性、执行速度、可维护性)
3.掌握软件测试的原理和方法,提高质量
名词定义:
Error : 设计者或开发人员犯的错误
Defect:通常的严重的昂贵代价的原因是 需求缝隙(未被认识的需求),被程序设计者忽略的错误
Failure: 执行缺陷代码导致在某些情况下,系统会产生错误的结果。
理解软件测试:
Tips: 每一个环节都会有理解、设计、表达、编码、运行和输入的正确性保证。
否则就会产生问题。
产生缺陷的原因:
错误理解需求
需求设计错误
错误理解设计内容
编码错误
程序执行失败
没有满足需求
测试生命周期在开发阶段有3次机会引入错误导致缺陷传播到下一阶段:
V型开发模型:
测试不是在编码完成后才进行的工作,它是一个一直进行的过程,它涉及到需求分析,软件设计和测试
测试是基于需求的,测试是试图发现系统或它的组成部件的期望行为与观测到的行为的差别
只能验证程序中有缺陷,无法验证程序中没有缺陷
测试用例:
为了进行测试,需要对被测程序的输入设定,预期它的输出结果等,这些信息的集合称之为测试用例
难点是设计文档的信息是面向开发人员编写的,表现的是结构试图“它是什么”
测试人员需要的行为试图要得到“他做什么”
用一条封闭曲线直观地表示集合及其关系地图形称为维恩图(也叫文氏图)。
John Venn(约翰.维恩) 是十九世纪英国的哲学家和数学家,他在 1881年发明了文氏图。
测试分为: 黑盒测试和白盒测试
黑盒测试:软件规范说明书是唯一依据
白盒测试:基于程序结构测试
black box |
white box |
|
Focus on |
Behaviors in specifications |
Program source code structure |
Specifications implementation |
Can be tested |
Hard to test |
implementation out of specifications |
Hard to test |
Can be tested |
test case creation |
Does not depend on the realization method,cases are still available even though method has changed |
Depend on the realization method,cases change when program changes |
Redundances and software flaws not having being tested may exist |
There are strong theoretical basis.For a variety of test (coverage testing, branch testing) |
第二章
黑盒测试
基本观点:任何程序都可以看作是从输入定义域到输出值域的映射,这种观点将被测程序看作一个打不开的黑盒,黑盒里面的内容(实现)是完全不知道的,只知道软件要做什么。因无法看到盒子中的内容,所以不知道软件是如何实现的,也不关心黑盒里面的结构,只关心软件的输入数据和输出结果。
等价类:等价类是指输入域的某个互不相交的子集合
等价类划分:
有效等价类:检验程序是否实现了规格说明预先规定的功能和性能
无效等价类:检查软件功能和性能的实现是否有不符合规格说明要求的地方
常用的等价类划分原则
(1)按区间划分
(2)按数值划分
(3)按数值集合划分
(4)按限制条件或规则划分
(5)细分等价类
等价类测试用例设计
(1)在确立了等价类之后,可列出所有划分出的等价类表。
(2)为每一个等价类规定一个唯一的编号。
(3)设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,直到测试用例覆盖了所有的有效等价类。
(4)设计一个新的测试用例,使其覆盖且只覆盖一个尚未覆盖的无效等价类。重复这一步,直到测试用例覆盖了所有的无效等价类。