软件测试技术
重点:软件测试分类、阶段
软件测试应该从需求开始
验收测试根据需求分析来定,测试人员主要做的是系统测试,集成测试和单元测试主要由开发人员做。
验收测试 加入了客户
软件测试阶段详解
-
单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”。
-
集成测试介于单元测试和系统测试之间,起到“桥梁作用“,一般由开发小组采用白盒加黑盒的方式来测试,既要验证”设计“,又要验证”需求“。
-
系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。
-
验收测试与系统测试非常相似,主要区别是测试人员不同,验收测试由用户执行。
ALPHA和BETA测试
-
大型通用软件,在正式发布前,通常需要执行Alpha和Beta测试。
-
目的是从实际终端用户的使用角度,对软件的功能和性能进行测试,一发现可能只有最终用户才能发现的错误。
-
Alpha测试
1)Alpha测试是用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。这是在受控制的环境下进行的测试。
2)Alpha测试的目的是评价软件产品的FURPS(即功能、可使用性、可靠性、性能和支持)。
3)Alpha测试可以从软件产品编码结束之时开始,或者在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品一定的稳定和可靠程度之后再开始。
-
Beta测试
1)Beta测试是用户在实际使用环境下进行的测试。与Alpha测试不同的是,开发者通常不在测试现场。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。
2)只有当Alpha测试达到一定的可靠程度时,才能开始Beta测试。由于它处在整个测试的最后阶段,不能指望这时发现主要问题。
3)产品的所有手册文本也应该在此阶段完全定稿。
总结:软件测试阶段对照表
测试阶段 | 主要依据 | 测试人员、测试方法 | 主要测试内容 (系统测试和验收测试的测试内容相同) |
---|---|---|---|
单元测试 | 系统设计文档 | 由开发小组执行白盒测试 | 接口测试、路径测试 |
集成测试 | 系统设计文档 需求文档 | 由开发人员执行白盒测试和黑盒测试 | 接口测试、路径测试、功能测试、性能测试 |
系统测试 | 需求文档 | 由独立测试小组执行黑盒测试 | 功能测试、健壮性测试、性能测试、用户界面测试 |
验收测试 | 需求文档 | 由用户执行黑盒测试 | 安全性测试、压力测试、可靠性测试、安装/反安装测试 |
如何提高测试效率
-
减少冗余的测试
-
白盒测试与黑盒测试的方式虽然不同,但是往往有异曲同工之妙。在很多地方,白盒测试与黑盒测试会产生一模一样的效果(或者能够推理出来),这样的测试是冗余的。
-
在集成测试、系统测试阶段,可能要执行多次“回归测试”。每一次“回归测试”都会存在不少的冗余,应当设法剔除不必要的重复测试工作。
-
-
减少无价值的测试
-
无价值的测试通常是由不懂得测试技术引起的。例如功能测试,在等价区间之中,本来只要测试一个典型的输入就行了,如果有人在此区间测试了100次,那么其中99次就是无价值的。
测试优先级选择
-
测试优先级:(重点)
-
哪些功能是软件的特色/span>
-
哪些功能是用户最常用的/span>
-
如果系统可以分块卖的话,哪些功能块在销售时最昂贵/span>
-
哪些功能出错将导致用户不满或者索赔/span>
-
哪些功能是最复杂、最容易出错的/span>
-
哪些程序是相对独立,应当提前测试/span>
-
哪些程序最容易扩散错误/span>
-
哪些程序是全系统的性能瓶颈所在/span>
-
哪些程序是开发者最没有信心的/span>
探索式测试(在前面部分都完成之后,有剩余时间)
测试人员在测试程序中可以天马行空地想怎么测就怎么测,利用应用程序所提供的信息自由发挥,没有限制,不受任何约束的探索程序的各种功能。
软件测试关注重点
根据软件的各种属性,将测试重点划分为:
-
输入(软件经过我们的输入,在特定的执行环节下,执行的输出)
合法输入、非法输入:
明确哪些是合法输入,哪些是非法输入。
关注程序对于输入的处理、反应。
处理输入的三种方式:
(1)输入筛选器:
-用来防止非法的输入值传递给程序。
-列表框、下拉框是常用的输入筛选器。(能够不用用户输入的地方就不要让用户输入,这样可以避免更多的错误出现,减少代码量。)
-测试关注点:提供的输入选项本身是否正确;是否可以绕过筛选器的屏蔽而进入系统。
(2)输入检查:
使用输出来指导输入选择:
-首先将所有的输出结果罗列出来;
-然后确定哪些输入会引发这些输入;
-该方法可以保证重要的场景都被测试。
-
状态
-
软件的一个状态就是状态空间中的一个点,由它所有内部数据结构的取值唯一确定。
-
-
例如,12306 站,首次订票和第二次订同一张票是完全不同的两个状态,应该视为两个不同的用户场景,分别设计不同的测试用例。
-
代码路径
-
用户数据
-
创建一个含义特定数据的测试环境,含有的数据应该和软件真实使用的数据尽量相似。
-
常用的方法是取得用户的数据导入到测试环境中。
-
-
执行环境(测试时,一定要考虑到环境的问题)
软件运行环境本身也是一种输入源,测试人员在产品发布之前应尽量尝试各种各样的用户环境。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!