您好,欢迎访问三七文档
1.软件测试流程1.1.软件测试整体流程首先看一下软件生命周期。软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析,软件设计,编码,测试,软件发布维护的过程。如下图所示:在学习软件测试整体流程的过程中,我们要明确这样几个问题:测试计划的前期是否需要需求调研?测试具体分几个阶段,每个阶段执行的依据是什么?每个阶段的作用是什么?每个阶段都需要生成哪些文档,这些文档对整个测试工作和产品的质量保障起到哪些作用?测试工作的各个阶段:软件测试工作必须要通过计划测试、设计测试、执行测试、评估测试几个阶段来完成。计划测试阶段需要整理测试需求、制定测试计划;设计测试阶段要设计测试用例和测试过程,要保证测试用例完全覆盖测试需求;要根据测试用例实现具体的自动化脚本或者手工的操作步骤;执行测试阶段则通过自动化测试工具或人手工来执行那些自动化脚本或手工的操作步骤;评估阶段则要对软件的质量和测试工作自身的质量做出一个客观的评价。软件测试的整体流程具体如下图所示:需求阶段:设计编码阶段:集成、系统、验收阶段:开发生命周期中的验证活动:测试过程中文档如下表所示:测试阶段编写人员编写依据生成文档测试计划测试经理或测试组长《需求规格说明书》或界面原型《测试计划》测试设计测试设计人员《需求规格说明书》或界面原型《测试用例》设计测试策略测试实施测试执行人员《需求规格说明书》《测试用例》《缺陷报告》测试评估测试经理或测试组长《测试总结报告》测试阶段与测试类型如下表所示:测试阶段测试类型执行人员单元测试模块功能测试,包含部分接口测试、路径测试开发人员集成测试接口测试、路径测试、含部分功能测试开发人员,测试人员系统测试功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试测试人员验收测试对于实际项目基本同上,并包含文档测试;对于软件产品主要测试相关技术文档测试人员,可能包含用户软件测试流程,集成、系统、验收如下图所示:1.2.单元测试目标:检验程序最小单元有无错误(类、文件、窗口、函数、菜单、报表或一个存储过程)接口、数据结构、边界、覆盖、逻辑检验单元编码与设计十分吻合依据:详细设计,编码方法:白盒测试测试执行人:开发工程师进入条件:代码无错误地通过编译或汇编。测试内容:(1)模块接口:对被测模块,信息是否能正确地流入和流出。(2)局部数据结构:模块的工作过程中,其内部的数据能否保持其完整性。(3)边界条件-----在边界上模块是否能正常工作。(4)覆盖条件------模块的运行是否达到了规定的逻辑覆盖。(5)出错处理-----检查模块的错误处理设施是否有效。具体要求:(1)在进行单元测试之前,由项目负责人决定是否进行静态分析。(2)单元测试的主要形式是结构测试。(3)单元测试的测试计划应该根据被测单元的性质而制订:如对系统控制单元应主要采用结构测试;对复杂的计算单元应主要采用算法分析测试用例;对界面单元就应该测试各种选项的组合。(4)语句覆盖率应达到100%。(5)分支覆盖率应达到85%。(6)单元测试由开发部负责开展。单元测试执行:在进行单元测试时,需设置若干辅助测试模块。辅助模块有两种:一种是驱动模块(Driver),用以模拟被测试模块的上级模块。另一种是桩模块(Stub),用以模拟被测模块工作过程中所调用的模块。驱动模块和桩模块都是“替身”模块,而不是软件产品的真正组成的部分。下图显示了一般的单元测试环境。单元测试人员:单元测试一般由开发设计人员本身完成。一般由开发组在组长的监督下进行,由编写该单元的开发设计者设计所需的测试用例和测试数据,来测试该单元并修改缺陷。开发组组长负责保证使用合适的测试技术,在合理的质量控制和监督下执行充分的测试。1.3.集成测试将经过单元测试的模块按设计要求组装起来,组合成所规定的软件系统的过程称为“集成”。目标:检验组成系统的模块接口有无错误代码实现的系统设计与需求定义是否吻合时机:主要的单元测试完成后,经常与单元测试同步进行方法:黑盒测试,白盒测试责任:开发工程师、测试工程师集成测试重点:1、各个模块连接起来后,穿过模块接口的数据是否会丢失,是否能够按期望值传递给另外一个模块;2、各个模块连接起来后,需要判断是否仍然存在单元测试时所没发现的资源竞争问题;3、分别通过单元测试的子功能模块集成到一起能否实现所期望的父功能;4、兼容性,检查引入一个模块后,是否对其他与之相关的模块产生负面影响;5、全局数据结构是否正确,是否被不正常的修改;驱动模块被测模块模拟被调用子模块结果……界面局部数据结构边界条件独立路径错误处理路径测试用例6、集成后,每个模块的误差是否会累计扩大,是否会达到了不可接受的程度。集成测试方式:将模块连接起来组成一个可运行的系统,有两种方法;非渐增式测试和渐增式测试。(1)非渐增式测试(Non-incrementaltesting)当每个模块都进行单元测试后,按照软件结构要求把所有模块连接起来织成一个完整的程序,对全程序进行测试。这种测试方法叫非渐增式测试。例如,有一块系统结构,如图(a)所示,其单元测试和集成顺序如图(b)所示。模块d1、d2、d3、d4、d5是对各个模块做单元测试时建立的驱动模块,s1、s2、s3、s4、s5是为单元测试而建立的桩模块。这种一次性集成方式将所测模块连接起来进行测试,但是一次试运行成功地可能性并不大。其结果如果存在错误,不易找到原因,查错和改错都会遇到困难。(2)渐增式集成方式逐次将未曾测试的模块和已测试的模块(或子系统)结合成程序包,然后将这些模块集成为较大系统,在集成的过程中边连接边测试,以发现连接过程中产生的问题。最后逐步集成为要求的软件系统。根据集成的过程又可以分为自顶向下集成自底向上集成三明治”集成法自顶向下的集成方式这种集成方式是将模块按系统的程序结构,沿控制层次自顶向下进行集成。步骤:(1)以主模块为所测模块兼驱动模块,所有直属于主模块的下属模块全部用桩模块进行模拟测试。(2)采用深度优先或宽度优先的策略,用实际模块替换相应桩模块,再用桩代替它们的直接下属模块,与已测试的模块或子系统集成为新的子系统。如下图(3)进行回归测试(即重新执行以前做过的全部测试或部分测试),排除集成过程中引起错误的可能。(4)判断是否所有的模块都已集成到系统中,是则结束测试,否则转到(2)去执行。自底向上的集成方式这种集成的方式是从程序模块结构的最底层的模块开始集成和测试。因为模块是自底向上进行集成,对于一个给定的模块,它的子模块(包括子模块的所有下属模块)已经集成并测试完成,所以不再需要桩模块。自底向上集成的步骤如下:(1)由驱动模块控制最底层模块的并行测试,也可以把最底层模块组合成实现某一特定软件功能的簇,由驱动模块控制它进行测试。(2)用实际模块代替驱动模块,与它已测试的直属子模块集成为子系统。(3)为子系统配备驱动模块,进行新的测试。(4)判断是否已集成到达主模块,是否结束测试,否则执行(2)。下图说明自底向上集成和测试的顺序:1.4.系统测试目标:检验组成整个系统的代码、以及系统的软硬件配合有无错误代码实现的系统与用户需求是否吻合检验系统的文档等各种是否完整、有效模拟验收测试的要求,检查系统是否符合用户的验收标准时机:多数集成测试完成后方法:黑盒测试责任:测试工程师1.5.验收测试目标:使客户验收签字系统是否符合事先约定的验收标准时机:系统测试完成后,在项目组看来开发和测试工作已经全部完成,可以交付使用方法:黑盒测试责任:产品经理或其他高级经理开发工程师测试工程师用户1.6.α测试与β测试(beta测试)α测试是由用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。α测试可以在软件编码结束时开始,或在模块(子系统)测试完成后开始,也可在确认测试过程中软件达到一定的稳定和可靠程度之后再开始。α测试需要开发人员参与。β测试是由软件用户在实际使用环境下进行的测试。这些用户通常是与公司签定了一定合同的外部用户,用户在使用该产品时愿意返回有关错误信息给开发者。β测试时,开发人员不在测试现场。只有当α测试达到一定可靠程度时,才能开始β测试。β测试通常由主持产品发行的人员来管理。α测试和β测试区别α测试——尽量模拟用户的使用环境β测试——真实用户的使用环境α测试——开发方测试β测试——最终用户测试问题:Beta测试属于验收测试吗答:是!所谓验收测试(acceptancetest)是在产品发布之前所进行的软件测试活动,它是技术测试的最后一个阶段,通过了验收测试,产品就会进入发布阶段.α、β测试事实上,软件开发人员不可能完全预见用户实际使用程序的情况。例如,用户可能错误的理解命令,或提供一些奇怪的数据组合,亦可能对设计者自认明了的输出信息迷惑不解,等等。因此,软件是否真正满足最终用户的要求,应由用户进行一系列“验收测试”。验收测试既可以是非正式的测试,也可以有计划、有系统的测试。测试过程总结,如下图所示:2.常用测试技术首先看一下软件测试的分类:按测试阶段分类单元测试、集成测试、系统测试、验收测试按测试策略分类黑盒/白盒测试、动态/静态测试、手工/自动测试按测试技术方法分类功能测试、性能测试、压力测试、易用性测试、安装测试、容错性测试、兼容性测试、安全性测试黑盒测试/白盒测试---从要不要看代码来区分动态测试/静态测试--从要不要运行软件来区分而常用的测试技术如下图所示:2.1.功能测试功能测试:使用测试应用系统的功能需求的黑盒测试方法。这类测试应由测试员做,这并不意味着程序员在发布前不必检查他们的代码能否工作。运行系统,查看其功能是否正常实现,是否满足需求。对于需求没有涵盖,但功能实现上不合理的地方(从用户角度考虑)与项目经理沟通,进行系统完善。功能测试参考:参考《需求分析》、《规格说明书》、《测试计划》、《测试用例》等文档多与开发人员、用户及其他项目相关人员沟通功能测试的控件操作,如下图所示:控件中文本框测试:从输入数据的内容,长度,类型,格式等几个方面来考虑。文本框如下图所示:控件中按钮测试:按钮功能是否实现提示信息是否正确对于不符合业务背景的输入数据是否有相应的处理按钮如下图所示:控件中单选框测试:单选按钮是否同时只能选中一个各单选按钮功能是否能正确完成是否有默认被选中的选项单选框如下图所示:控件中updown+文本框测试:上下箭头的控制边界值的测试默认值的测试非法输入字符的测试如下图所示:控件中组合列表框测试:条目内容的检查条目功能的是否实现列表框中是否能输入数据控件中复选框测试:多个复选框可以同时选中。多个复选框可以被部分选中。多个复选框可以都不被选中。例如,即不选轮廓,也不选阴影字体逐一执行每个复选框的功能。每个复选框都可能有三种状态:选中、未选中和部分选中。控件中列表框测试:条目内容正确。逐一执行列表框中每个条目的功能。列表框内容多要使用滚动条。列表框允许多选时,要分别检查按Shift选中条目、按Ctrl选中条目和直接用鼠标选中多项条目。列表框如下图所示:控件中滚动条测试:滚动条是否能拖动滚动条拖动时屏幕刷新情况滚动条拖动时显示信息的显示滚动条的上下按钮是否可用如下图所示:控件组合操作:即各种控件的组合使用:控件间的相互作用Tab键的顺序热键的使用回车键和ESC键的使用控件组合后功能的实现如下图所示:对登录操作测试如下图所示:输入正确的用户名和密码,点“确定”,用户可以正确登录输入不正确的用户名,正确的密码,点“确定”。系统提示错误。输入正确的用户名,不正确的密码,点“确定”。系统提示错误。输入不正确的用户名,不正确的密码,点“确定”。系统提示错误。输入三次错误的登录信息,自动退出。输入允许的最大长度为20个字符的用户名和最大长度为20个字符的密码,可以正确登录输入超过允许的最大长度的用户名和最大长度的密码。
本文标题:软件测试流程
链接地址:https://www.777doc.com/doc-3075189 .html