




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件测试流程1.软件测试流程1.1.软件测试整体流程首先看一下软件生命周期。软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析,软件设计,编码,测试,软件发布维护的过程。如下图所示:b5E2RGbCAP在学习软件测试整体流程的过程中,我们要明确这样几个问题:测试计划的前期是否需要需求调研?测试具体分几个阶段,每个阶段执行的依据是什么?每个阶段的作用是什么?每个阶段都需要生成哪些文档,这些文档对整个测试工作和产品的质量保障起到哪些作用?测试工作的各个阶段:软件测试工作必须要通过计划测试、设计测试、执行测试、评估测试几个阶段来完成。计划测试阶段需要整理测试需求、制定测试计划;设计测试
2、阶段要设计测试用例和测试过程,要保证测试用例完全覆盖测试需求;要根据测试用例实现具体的自动化脚本或者手工的操作步骤;p1EanqFDPw执行测试阶段则通过自动化测试工具或人手工来执行那些自动化脚本或手工的操作步骤;评估阶段则要对软件的质量和测试工作自身的质量做出一个客观的评价。软件测试的整体流程具体如下图所示:需求阶段:设计编码阶段:集成、系统、验收阶段:开发生命周期中的验证活动:软件测试流程,集成、系统、验收如下图所示:1.2.单元测试目标:检验程序最小单元有无错误(类、文件、窗口、函数、菜单、报表或一个存储过程)接口、数据结构、边界、覆盖、逻辑检验单元编码与设计十分吻合依据:详细设计,编码
3、方法:白盒测试测试执行人:开发工程师进入条件:代码无错误地通过编译或汇编。测试内容:(1) 模块接口:对被测模块,信息是否能正确地流入和流出。(2) 局部数据结构:模块的工作过程中,其内部的数据能否保持其完整性。(3) 边界条件-在边界上模块是否能正常工作。(4) 覆盖条件-模块的运行是否达到了规定的逻辑覆盖。(5) 出错处理-检查模块的错误处理设施是否有效。具体要求:(1) 在进行单元测试之前,由项目负责人决定是否进行静态分析。(2) 单元测试的主要形式是结构测试。(3) 单元测试的测试计划应该根据被测单元的性质而制订:如对系统控制单元应主要采用结构测试;对复杂的计算单元应主要采用算法分析测
4、试用例;对界面单元就应该测试各种选项的组合。DXDiTa9E3d(4) 语句覆盖率应达到100%。(5) 分支覆盖率应达到85%。(6) 单元测试由开发部负责开展。单元测试执行:在进行单元测试时,需设置若干辅助测试模块。辅助模块有两种:一种是驱动模块(Driver),用以模拟被测试模块的上级模块。另一种是桩模块(Stub),用以模拟被测模块工作过程中所调用的模块。驱动模块和桩模块都是“替身”模块,而不是软件产品的真正组成的部分。下图显示了一般的单元测试环境。单元测试一般由开发设计人员本身完成。一般由开发组在组长的监督下进行,由编写该单元的开发设计者设计所需的测试用例和测试数据,来测试该单元并修
5、改缺陷。RTCrpUDGiT开发组组长负责保证使用合适的测试技术,在合理的质量控制和监督下执行充分的测试。1.3.集成测试将经过单元测试的模块按设计要求组装起来,组合成所规定的软件系统的过程称为“集成”。目标:检验组成系统的模块接口有无错误代码实现的系统设计与需求定义是否吻合时机:主要的单元测试完成后,经常与单元测试同步进行方法:黑盒测试,白盒测试责任:开发工程师、测试工程师集成测试重点:1、各个模块连接起来后,穿过模块接口的数据是否会丢失,是否能够按期望值传递给另外一个模块;2、各个模块连接起来后,需要判断是否仍然存在单元测试时所没发现的资源竞争问题;3、分别通过单元测试的子功能模块集成到一
6、起能否实现所期望的父功能;4、兼容性,检查引入一个模块后,是否对其他与之相关的模块产生负面影响;5、全局数据结构是否正确,是否被不正常的修改;6、集成后,每个模块的误差是否会累计扩大,是否会达到了不可接受的程度。集成测试方式:将模块连接起来组成一个可运行的系统,有两种方法;非渐增式测试和渐增式测试。(1)非渐增式测试(Non-incremental testing)当每个模块都进行单元测试后,按照软件结构要求把所有模块连接起来织成一个完整的程序,对全程序进行测试。这种测试方法叫非渐增式测试。5PCzVD7HxA例如,有一块系统结构,如图(a)所示,其单元测试和集成顺序如图(b)所示。模块d1、
7、d2、d3、d4、d5是对各个模块做单元测试时建立的驱动模块,s1、s2、s3、s4、s5是为单元测试而建立的桩模块。jLBHrnAILg这种一次性集成方式将所测模块连接起来进行测试,但是一次试运行成功地可能性并不大。其结果如果存在错误,不易找到原因,查错和改错都会遇到困难。xHAQX74J0X(2)渐增式集成方式逐次将未曾测试的模块和已测试的模块(或子系统)结合成程序包,然后将这些模块集成为较大系统,在集成的过程中边连接边测试,以发现连接过程中产生的问题。最后逐步集成为要求的软件系统。LDAYtRyKfE根据集成的过程又可以分为自顶向下集成自底向上集成三明治”集成法自顶向下的集成方式这种集成
8、方式是将模块按系统的程序结构,沿控制层次自顶向下进行集成。步骤:(1)以主模块为所测模块兼驱动模块,所有直属于主模块的下属模块全部用桩模块进行模拟测试。(2)采用深度优先或宽度优先的策略,用实际模块替换相应桩模块,再用桩代替它们的直接下属模块,与已测试的模块或子系统集成为新的子系统。如下图Zzz6ZB2Ltk(3)进行回归测试(即重新执行以前做过的全部测试或部分测试),排除集成过程中引起错误的可能。(4)判断是否所有的模块都已集成到系统中,是则结束测试,否则转到(2)去执行。自底向上的集成方式这种集成的方式是从程序模块结构的最底层的模块开始集成和测试。因为模块是自底向上进行集成,对于一个给定的
9、模块,它的子模块(包括子模块的所有下属模块)已经集成并测试完成,所以不再需要桩模块。自底向上集成的步骤如下:dvzfvkwMI1(1)由驱动模块控制最底层模块的并行测试,也可以把最底层模块组合成实现某一特定软件功能的簇,由驱动模块控制它进行测试。rqyn14ZNXI(2)用实际模块代替驱动模块,与它已测试的直属子模块集成为子系统。(3)为子系统配备驱动模块,进行新的测试。(4)判断是否已集成到达主模块,是否结束测试,否则执行(2)。下图说明自底向上集成和测试的顺序:1.4.系统测试目标:检验组成整个系统的代码、以及系统的软硬件配合有无错误代码实现的系统与用户需求是否吻合检验系统的文档等各种是否
10、完整、有效模拟验收测试的要求,检查系统是否符合用户的验收标准时机:多数集成测试完成后方法:黑盒测试责任:测试工程师1.5.验收测试目标:使客户验收签字系统是否符合事先约定的验收标准时机:系统测试完成后,在项目组看来开发和测试工作已经全部完成,可以交付使用方法:黑盒测试责任:产品经理或其他高级经理开发工程师测试工程师用户1.6.测试与测试(beta 测试)测试是由用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。测试可以在软件编码结束时开始,或在模块(子系统)测试完成后开始,也可在确认测试过程中软件达到一定的稳定和可靠程度之后再开始。EmxvxOtOco测试需
11、要开发人员参与。测试是由软件用户在实际使用环境下进行的测试。这些用户通常是与公司签定了一定合同的外部用户,用户在使用该产品时愿意返回有关错误信息给开发者。SixE2yXPq5测试时,开发人员不在测试现场。只有当测试达到一定可靠程度时,才能开始测试。测试通常由主持产品发行的人员来管理。测试和测试区别测试尽量模拟用户的使用环境测试真实用户的使用环境测试开发方测试测试最终用户测试问题:Beta测试属于验收测试吗答:是!所谓验收测试(acceptance test)是在产品发布之前所进行的软件测试活动, 它是技术测试的最后一个阶段,通过了验收测试,产品就会进入发布阶段.6ewMyirQFL、测试事实上
12、,软件开发人员不可能完全预见用户实际使用程序的情况。例如,用户可能错误的理解命令,或提供一些奇怪的数据组合,亦可能对设计者自认明了的输出kavU42VRUs信息迷惑不解,等等。因此,软件是否真正满足最终用户的要求,应由用户进行一系列“验收测试”。验收测试既可以是非正式的测试,也可以有计划、有系统的测试。测试过程总结,如下图所示:2.常用测试技术首先看一下软件测试的分类:按测试阶段分类单元测试、集成测试、系统测试、验收测试按测试策略分类黑盒/白盒测试、动态/静态测试、手工/自动测试按测试技术方法分类功能测试、性能测试、压力测试、易用性测试、安装测试、容错性测试、兼容性测试、安全性测试黑盒测试/白
13、盒测试-从要不要看代码来区分动态测试/静态测试-从要不要运行软件来区分而常用的测试技术如下图所示:2.1.功能测试功能测试:使用测试应用系统的功能需求的黑盒测试方法。这类测试应由测试员做,这并不意味着程序员在发布前不必检查他们的代码能否工作。运行系统,查看其功能是否正常实现,是否满足需求。对于需求没有涵盖,但功能实现上不合理的地方(从用户角度考虑)与项目经理沟通,进行系统完善。y6v3ALoS89功能测试参考:参考需求分析、规格说明书、测试计划、测试用例等文档多与开发人员、用户及其他项目相关人员沟通功能测试的控件操作,如下图所示:控件中文本框测试:从输入数据的内容,长度,类型,格式等几个方面来
14、考虑。文本框如下图所示:控件中按钮测试:按钮功能是否实现提示信息是否正确对于不符合业务背景的输入数据是否有相应的处理按钮如下图所示:控件中单选框测试:单选按钮是否同时只能选中一个各单选按钮功能是否能正确完成是否有默认被选中的选项单选框如下图所示:控件中updown+文本框测试:上下箭头的控制边界值的测试默认值的测试非法输入字符的测试如下图所示:控件中组合列表框测试:条目内容的检查条目功能的是否实现列表框中是否能输入数据控件中复选框测试:多个复选框可以同时选中。多个复选框可以被部分选中。多个复选框可以都不被选中。例如,即不选轮廓,也不选阴影字体逐一执行每个复选框的功能。每个复选框都可能有三种状态
15、:选中、未选中和部分选中。控件中列表框测试:条目内容正确。逐一执行列表框中每个条目的功能。列表框内容多要使用滚动条。列表框允许多选时,要分别检查按Shift选中条目、按Ctrl选中条目和直接用鼠标选中多项条目。列表框如下图所示:控件中滚动条测试:滚动条是否能拖动滚动条拖动时屏幕刷新情况滚动条拖动时显示信息的显示滚动条的上下按钮是否可用如下图所示:控件组合操作:即各种控件的组合使用:控件间的相互作用Tab键的顺序热键的使用回车键和ESC键的使用控件组合后功能的实现如下图所示:对登录操作测试如下图所示:输入正确的用户名和密码,点“确定”,用户可以正确登录输入不正确的用户名,正确的密码,点“确定”。
16、系统提示错误。输入正确的用户名,不正确的密码,点“确定”。系统提示错误。输入不正确的用户名,不正确的密码,点“确定”。系统提示错误。输入三次错误的登录信息,自动退出。输入允许的最大长度为20个字符的用户名和最大长度为20个字符的密码,可以正确登录输入超过允许的最大长度的用户名和最大长度的密码。系统提示错误。进入登录界面,接受默认值,什么都不输入,直接按确定输入特殊字符。例如,输入正确用户名,按Backspace或Delete键删除用户名,再次输入用户名;或者输入ASCII表中的不可显示的字符如NUL,LF等。M2ub6vSTnP点“取消”,退出程序。入正确的用户名或密码,点“取消”退出程序后,
17、再次进入登录界面直接按确定。检查程序的默认值是否改变密码显示为*,不能显示为输入的具体字母或数字Tab键的顺序为用户、密码、确定、取消文件操作打开文件测试:打开在任意位置的文件以各种方式打开文件打开任意格式的文件打开文件对话框中的各按钮如下图所示:文件操作保存文件测试:在任意位置保存文件以各种方式保存文件保存任意格式的文件保存文件对话框中的各按钮如下图所示:文件操作保存文件测试:正常关闭文件,系统提供确认信息。通过菜单或窗口按钮关闭。非正常关闭。文件操作打印文件测试:本地打印和网络打印是否能完成打印界面的各属性的设置打印界面的各按钮功能是否能实现如下图所示:编辑操作测试:查找、搜寻中考虑输入的
18、内容和长度替换中考虑输入的内容和长度编辑操作窗体的功能测试如下图所示:插入操作测试:复制操作测试:鼠标测试:如何进行测试:左右键操作是否能完成单击、双击、三击是否能完成拖放、滚轮等功能是否能完成移动、点击的速度如下图所示:2.2.界面测试窗体需要测试:窗体大小移动窗体缩放窗体显示分辨率状态栏工具栏错误信息父窗口子窗口如下图所示:控件界面测试案例:控件界面测试检查列表:菜单界面测试:菜单界面测试检查清单,如下图所示:特殊属性检查清单,如下图所示:界面设计总体原则:界面的长宽比例按钮的大小背景的搭配颜色的搭配测试技术小结:测试用例设计的目的是导出可能发现错误的测试集测试case设计的技术主要是白盒
19、和黑盒白盒测试注重程序的结构,是小规模的低层测试黑盒测试注重需求的实现,是大规模的高层测试还有大量的特定软件系统的测试方法,需要专门的测试技术和指南测试永无止境,设计测试case最终目的是为了尽量多的发现问题,在产品发布前解决文档测试技术小结:文档测试审查单:术语:用户是否理解;是否需要定义;是否标准、前后一致标题:是否合适,是否和实际产品一致内容:功能描述正确、清晰逐步执行:确保所有信息真实正确和实际产品功能一致;检查搜索的正确性;检查网站URL 能否正确链接图表和拷屏:图表准确;拷屏版本一致;图表标题正确示例:对文档中示例要载入并使用,保证其可以正确执行错别字:无错别字,标点符号正确排版:
20、排版正确,风格一致设计易用性测试用例:实例分析:优秀界面的特点:符合标准和规范直观性一致性灵活性舒适性正确性实用性3.软件测试策略我们无法为软件做穷举测试,存在着组合爆炸的情况。软件测试中的“杀虫剂”现象。我们无法修复所有发现的错误。黑盒测试黑盒测试是对需求的所有输入条件进行测试黑盒测试发现的错误类型功能不对或遗漏界面错误数据结构或外部数据库访问错误性能错误初始化和终止错误黑盒测试关注点:功能:如何测试功能的有效性何种类型的输入会产生好的测试用例系统是否对特定的输入值敏感数值:如何分隔数据类的边界系统能够承受何种数据率和数据量特定类型的数据组合会对系统产生何种影响界面性能其他白盒测试:白盒测试
21、发现的错误类型:语法错误编译错误Memory leakPerformance problem逻辑问题判定条件问题编程规范测试技术基本路径控制结构基本路径测试,如下图所示:优缺点比较,如下图所示:静态测试与动态测试:静态测试(Static testing):不实际运行被测试的程序测试对象:软件文档(用户类,开发类)源代码(逻辑错误,代码标准/规范/风格)分类:代码走查(walkthrough)代码审查(Inspection)技术评审(Review)动态测试(Dynamic Testing):通过执行软件的手段来测试软件静态测试技术:代码走查(walkthrough)开发组内部进行的,采用讲解、讨
22、论和模拟运行的方式进行的查找错误的活动代码审查(Inspection)0YujCfmUCw开发组内部进行的,采用讲解、提问并使用Checklist方式进行的查找错误的活动。一般有正式的计划、流程和结果报告eUts8ZQVRd技术评审(Review)开发组、测试组和相关人员(QA、产品经理等)联合进行的,采用讲解、提问并使用Checklist方式进行的查找错误的活动。一般有正式的计划、流程和结果报告sQsAEJkW5T黑盒测试与白盒测试:白盒测试(White Box Testing)又称结构测试,逻辑驱动测试或基于程序的测试深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。但效率很低。这一阶段测试以软件开发人员为主,在JAVA 平台使用Xunit 系列工具进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民宅民宿租赁合同协议
- 商场游戏机转让合同协议
- 快递店合作协议合同协议
- 2025标准的设计分包合同协议书样本
- 2025年个体住宅建设合同模板
- 2025届湖南省岳阳市高三下学期质量监测(二)语文试题及答案
- 2025工程设备采购合同范文
- 协议离婚可以委托
- 《唐诗意象分析:《春夜喜雨》教案》
- 《病原体样本收集》课件
- 2022年湖南高二学业水平合格考试政治试卷真题及答案详解
- 三自由度并联机器人结构设计
- 仓储装卸服务合同
- 式双钩五点安全带培训课件
- 名片设计 课件
- 钳工实操评分表(凹凸配合)
- 社会组织管理概论全套ppt课件(完整版)
- 陕西省城市规划管理技术规定(定稿)
- 部编版七年级下册历史复习提纲(重点考察知识点)
- 双盘摩擦压力机的设计(全套图纸)
- 国家开放大学《西方经济学(本)》章节测试参考答案
评论
0/150
提交评论