第二讲 软件测试基础知识
- 测试的含义
首先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价。
- 软件测试
使用人工或自动化手段,来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别(IEEE)
- 软件测试的根本目的
发现修改缺陷 满足需求,提高用户满意程度 优化软件品质
一个好的测试用例在于发现了还未曾发现的错误;一次成功的测试则是发现了错误的测试。
- 软件测试对象
- 软件测试不等于程序测试
- 软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序、用户文档都是软件测试的对象
在软件生命周期中,每个阶段都有不同的测试对象,形成了不同开发阶段的不同类型的测试。
-
软件测试分类
- 测试组织:开发方+用户方+第三方
- 测试用例设计方法:黑盒+白盒+灰盒
- 测试策略与过程:单元—>集成—>系统—>验收
- 基本要求和适用要求:功能、性能
- 回归测试、冒烟测试、随机测试
按测试组织:开发方测试、用户测试、第三方测试
按测试技术:黑盒测试(不去看代码)、白盒测试、
灰盒测试是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
按测试过程:单元测试、集成测试、系统测试、验收测试.
按测试类型:功能、性能、界面、易用性测试、兼容性测试、安全性测试、安装测试
(单元测试:在编码过程中,对每个小程序单元测试)
(集成测试:将单元集成在一起后,可称为组件)
回归测试、冒烟测试、随机测试
(冒烟测试:是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。专门针对某一项功能的测试—主干功能)
- 我们使用QQ2009 Beta版进行聊天(用户测试、黑盒测试、验收测试)
- 程序员A对刚开发出来的add函数进行检验 (开发方测试、白盒测试、单元测试)
- SCIS系统开发完成了,几名测试老师对该系统进行检验(开发方测试、黑盒测试、系统测试测试老师首先验证SCIS的登录功能和其他基本主功能(开发方测试、黑盒测试、系统测试、冒烟测试)
- 针对SCIS测试老师提出系统缺陷,开发者修改后,测试老师再次检验(开发方测试、黑盒测试、系统测试、回归测试)
- SCIS系统通过测试老师的检验,从各班中抽取几名同学代表进行系统初体验(用户测试、黑盒测试、验收测试( alpha 测试或系统初验))
- 测试环境(软件 + 硬件 + 络)
指测试软件的时候,软件运行的平台
软件开发环境:VB、VC、VS等
软件生产运行环境:最终用户环境
- 测试环境搭建原则(记住)
- 真实:(项目软件、产品软件):尽量模拟用户的真实使用环境
- 干净:测试环境中尽量不要安装其他与被测软件无关的软件
- 无毒:测试环境没有病毒
- 独立:测试环境和开发环境要独立开来
项目软件:有明确的客户群体,周期较短
产品软件:面向大众去发送,周期较长
- 软件测试时间
- 软件生命周期
计划、需求à设计、编码、测试à运行维护à淘汰停用
- 软件在从需求、设计、编码、测试一直到交付用户公开使用后的过程中,都有可能产生和发现缺陷。随着整个开发过程的时间推移,更正缺陷或修复问题的费用呈几何级数增长。
- 软件测试尽早开展。
- 软件测试覆盖整个软件生命周期。
测试信息流程(简单看)
测试过程中需要三类输入:软件配置、测试配置和测试工具。
测试最终的结果或输出:得到软件的功能正确或者找出缺陷。
软件配置:包括软件需求规格说明、软件设计规格说明、源代码等;
测试配置:包括测试计划、测试用例、测试驱动程序等。
测试工具:为提高测试效率,采用测试工具支持测试工作,包括测试数据自动生成程序、驱动测试的测试数据库等。
软件测试周期
软件测试的周期性是指测试、改错、再测试、再改错。这样一个循环过程,如下图所示。
12.软件测试停止依据(理解,第五种推荐)
- 第一类标准:测试超过了预定时间,则停止测试。
- 第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测
- 第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础
- 第四类标准:正面指出停止测试的具体要求,即停止测试的标准可定义为查出某一预订数目的故障。
- 第五类标准:根据单位时间内查出故障的数量和严重程度决定是否停止测试。
13.软件测试原则(理解)
- 尽早地和及时地测试
软件缺陷分布图 软件产品说明书(需求阶段)56%、设计阶段27%、编写代码7%、其他10%。需求阶段产生缺陷最多
- 测试前应当准备好测试数据和与之对应的预期结果这两部分
测试数据 + 预期结果 = 测试用例
- 测试输入数据应包括合理的输入条件和不合理输入条件
- 程序提交测试后,应当由专门的测试人员进行测试
- 严格执行测试计划,排除测试的随意性(随意测试,丢失功能点)
回归测试更要注重测试计划
- 测试用例的所有相关预期结果做全面的检查
- 充分注意测试当中的群体现象
- 保存测试计划、测试用例、出错统计和最终分析 告,为维护工作提供充分的资料
- (补充)缺陷具有免疫性 (每修复3-4个缺陷,一般就会产生一个新的缺陷)
14.测试工作误解
-
- 误区一:软件测试技术要求不高,至少比编程容易多了
- 误区二:若发布的软件有质量问题,那是软件测试人员的错
- 误区三:软件测试是测试人员的事,与开发人员无关
- 误区四:根据软件开发瀑布模型,软件测试是开发后期的一个阶段
- 误区五:有时间就多测试一些,来不及就少测试一些
误区六:软件测试是非建设性的工作,甚至是破坏性的,测试中发现错误是对责任人工作的一种否定
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!