1.1 软件缺陷
软件缺陷的定义
计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者异常的功能缺陷、瑕疵。 缺陷的存在会导致软件产品在不同程度上不能满足用户的需求。
软件缺陷的表现(准确定义)
-软件未达到需求规格说明书中指明的功能 -软件出现了需求规格说明书中指明不会出现的错误 -软件功能超出需求规格说明书中指明的范围 -软件测试员认为软件难以理解、不易使用、运行速 度缓慢,或者最终用户认为不好
软件缺陷产生的原因
(一)技术问题
算法错误,语法错误,计算和精度问题,接口参数不匹配
(二)团队工作
误解、沟通不充分
(三)软件本身
-文档错误 -边界考虑不周 -时间上不协调、不一致所带来的问题 -没有考虑系统崩溃后在系统安全性、可靠性方面的隐患
软件缺陷的等级
缺陷严重等级 | 描述 |
---|
致命 | 系统任何一个主要功能完全丧失、用户数据受到破坏、系统崩溃、悬挂、死机,或者危及人身安全 | 严重 | 系统的主要功能部分丧失、数据不能保存,系统的次要功能完全丧失,系统所提供的功能或服务受到 | 明显的影响 | 一般 系统的次要功能没有完全实现,但不影响用户的正常使用。例如:提示信息不太准确;或用户界面差、操作时间长等一些问题。 | 较小 | 使操作者不方便或遇到麻烦,但它不影响功能的操作和执行,如个别的不影响产品理解的错别字、文字排列不对齐等一些小问题 |
注:问题发现越早,解决问题的代价就越小。软件缺陷发现越迟,影响范围越广; 造成的危害越大; 修复的工作越大; 成本越高!
1.2 什么是软件测试
软件测试: 发现bug - 记录bug - 修复bug
软件测试的对象
软件 = 程序 + 数据 + 文档 + 服务
1、 软件测试不等于程序测试。 软件测试包括程序、数据和文档等。 2.软件开发过程中所产生的所有文档都应成为软件测试的对象。 例如:需求规格说明、概要设计规格说明、详细设计规格说明、源程序等。 3.软件测试贯串于软件定义和开发的整个过程。
测试:以检验产品是否满足需求为目标
软件测试:使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
软件测试的目的
?尽可能早地发现软件中的缺陷,并确保其得 以修复; “为了证明软件有错误,而不是证明软件没有 错误” ?提高软件质量和可靠性。
衡量标准
多:能够找到尽可能多的BUG 快:能够尽可能早地发现最严重的BUG 好:(1)找到的BUG是关键的、用户最关心的 (2)找到的BUG能重现,为修正BUG提供信息 省:(1)能够用最少的时间、人力和资源发现BUG (2)测试的过程和数据可以重用
软件测试的原则
1.可追溯性 所有测试都应追溯到用户需求(“可追溯性”). 2.尽早预防、回归测试 尽早测试和不断测试,这样才能尽早发现和预防错误,以较低的代价修改错误,提高软件质量。 3.二八原则 测试中发现的80%的错误可能来自于20%的程序代码。 4.由小到大原则 测试应从“小规模”开始,逐步转向“大规模” 5.投入/产出原则 有限时间内进行完全测试找出所有缺陷是不可能的 6. 独立的第三方测试
1.3 软件质量与质量模型
软件质量
定义
“软件质量就是软件与明确的和隐含的定义的需 求相一致的程度。”
三个层次
(1)符合开发者定义的需求规格; (2)符合用户显式需求; (3)符合用户实际需求。
ISO 9126软件质量模型(国际标准)
其中包括6个特性和27个子特性
1.4 测 试 用 例
测试用例(Test Case,TC):测试用例是为某 个特殊目标而编制的一组测试输入、执行条件 以及预期结果,以便测试某个程序路径是否正 确或核实某个功能是否满足特定需求。
测试用例的公式表示
测试用例 = 输入 + 输出 + 测试环境
测试用例设计的基本原则
1)测试用例的代表性: 能够代表并覆盖各种合理的、不合理 的、合法的和非法的、边界的和越界的以 及极限的输入数据、操作和环境设置等。 2)测试结果的可判定性: 即测试执行结果的正确性是可判定的。每一个测试用例都应该有相应明确的预期结果,而不应存在二义性,否则将难以判断系统是否运行正常。 3)测试结果的可再现性: 对同样的测试用例,系统的执行结果应当相同。测试用例的再现有利于在出现缺陷的时候能够确保缺陷的重现,为缺陷的快速修复打下基础。
测试用例模板
(1)软件或项目的名称。 (2)软件或项目的版本。 (3)功能模块名。 (4)测试用例的简单描述,即该用例执行的目的或方法。 (5)测试用例的参考信息(便于跟踪和参考)。 (6)本测试用例与其他测试用例间的依赖关系。 (7)本用例的前置条件,即执行本用例必须要满足的条件,如对数据库的访问权限。 (8)用例的编号(ID),如可以是“软件名称简写-功能块简写-NO.”。 (9)步骤号、操作步骤描述、测试数据描述。 (10)预期结果和实际结果。 (11)开发人员和测试人员(可有可无)。 (12)测试执行日期。
1.5 测 试 环 境
软件测试环境就是软件运行的平台,即软件、硬件和网络的集合。
即:测试环境 = 软件 + 硬件 + 网络+历史数据
其中
软件:主要指软件运行的操作系统、 测试软件等 硬件:包括PC、笔记本电脑、服务器 、各种PDA终端 网络:主要针对C/S结构和B/S结构的软件 历史数据:指测试用例执行所需初始化的各项数据
|