资源描述
测试流程陈大卫2024年3月13日课程内容软件测试流程软件测试文档测试阶段概述软件开发流程与测试流程软件测试流程不科学的测试流程在测试阶段才开始测试:l缺乏计划。l缺乏依据、准则。l随机性大。l可重复性差。软件测试流程测试与软件开发各阶段的关系:V模型软件测试流程测试h模型软件测试文档常见的测试流程:制定测试计划编写测试说明执行测试编写测试状态报告编写测试报告编写测试总结报告测试计划在开始测试之前提交,包括两种:测试计划和阶段测试计划测试计划是整个项目的测试计划,在项目策划阶段提交阶段测试计划是在各阶段测试开始前提交,描述本阶段的计划记录测试所需资源、环境、人员、培训、进度、输入准则、输出准则、度量测试计划制定测试计划的重要性:明确任务的风险:可以弄清楚测试做什么,不做什么。了解测试任务的风险有助于对潜伏的问题事先作好思想上和物质上的准备。测试计划检验测试资源:检验测试过程中所需的资源是否可以获得,如果测试计划已经编写出来,但所需资源仍未落实,那就必须及早解决。测试说明什么是测试说明?测试说明是软件项目过程中对具体的测试实施工作进行指导的文档。测试说明为什么要编写测试说明?验证需求的正确性:测试说明中规定了用以验证软件需求的测试条件,研究这些测试条件对弄清用户需求的意图是十分有益的;测试说明生成测试用例:测试用例的好坏决定着测试工作的效率,选择合适的测试用例是作好测试工作的关键;再测试:测试说明的内容对维护阶段由于各种原因的需求进行再测试时,是非常有用的。测试说明测试说明的组成结构1.整体测试设计,测试活动中的一个重点;2.具体的测试用例,指导测试执行的部分。测试用例对测试用例的理解:v测试用例是测试人员在测试执行过程中,向被测软件输入数据或执行测试操作所使用的实例。v测试用例由测试数据、测试操作、预期结果及环境设置等组成。v对于交互式系统,软件交互执行过程的控制和操作也是一种测试用例。v测试用例的设计与生成是验证软件需求的进一步实例化。测试用例测试用例设计生成的基本原则:v测试用例的代表性;v测试结果的可判定性;v测试结果的可再现性;v测试用例的有效性;v一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。测试状态报告记录测试过程中对计划的完成情况测试工作是否按进度进行某阶段测试时间较短,则可以酌情裁减测试报告测试报告包括:阶段测试报告、封样测试报告和测试报告。阶段测试报告是某一阶段测试结束后需要编写的报告,而测试报告是整个项目结束后需要编写的报告。主要记录测试结果,例如遗留问题、遗留问题对项目的影响、处理建议、度量等测试总结报告在项目结束后的对本项目测试工作的总结,包括对时间进度、人员、资源等的总结,也包括测试本项目的感受、感想等。测试阶段概述单元测试集成测试确认测试系统测试验收测试封样测试为什么要有这些测试阶段?因为我们的软件会有各种类型的错误和各种测试种类。为什么要有这些测试阶段?首先,各个模块内部可能存在各种差错。如:(1)模块接口错误;(2)局部数据结构错误;(3)边界条件设置错误;(4)覆盖条件不满足;(5)没有有效的出错处理。这些就是单元测试要解决的问题。单元测试基本属于白盒测试,即已知程序内部结构的,需要构造驱动和桩的测试。在结构化编程中单元是函数,在面向对象编成中单元是类,(不是绝对的,测试粒度应灵活)对应详细设计。单元测试环境为什么要有这些测试阶段?其次,各个模块集成后会出现一些缺陷:l各个模块的接口调用不正确;l一个模块的功能是否会对另一个模块的功能产生不利的影响;l各个子功能组合起来,能否达到预期要求的父功能;l全局数据结构是否有问题。这些是集成测试要解决的问题。集成测试基本属于黑盒测试,即不知道程序的内部结构,只验证单元之间的调用接口关系。也需要构造驱动和桩。集成测试的主要内容是单元之间的输入、输出接口、全局变量、集成后的模块功能是否受到影响等关系,对应概要设计。集成测试有自上而下、自下而上、大爆炸等几种方式。为什么要有这些测试阶段?确认测试:为了验证软件的功能及其他特性是否与用户的要求一致,即是否满足需求规格。这是我们重视用户需求的体现!确认测试属于黑盒测试,根据需求规格说明书进行测试,不需要构造驱动和桩。确认测试主要是测试软件是否满足需求规格说明书的要求。主要方法有等价类划分、边界值、因果图、正交试验设计法等。为什么要有这些测试阶段?系统测试:是把待测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的针对功能和性能的测试。系统测试在确认测试结束后,软件的功能测试就已经结束了,系统测试是在特定系统环境下进行软件测试,是系统的确认测试的一部分。和确认测试的内容一样,不过要在系统硬件环境下进行。为什么要有这些测试阶段?验收测试:主要是由用户进行的测试工作,这样能够更直接地验证我们的软件是否真正满足用户的需求。验收测试验收测试是指由用户进行的测试,包括alpha和beta测试。不是由测试部门进行测试,而是由用户进行测试,应对用户的使用情况进行收集。为什么要有这些测试阶段?封样测试:确保软件介质的正确性、完整性、安全性、可读性等,保证软件生产的正常进行。封样测试在软件通过发布评审后,可以对软件进行封样测试,此时软件功能性测试已经结束,封样测试是生产的重要前提步骤。主要包括测试完整性、安全性、可读性测试。测试结束后出封样测试报告。定义名称定义名称具体定义具体定义单元测试单元测试是针对软件设计与编码的最小单元程序模块的测试,目的在于发现各模块内部可能存在的各种差错,单元测试主要是白盒测试。集成测试在单元测试的基础上,需要将所有单元测试过的模块按照设计要求组装为系统,主要是测试各单元之间的接口关系,集成测试主要为黑盒测试。确认测试确认测试的任务是验证软件的功能和性能及其他特性是否与用户的要求一致,确认测试主要是黑盒测试。系统测试系统测试主要是考虑在对软件功能做确认测试的基础上,进一步考虑软件运行的软件硬件环境(包括网络和外设环境)因素对软件各质量特性造成的影响。验收测试验收测试主要是由用户主导进行的测试工作,分为测试和测试两种。测试测试是在受控的环境下由用户代表进行的测试,一般由内部客户完成。测试测试是由软件用户在不受控的环境中进行的测试,一般由外部最终用户完成。封样测试封样测试是交付软件产品的生产母盘的过程,目的是验证交付生产和保存母盘的完整性、正确性、可读性和数据安全性。回归测试回归测试是指当软件或环境更改后再次对已测试过的软件功能的测试。选择性重新测试,目的是检测系统或系统部件在修改时所引起的故障,用以验证上述修改未引起不希望的有害效果,或证明修改后的系统或系统部件仍满足规定的需求。回归测试理论上可以自动执行以便它能反映条件的变化。回归测试回归测试的判定如下:不测试新的功能测试用于确定:旧的Bug没有重新出现;没有引入新的Bug;功能没有丢失或破坏。参考资料软件工程-实践者的研究方法(美 ROGER S PRESSMAN著)面向对象系统的测试(美 ROBERT V BINDER著联想利泰软件测试规范(联想利泰软件测试中心 著)问题与讨论
展开阅读全文