资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,16/12/6,#,软件测试概述,李刚,2,016,年,12,月,7,日,主要内容,软件与软件工程管理,软件测试相关概念,软件测试分类,软件测试流程,软件测试举例,软件,软件相关概念,软件是计算机系统中与硬件相互依存的一个部分,它是源程序、数据及其相关文档的集合,。,软件缺陷(,Defect,)是指计算机软件中存在的某种破坏其正常运行的问题、错误,或者其中隐藏的功能缺陷,称为“,Bug,”,。,通常用,“,Bug”,表示计算机系统硬件或软件中隐藏的错误、,缺陷或问题。,软,件工程管理,需求分析阶段,系统设计阶段,系统设计阶段要阐明一般测试,策略,如测试方法和测试评价标准,并创建测试计划,。另外,,重大测试事件的日程安排也应在这一阶段构建,同时还要建立质量保证和测试文档的框架,。,系统编码阶段,代码走查和代码审查,都是有效的人工测试技术;静态分析技术通过分析程序特征来排除错误;对于大型程序,需要用自动化工具来完成这些分析,系统测试阶段,测试应用系统应着眼于,功能上的测试,严格控制和管理测试信息是最重要的。,系统安装与维护阶段,软件测试相关,概念,软件测试就是为了发现错误而执行程序,的过程,。,软件测试的主要工作是验证(,Verification,)和确认(,Validation,)。,软件测试,的对象不仅仅是程序,还包括整个软件开发期间各个阶段所产生的文档。,测试用例是为某个特定目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。,测试用例(,Test Case,)可以用一个简单的公式来表示:,测试用例输入输出,测试环境,测试环境就是软件运行的平台,即进行软件测试所必需的工作平台和前提条件,可用如下公式来表示:,测试环境,硬件软件网络历史数据,软件测试目的,软件测试是一个为了发现错误而执行程序,的过程。,软件测试是为了证明程序有错,,而不是证明程序无错。,一个,好的测试用例在于它能发现至今尚未发现的错误。,一个,成功的测试是发现了至今尚未发现错误的测试。,软件测试原则,应,当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。,程序员应避免检查,自己的程序。,测试用例应由测试输入数据和与之对应,的预期输出结果两部分组成。,在设计测试用例时,,应当包括合理的输入条件和不合理的输入条件。,充分注意软件测试时,的群集现象。,严格执行测试计划,,排除测试的随意性,。,应当对每一个测试结果做全面检查,。,妥善保存测试过,程中产生的各种数据和文档。,注意回归测试,的关联性。,按测试阶段分类,软件测试按测试阶段可划分为单元测试、集成测试、确认测试和系统测试,最后进行验收测试,。,单元测试(,Unit Testing,)又称模块测试(,Module Testing,),是指对软件中的最小可测试单元进行测试,。单元测试优点,,,是一种管理和组合测试元素的手段,,,可以减轻调试的难度,,,提供同时测试多个单元的,可能,。,集成测试(,Integration Testing,)又称为组装测试,是在单元测试的基础上,按照设计要求,将通过单元测试的单元组装成系统或子系统而进行的测试,。,系统测试(,System Testing,)是为了验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试,是在真实或模拟系统运行的环境下,检查完整的程序是否能和系统(包括系统软件、支持平台、硬件、外设和网络)正确配置、连接,并满足用户需求。,按测试阶段分类,确认测试是通过检验和提供客观证据,证实软件是否满足特定预期用途的需求,检测与证实软件是否满足软件需求说明书中规定的要求,。,验收测试(,Acceptance Testing,)又称接受测试,是在系统测试后期,以用户测试为主,或有质量保证人员共同参与的测试。,验收测试又分为,测试和,测试。,测试也称为开发方测试,开发方通过检测和提供客观证据,证明软件运行是否满足用户规定的需求,。,测试是内部测试之后的外部公开测试,是将软件完全交给用户,让用户在实际使用环境下进行的对产品预发版本的测试。,按是否需要执行测试软件分类,静态测试(,Static Testing,)又称为静态分析(,Static Analysis,),是不实际运行被测软件,而是直接分析软件的形式和结构,从而查找缺陷的测试,。,1,、测试程序代码主要是为了查看代码是否符合相应,的标准和规范。,2,、,测试界面主要是查看软件的实际操作和运行界面是否符合需求中的相关说明,是否符合用户的要求。,3,、,文档测试主要是检查需求规格说明书、用户手册与需求说明是否真正符合用户的实际需求。,按是否需要执行测试软件分类,动态测试(,Dynamic Testing,)又称为动态分析(,Dynamic Analysis,),是指需要实际运行被测软件,通过观察程序运行时所表现出来的状态、行为等发现软件缺陷的测试。,按是否需要查看代码分类,黑盒测试(,Black-box Testing,)是软件测试的主要方法之一,也称功能性测试(,Functional Testing,)或数据驱动测试(,Data-driven Testing,),但并不仅限于功能测试,。,白盒测试主要分析程序内部的逻辑结构及算法,通常不关心功能与性能指标。,白盒测试又称为结构性测试(,Structural Testing,)或逻辑驱动测试(,Logic-driven Testing,)。,与黑盒测试相比,,白盒测试具有如下特殊的应用领域,。,程序代码,具有多个分支。,白盒测试,的覆盖指标可以充当黑盒测试的检查手段。,代码中,常存在内存泄露的问题,尤其,C/C+,程序。,有时,只有在某种极端的条件下才会出现的情况,是难以直接进行功能测试的。,按是否需要查看代码分类,灰盒测试是介于白盒测试和黑盒测试之间的测试,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不像白盒测试那样详细、完整,只是通过一些表征性的现象、事件和标志来判断内部的运行状态。,按测试执行时是否需要人工干预分类,手工测试完全由人工完成测试工作,包括制订测试计划、设计和执行测试用例、检查和分析测试结果等。,自动测试是各种测试活动的管理与实施使用自动化测试工具或自动化测试脚本来进行的测试,以某种自动测试工具来验证测试需求。,按测试目的分类,功能测试,界面测试,性能测试,负载测试,易用性测试,兼,容性测试,安全性测试,接口测试,文档测试,安装与卸载测试,压力测试,强度测试,可靠,性测试,健,壮性测试,恢复测试,其他测试类型,冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了,。,冒烟测试的优点是可以节省大量的测试时间,防止创建失败,其缺点是覆盖率较低。,随机测试是这样一种测试,在测试中,测试数据是随机产生的,。这样,的测试有时被称为猴子测试(,Monkey Testing,)。,回归测试是验证缺陷是否修改正确和修改过程中是否会引入新问题的活动,回归测试并不是一个测试级别,却是各个测试阶段必须包括的一个测试活动。,软件测试流程,制订测试计划,软件测试,背景,软件测试依据,测试范围,的界定,测试风险,的确定,测试资,源的确定,测试,策略的确定,制订测试进度表,设计测试用例和测试过,程,测试用例是为,特定目标开发的测试输入、执行条件和预期结果的集合,这些特定目标可以用于验证一个特定的程序路径,或核实是否符合特定需求,。,测试过程一般分成几个阶段:代码审查、单元测试、集成测试、系统测试和验收测试等。,评估与总结软件测试,软件测试,的主要评估方法包括缺陷评估、测试覆盖和质量评测。,质量评测是对测试对象的可靠性、稳定性以及性能的评测,它建立在对测试结果的评估和对测试过程中确定的变更请求分析的基础上。,软件测试岗位,上机测试人员。,测试结果检查核对人员,。,测试数据制作人员,。,测试经,理。,测试文档审核师,。,测试工程师,。,软件测试人员要求,懂得计算,机的基本理论,又有一定的软件开发经验。,了解软件开发,的基本过程和特征,对软件有良好的理解能力,掌握软件测试相关理论及技术。,具有软件业务经验,。,能根据测试计划和方案进行软件测试,针对软件需求制订测试方案,安排测试计划,设计测试用例,搭建测试环境,进行软件测试。,能够规划测试环境,,编制测试大纲并设计测试用例,对软件进行全面测试,。,能够编制测试计划,评审测试方案,规范测试流程及测试文档,分析测试结果,管理测试项目。,会操作测试,工具,。,场景设计法,基本流是整个业务流,程中最基本的一个事件流程,备选流以,基本流为基础,在经过的每个判定节点处满足不同的触发条件而导致的其他事件流,。,所谓场景,可以看作是基本流与备选流的有序集合。,场景设计法,场景设计法是一种,典型的黑盒测试方法,它不考虑软件的内部结构。,场景设计,法的一般步骤如下。,1、构造,基本流和备选流,。,2,、根据,基本流和备选流构造场景。,3,、根据场景设计测试,用例。,4,、每个测试用例补,充必要的测试数据,。,场景设计法,备选流,3,备选流,2,备选流,1,基本流,开始测试,结束测试,图,1-1,场景法的基本流与备选流,软件开发与软件测试基线,基线(,Baseline,)是一个已经被正式评审和批准的规格或产品,它作为进一步开发的一个基础,并且必须通过正式的变更流程来变更。,基线是软件文档或源码,(或其他产出物)的一个稳定版本,它是进一步开发的基础,基线是项目储存库中每个工件版本在特定时期的一个“快照”。,软件测试举例,对,Windows,操作系统自带的计算器的功能实现情况和用户界面进行测试,检验计算器的功能和界面是否符合规格说明书。,1,、,设计软件测试用例,功能测试用例设计。,用户界面测试用例设计。,功能测试用例,计算器用户界面测试用例,执行软件测试及分析测试结果,测试顺序,测试范围,测试内容,测试方法,测试结论,11,窗口界面,窗体大小、控件布局、前景与背景颜色,目测,合格,12,快速或慢速移动窗体,移动操作、目测,合格,13,改变屏幕显示分辨率,操作、目测,合格,14,菜单界面,菜单功能,操作、目测,合格,15,菜单的快捷命令方式,目测,合格,16,菜单文本的字体、大小和格式,目测,合格,17,菜单名称,目测,合格,18,菜单标题,目测,合格,19,命令按钮,命令按钮的标识与操作响应,操作、目测,合格,20,单击命令按钮响应操作,操作、目测,合格,21,非法的运算式,操作、目测,合格,22,文本框,显示运算结果与提示信息,操作、目测,合格,应用场景法对,ATM,机进行黑盒测试,【,任务描述,】,ATM,机操作用例如图,1-3,所示,假设某银行的,ATM,机内目前的现金为,5000,元,卡号尾数为,468596,的银行卡的账面金额为,600,元,该银行卡的密码为,123456,,应用场景法设计测试用例,对,ATM,机的密码验证功能和取款功能进行测试。,设计软件测试用例,(,1,)分析,ATM,机取款的基本流和备选流。,ATM,机取款的基本流和备选流如表,1-6,所示。,流的类型,流的描述,基本流,正常的取款,备选流,备选流,1,ATM,机内没有现金,备选流,2,ATM,机内现金不足,备选流,3,密码有误(限制,3,次输入机会),备选流,4,账户不存在或账户类型有误,备选流,5,账户余额不足,分析设计场景。,ATM,机取款的场景设计如表,1-7,所示。,场景编号,场景名称,流,场景,1,成功取款,基本流,场景,2,ATM,机内没有现金,基本流,备选流,1,场景,3,ATM,机内现金不足,基本流,备选流,2,场景,4,密码有误(第,1,次密码错误),基本流,备选流,3,场景,5,密码有误(第,2,次密码错误),基本流,备选流,3,场景,6,密码有误(第,3,次密码错误),基本流,备选流,3,场景,7,账户不存在或账户类型有误,基本流,备选流,4,场景,8,账户余额不足,基本流,备选
展开阅读全文