1.软件测试有一下6种
- 单元测试
- 集成测试
- 确认测试
- 系统测试
- 验收测试
- 回归测试
1.1. 流程包括
软件测试过程用于定义软件测试的流程和方法。
- 测试计划:测试需求、内容、人员、事件等。
- 测试设计:测试需求分解,设计测试用例
- 测试开发:就建立可重复使用的自动测试过程。
- 测试执行:执行测试过程,管理缺陷。
- 测试评估:综合评价。
2.测试执行的步骤
- 单元测试:集中对每一个程序单元进行测试,检查各个模块的功能。
- 集成测试:已通过单元测试的模块组装起来进行测试,测试程序结构。
- 确认测试:检查软件是否满足各种功能和性能需求,软件配置是否正确。
- 系统测试:将软件纳入实际运行环境中,与其他系统(数据库,硬件)组合在一起测试。
- 验收测试:最后一道工序,突出用户的作用。
- 回归测试:指修改了旧代码后,重新进行测试以确定修改没有引入新的错误或导致其他代码参生错误。
3. 单元测试
- 单元测试又称模块测试,主要测试廉设计的最小单位(模块或组件)在语法、格式或逻辑等发面的差错以及是否符合功能要求。
- 这个阶段更多关注程序实现的细节,需要从程序的内部结构出发设计测试用例。
- 软件测试阶段最早期的测试活动。
3.1 单元测试的主要任务
- 单元测试的主要依据是源程序代码和详细设计说明书,了解该模块的I/O条件和模块的逻辑结构。
- 主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例使之对任何合理的和不和理的输入都能鉴别和响应。
3.2 单元测试主要的5个任务
- 模块接口测试
- 局部数据结构测试
- 路劲测试
- 错误处理测试
- 边界条件测试
3.3单元测试的辅助模块
单元并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,因此可以使用一些辅助模块去模拟与被测模块相关的其他模块。
辅助模块分为两种
驱动模块、桩模块
- 驱动模块:用来模拟被测模块的上级模块,相当于被测模块的主程序,用于接受测试数据,并把这些数据传送给被测模块,启动被测模块,最后输出实测结果。
- 桩模块:用来模拟被测模块工作过程中所调用的模块。桩模块由被测模块调用,一般只进行很少的数据处理,以便检验被测模块与其夏季模块的接口。桩模块不需要把子模块的所有功能都带进来,但不允许什么事都不做。
-
被测模块和于它相关的驱动模块及桩模块共同构成一个“测试环境”。
4. 集成测试
- 些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作,程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。
- 集成测试就是针对这个过程,按模块之间的依赖接口关系图进行的测试。
- 将经过单元测试的模块连接起来,组成软件系统的过程。
4.1 集成测试的主要任务
集成测试是组装软件的系统测试技术之一,按设计要求把通过单元测试的各个模块组装在一起之后,要求软件系统符合实际软件结构,发现与接口有关的各种错误。
4.2集成测试的主要任务拟解决的5个问题
- 将各模块连接起来,检查模块相互调用时数据经过接口是否丢失。
- 将各个子功能组合起来,检查能否达到预期功能。
- 一个模块的功能是否会对另一个模块产生不利影响。
- 全局结构是否有问题,会不会被异常修改。
- 单个模块的误差积累起来,是否会被放大,以致于达到不可接受的程度。
4.3 集成测试的两种测试方法
黑盒为主,辅以白盒。
-
非增量式集成测试方法
对所有模块进行个别的单元测试后,按程序结构图将各个模块连接起来,把连接后的程序当作一个整体进行测试。 -
增量式集成测试方法
逐步实现的,集成测试也是逐步完成的,也可以说它将单元测试与集成测试结合起来进行。
5.确认测试
1.验证软件的有效性,即软件的功能和性能及其他特点是否与用户要求一致。
2.在软件需求规格说明书描述了全部用户可见的
3.软件属性,其中有一节叫做有效性准则,它包含的信息是软件确认测试的基础。
- 进行有效性测试(功能测试)
- 软件配置复査
6. 系统测试
- 将通过确认测试的软件,作为基于整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的严格有效的测试以发现软件的潜在问题,保证系统的运行。
- 区别于确认测试。确认测试不考虑各种环境,及非功能问题,如安全性、可靠性、性能等。
6.1 分类
- 强度测试:系统故障的情况下,可运行到任何程度。
- 性能测试:响应、时间、吞吐量
- 恢复测试:克服硬件故障后,能否继续运行。
- 安全测试:安全性、保密性,检查非法入侵。
- 可靠性测试:完成功能的能力。
- 安装测试:集成用户的新软件到系统中。
- 容量测试:某项指标的极限值(如最大用户数)
- 文档测试:用户文档的正确性。
7. 验收测试
- 验收测试是软件产品完成系统测试后,在发布之前所进行的软件测试活动,技术测试的最后一个阶段。
- 验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
- 验收测试多采用α测试和β测试,以发现可能只有最终用户才能发现的错误。
8. 回归测试
- 任何阶段,只要软件发生了改变,就可能带来新的缺陷。这里的改变,可以是错误的修改,也可能是新模块的加入。
- 重新执行已经做过的测试的某个子集,是一种验证己变更的系统的完整性与正确性的测试技术,以保证修改没有引入新的错误或者发现由于更改而引起的之前未发现的错误,保证改变没有带来非预期的副作用。
- 软件开发的各个阶段会进行多次回归测试。