******十八 ******、软设笔记【软件工程】-软件测试基础、准则、分类、阶段

软件测试
软件测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
*软件的正确性证明尚未得到根本的解决,软件测试仍是发现软件错误和缺陷的主要手段。


一、软件测试基础
测试用例是由测试数据和预期结果构成的。
*为了发现程序中的错误,应竭力设计能暴露错误的测试用例
*好的测试用例是发现至今为止尚未发现的错误。
*一次成功的测试是发现了至今尚未发现的错误的测试。


二、软件测试准则
*应该尽早的、不断的进行测试,软件测试贯穿于开发过程的始终。
*所以的测试都应该能追溯到用户的需求。
*应该从小规模测试开始,并逐步进行大规模测试。
*应该远在测试之前就制定出测试计划。
*80%的错误可能出现在20%的程序模块中。
*应该由独立的第三方从事测试工作。
*对非法和非预期的输入数据也要像合法数据一样编写测试用例。
*检查软件是否做了应该做的事仅是成功一半,另一半是看软件是否做了不该做的事。
*在规划测试时不要设想程序中不会查出错误。
*测试只能证明软件中有错误,不能证明软件中没有错误。


三、软件测试分类
从测试阶段分:单元测试、集成测试、确认测试和系统测试
从测试方法分:白盒测试、黑盒测试
回归测试是指修改了旧代码,重新进行全部或部分以前的测试用例,以确认修改没有引入新的错误或导致其他代码产生错误。


四、测试的阶段
根据测试的目的、阶段的不同,测试分为:
*单元测试
*集成测试
*确认测试
*系统测试


1.单元测试
单元测试又称为模块测试,是针对软件设计的最小单位(模块)进行正确性检验的测试工作。
目的在于坚持每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,以及发现各模块内部可能存在的各种错误。
*单元测试通常由开发人员自己负责。
*单元测试要借助驱动模块(相当于用于测试模拟的主程序)和桩模块(子模块)来完成。
*单元测试的计划是在软件详细设计阶段完成的。
*单元测试一般使用白盒测试方法。


模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其他模块。这些辅助模块分为两种:
(1)驱动模块:相当于被测模块的主程序。它接受测试数据,把这些数据传送给被测模块,最后输出实测结果。
(2)桩模块:用于代替被测模块调用的子模块。桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不允许什么事情也不做。


2.集成测试
集成测试也称为组装测试、联合测试。它将已通过单元测试的模块集成在一起,主要测试模块之间的协作性。
从组装策略而言,可以分为一次性组装和增量式组装(包括自顶向下、自底向上即混合式)两种。
*集成测试计划是在软件概要设计阶段完成的。
*集成测试一般采用黑盒测试方法。
*自顶向下进行组装,不需要驱动模块。
*自底向上进行组装,不需要桩模块。
*在每个版本提交时。都需要进行“冒烟”测试,即对程序主要功能进行验证。冒烟测试也称为版本验证测试或提交测试。


3.确认测试
确认测试也称为有效性测试,主要包括验证软件的功能、性能及其他特性是否与用户要求(需求)一致。
确认测试计划是在需求分析阶段完成的。


根据用户的参与程度,包括以下3种类型:
(1)内部确认测试:由软件开发组织内部按软件需求说明书进行测试。
(2)Alpha测试:由用户在开发环境下进行测试。
(3)Beta测试:由用户在实际使用环境下进行测试。


4.系统测试
是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。
系统测试计划在系统分析阶段(需求分析阶段)完成。


系统测试的内容包括:
*功能测试
*性能测试·
*健壮性测试
*用户界面测试
*安全性测试
*安装与反安装测试
posted @ 2018-05-12 11:28  CHANGEMAX  阅读(70)  评论(0编辑  收藏  举报