按照开发阶段划分,软件测试可分为单元测试、集成测试,系统测试和验收测试。
单元测试:针对每个单元的测试, 以确保每个模块能正常工作为目标。
集成测试:对已测试过的模块进行组装,进行集成测试。目的在于检验与软件设计相关的程序结构问题。
确认(有效性)测试:是检验所开发的软件能否满足所有功能和性能需求的最后手段。有的划分方法中,也将确认测试合并入系统测试中。
一、集成测试基本概念
1.把单独的软件模块结合在一起作为整体接受测试,其目标是利用已通过单元测试的构件建立设计中描述的程序结构。
2.集成测试的主要任务:
将各模块连接起来,检查模块相互调用时,数据经过接口是否丢失;
将各个子功能组合起来,检查能否达到预期要求的各项功能;
一个模块的功能是否会对另一个模块的功能产生不利的影响;
全局数据结构是否有问题,会不会被异常修改;
单个模块的误差积累起来,是否被放大,从而达到不可接受的程度。
二、集成测试过程
1.计划阶段:
依据需求规格说明书、概要设计文档和开发计划,拟定软件集成测试计划;
2.设计阶段
根据被测对象的结构、待集成模块、接口,集成测试策略、测试工具进行分析,拟定集成测试计划
3.实现阶段
主要进行集成测试设计和集成测试代码设计
4.执行阶段
执行测试,生成代码报告
三、集成测试原则
1.所有公共接口都要被测试到
2.关键模块必须进行充分的测试
3.集成测试应该按一定的层次进行
4.集成测试的策略应该综合考虑质量、进度、成本
5.当测试计划中的结束标准满足时,集成测试结束
6.集成测试根据集成测试的计划和方案进行,放着测试的随意性
7.项目管理者保证测试用例经过审查
8.测试的结果应该如实的被记录
四、测试技术和步骤
1.技术:
黑盒测试技术为主,白盒测试技术为辅(灰盒测试技术)
布骤:
与集成测试策略相关
2.集成测试策略
(1)基于功能分解的集成测试
(2)非增量型
(3)瞬间集成:
又称大爆炸测试、一次性集成。首先对每个模块分别进行模块测试,然后将 所有模块集成起来在一起进行测试,最终得到要求的软件系统。
(4)增量式:
特点:
将程序分成小的部分进行构造和测试;
优点:
1.错误容易分离和修正;
2.接口容易进行彻底测试;
缺点:
会有额外开销,但能大大减少发现和修正错误的时间。
(5)基于调用图的集成测试
(6)基于路径的集成测试
五、其他集成测试策略
1.层次集成
2.客户/服务器集成
3.分布服务集成
4.高频集成
六、集成测试总结
集成测试是一个必要的测试阶段:
从将两个组件集成到一起开始,到所有系统组件在一起运行位置的所有测试活动,都是集成测试阶段的一部分
集成测试能减少系统测试阶段的缺陷
系统测试:系统测试是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行。
一、主要内容包括
功能测试:
即软件系统的功能是否正确,依据产品的需求文档
健壮性测试:即软件系统在异常情况下能否正常运行。
健壮性有两层含义:
1.容错能力。
2.恢复能力
二、分类
1.恢复测试
恢复测试作为一种系统测试,主要关注导致软件运行失败的各种条件,并验证其恢复过程能否正确执行。在特定情况下,系统需具备容错能力。另外,系统失效必须在规定时间段内被更正,否则将会导致严重的经济损失。
2.安全测试
安全测试用来验证系统内部的保护机制,以防止非法侵入。在安全测试中,测试人员扮演试图侵入系统的角色,采用各种办法试图突破防线。因此系统安全设计的准则是要想方设法使侵入系统所需的代价更加昂贵。
3.压力测试
压力测试是指在正常资源下使用异常的访问量、频率或数据量来执行系统。在压力测试中可执行以下测试:
①如果平均中断数量是每秒一到两次,那么设计特殊的测试用例产生每秒十次中断。
②输入数据量增加一个量级,确定输入功能将如何响应。
③在虚拟操作系统下,产生需要最大内存量或其它资源的测试用例,或产生需要过量磁盘存储的数据。
三、步骤
Step1 制定系统测试计划
系统测试小组各成员共同协商测试计划。测试组长按照指定的模板起草《系统测试计划》。该计划主要包括:
测试范围(内容)
测试方法
测试环境与辅助工具
测试完成准则
人员与任务表
项目经理审批《系统测试计划》。该计划被批准后,转向Step2。
Step2 设计系统测试用例
系统测试小组各成员依据《系统测试计划》和指定的模板,设计(撰写)《系统测试用例》。
测试组长邀请开发人员和同行专家,对《系统测试用例》进行技术评审。该测试用例通过技术评审后,转向 Step3。
Step3 执行系统测试
系统测试小组各成员依据《系统测试计划》和《系统测试用例》执行系统测试。
将测试结果记录在《系统测试报告》中,用“缺陷管理工具”来管理所发现的缺陷,并及时通报给开发人员。
Step4 缺陷管理与改错
从Step1至Step3,任何人发现软件系统中的缺陷时都必须使用指定的“缺陷管理工具”。该工具将记录所有缺陷的状态信息,并可以自动产生《缺陷管理报告》。
开发人员及时消除已经发现的缺陷。
开发人员消除缺陷之后应当马上进行回归测试,以确保不会引入新的缺陷。
四、目标和原则
目标:
1. 确保系统测试的活动是按计划进行的;
2. 验证软件产品是否与系统需求用例不相符合或与之矛盾;
3. 建立完善的系统测试缺陷记录跟踪库;
4. 确保软件系统测试活动及其结果及时通知相关小组和个人。
原则:
1.测试机构要独立;
2.要精心设计测试计划,包括负载测试、压力测试、用户界面测试、可用性测试、逆向测试、安装测试、验收测试;
3.要进行回归测试;
4.测试要遵从经济性原则。
五、方针
1、 为项目指定一个测试工程师负责贯彻和执行系统测试活动
2、 测试组向各事业部总经理/项目经理报告系统测试的执行状况
3、 系统测试活动遵循文档化的标准和过程
4、 向外部用户提供经系统测试验收通过的预部署及技术支持
5、 建立相应项目的(BUG)缺陷库,用于系统测试阶段项目不同生命周期的缺陷记录和缺陷状态跟踪
6、 定期的对系统测试活动及结果进行评估,向各事业部经理/项目办总监/项目经理汇报/提供项目的产品质量信息及数据
验收测试可以分成Alpha测试和Beta测试。
Alpha测试是由用户在开发环境下完成的测试,Beta测试是由用户在用户环境下完成的测试。
一、验收测试过程和主要内容
1.验收测试的概念
验收测试(Acceptance Test):在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动它是技术测试的最后一个阶段,也称为交付测试。
2.验收测试的过程和内容
前提:
系统或软件产品已通过了系统测试的软件系统。
测试内容:
验证系统是否达到了用户需求规格说明书(可能包括项目或产品验收准则)中的要求,测试试图尽可能地发现软件中存留的缺陷,从而为软件进一步改善提供帮助,并保证系统或软件产品最终被用户接受。主要包括易用性测试、兼容性测试、安装测试、文档(如用户手册、操作手册等)测试等几个方面的内容。
3.测试步骤
制定测试计划,测试项,测试策略及验收通过准则,并经过客户参与的计划评审。
建立测试环境,设计测试用例,并经过评审。
准备测试数据,执行测试用例,记录测试结果。
分析测试结果,根据验收通过准则分析测试结果,作出验收是否通过及测试评价。
测试项目通过
测试项目没有通过,并且不存在变通方法,需要很大的修改
测试项目没有通过,但存在变通方法,在维护后期或下一个版本改进
测试项目无法评估或者无法给出完整的评估。此时必须给出原因。如果是因为该测试项目没有说明清楚,应该修改测试计划。
提交测试报告
4.验收标准和注意事项
验收测试完成标准:
完全执行了验收测试计划中的每个测试用例。
在验收测试中发现的错误已经得到修改并且通过了测试或者经过评估留待下一版本中修改。
完成软件验收测试报告。
注意事项:
必须编写正式的、单独的验收测试报告
验收测试必须在实际用户运行环境中进行
由用户和测试部门共同执行。如公司自开发产品,应由测试人员,产品设计部门,市场部门等共同进行
三、用户界面和可用性测试
1.用户界面7个要素: 符合标准和规范、直观性、一致性、 灵活性、 舒适性、 正确性、 实用性
四、兼容性测试
1.兼容性测试的概念:
软件兼容性测试是指验证软件之间是否正确地交互和共享信息。
兼容性包括:
1.硬件兼容。
2.软件之间兼容
3.向前向后兼容
向后兼容是指可以使用软件的以前版本。
向前兼容指的是可以使用软件的未来版本。
3.多版本的测试
每一个浏览器和版本支持的特性上都有细微的差别,在不同的操作系统上表现也有所不同。
五、可安装性和可恢复性测试
1.可恢复性测试
恢复测试主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误或重新启动系统。
恢复测试首先要通过各种手段,让软件强制性地发生故障,然后验证系统是否能尽快恢复。
对于自动恢复需验证重新初始化、检查点、数据恢复和重新启动等机制的正确性;
对于人工干预的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。
六、文档测试
1.验收测试报告和用户验收测试
根据用户报告异常情况,进行改错和完善。