软件测试复习资料2_第1页
软件测试复习资料2_第2页
软件测试复习资料2_第3页
软件测试复习资料2_第4页
软件测试复习资料2_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.软件:= 程序+数据(库) +文档+规程。(1)定义:是一系列按照特定顺序组织的计算机数据和指令的集合(2)内容:1. 运行时,能够提供所要求功能和性能的指令或计算机程序集合2. 程序能够满意地处理信息的数据结构3. 描述程序功能需求及程序如何操作和使用所要求的文档。(3)组成:客户需求、市场需求文档、软件规格说明书、技术设计文档、测试文档、在线帮助、产品发布注产品软件包。(4)特点:软件是逻辑的、知识性的产品集合,是对物理世界的一种抽象,或者是某种物理形态上的虚拟化;软件是硬件的灵魂,硬件是软件的基础;软件是知识和智慧的结晶;软件不会磨损,而是逐渐完善。2. 软件开发的基本过程:(1)需

2、求分析: 根据客户的要求,清楚了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。(2)设计: 根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等,可以分为概要设计和详细设计,也可分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、界面设计等。(3)编程:将设计转换成计算机可读的形式。(4)测试: 对设计、编程进行验证和用户需求确认的过程(5)维护:维持软件运行,修改软件缺陷、增强已有功能、增加新功能、升级等。3. 软件开发过程模型:瀑布模型、原型模型、快速应用开发(RAD)模型、改进的V模型、螺旋模型、增量模型和迭代

3、模型、构件组装模型、并发模型、XP模型。4. 软件错误:在软件生存期内的不希望或者不可接受的人为错误。5. 软件异常:偏离期望的状态的任何情形都可以称为异常6. 软件差错:计算的、观测的或测量的值与真实的、规定的或理论上正确的值或条件之间的差别故障。在一个计算机程序中出现的不正确的步骤或数据或过程定义常称为故障。7. 软件故障:软件运行过程中出现的一种不希望或不可接受的内部状态。8. 软件失效:软件运行时产生的一种不希望或不可接受的外部行为结果。9. 软件缺陷:存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差, 产生原因:软件开发过程中自身的特点;软件项目管理问题;团队工作。10

4、. 软件测试(一)定义:软件测试是使用人工或自动手段来运行或测定某个系统的过程,检验它是否满足规定的需求或者弄清预期结果与实际结果之间的差别(二)重要性:“程序测试是为了发现错误而执行程序的过程”。测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。在软件开发过程中,分析、设计与编码等工作都是建设性的,惟独测试是带有“破坏性”,测试可视为分析、设计和编码3个阶段的“最终复审”,在软件质量保证中具有重要地位。(1)被测对象内部实现情况了解程度的角度:白盒测试、黑盒测试、灰盒测试(2) 是否执行被测系统的角度:静态测试、动态测试(3) 测试工具支持的程度:手工测试、自动测试(4)

5、 被测内容的角度:功能测试、结构测试、非功能性测试(5)以显示被测对象是否工作的角度:正向测试、反向测试(6) 站在测试过程推进的角度:单元测试、集成测试、系统测试(7)按照测试实施组织/执行主体划分:测试、测试、第三方测试(四)原则:(1)应当尽早地和不断地进行软件测试作为软件开发者的座右铭(2)严防寄生虫现象(3)严防杀虫剂现象(4)并非所有的软件缺陷都能修复(5)难以说清的软件缺陷(6)测试用例的设计(7)软件测试充分性准则 (五)模型 V模型强调了整个软件项目开发中需要经历的若干个测试级别,每个级别都与一个开发阶段行对应,但没有明确指出应该对需求、设计进行测试W模型对V模型进行补偿,强

6、调了测试计划等工作的先行和对系统需求和系统设计的测试,但和V模型一样,没有专门对软件测试的流程予以说明H模型表现了测试是独立的。就每一个软件的测试细节来说,都有一个独立的操作流程,只要测试前提具备了,就可以开始进行测试X模型体现出V模型没能体现的测试设计、测试回溯的过程。是不经过实现计划的特殊类型的测试,帮助有经验的测试人员在测试计划之外发现软件错误前置模型将测试与开发相结合;对每一个交付内容进行测试;让验收测试和技术测试保持相互独立;反复交替的开发和测试;引入新的测试理念(六)目的:(1)测试不仅仅是为了找出错误,通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程

7、中的缺陷,以便及时改进(2)测试帮助测试人员设计出针对性的测试用例,改善测试的效率和有效性(3)没有发现错误的测试也是有价值的,完整的测试时判定软件质量的一种方法。(七)目标:以最少的时间和人力找出软件中潜在的各种错误和缺陷,证明软件的功能和性能与需求说明相符。9. 高质量测试用例的属性:有效性、仿效性、经济性、可维护性。12.项目生命周期:识别需求、方案设计、项目执行、项目收尾2.1.传统的软件测试流程:单元设计单元测试集中进行大量的测试(功能和性能的集成测试)系统测试。存在的问题:项目进度难于控制,项目管理难度加大;对于项目风险的控制能力较弱;软件项目开发费用超出预算。2.2.RUP:统一

8、软件开发过程。从已形成的各种面向对象分析与设计方法中吸取精华,为软件开发人员以UML 为基础进行软件开发提供了一个普遍的软件过程框架,可以适应不同的软件系统、应用领域、组织类型和项目规模。可从三个方面来理解:是一套面向对象方法学;是一种适用范围较广的适应性软件过程;是一个提供了可定制框架的软件过程产品2.3.RUP最突出的三个特点:(1)采用迭代和增量模型(核心):迭代是将整个项目分为许多更小的迷你项目,增量指在后续迭代结束后,两个发布版本之间存在的差异或差值。(2)用例驱动:用例贯穿整个软件开发的生命周期。在商务需求分析中,客户或用户对用例进行描述,在系统分布和系统设计过程中,设计师对用例进

9、行分析,在开发实现过程中,开发编程人员对用例进行实现,在测试过程中,测试人员对用例进行检验。因此RUP 是一种以用例为中心的开发过程。(3)以架构为中心:软件系统的架构是指通过接口交互的重要组件的组织和结构。最本质2.4.测试用例:定义:为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。属性:具有优先级、目标性、范围性、关联性、阶段性、状态性、代表性、时效性。 作用:1指导测试的实施2规划测试数据的准备3评估测试结果的度量基准4保证软件可维护性和可复用性5分析缺陷的标准 内容1测试阶段和用例关系2测试用例设计准则3测试用例的设计步骤4测试

10、用例维护设计准则:1测试用例设计应注重有效性2测试用例设计必须注重经济性3测试用例设计应考虑多重性4测试用例设计应考虑完备性5测试用例的结果具有可判定性6测试用例应具有可再现性设计步骤:1制定测试用例的策略和思想,在测试计划中描述出来2. 设计测试用例的框架,也就是测试用例的结构3. 细化结构,逐步设计出具体的测试用例4.通过测试用例的评审,不断优化测试用例维护:(1)产品特性没变,只是根据漏掉的缺陷来完善测试用例。这时候,增加和修改测试用例均可,因为当前被修改的测试用例对相应的版本都有效,不会影响某个特定版本所拥有的测试用例。(2)原有产品特性发生变化,不是新功能特性,而是功能增强,这时候原

11、有的测试用例只对先前版本有效,对当前新的版本无效。此时,绝不能修改测试用例,只能增加新的测试用例,不能影响原有的测试用例(3)原有功能取消了,这时只要将与该功能对应的测试用例在新版本上置为空标志或“无效”状态,但不能删除这些测试用例,因为它们对先前某个版本还是有效的(4)完全新增加的特性,需要增加新的测试用例2.5.RUP 软件测试(1)流程:包含完整的软件测试流程框架,同时还提供了内嵌软件测试流程的测试管理工具的支持,包括完整的测试评测方法。在RUP 中对测试流程的描述为:软件测试工作要通过制定测试计划、设计测试、实施测试、执行测试、评估测试几个阶段来完成。(2)评测方法:覆盖评测:基于需求

12、的测试覆盖、基于代码的测试覆盖质量评测性能评测。(3)理念的核心:软件质量保证不应该只是在某一个环节上,而应该是整个的流程,我们应该全面地去改进流程来保证质量2.6.RUP 包括的软件开发中的六大经验:迭代式开发;管理需求;使用基于组件的软件体系结构;可视化建模;软件质量保证;控制软件变更。2.7.RUP 测试自动化测试平台搭建和软件工具配置跟测试有什么关系?1团队测试2测试报告(测试计划,测试用例,测试数据,测试中间产生的状态)3测试进度4测试管理需要测试平台2.8.RUP把一个软件生命周期模型分成:初始阶段、细化阶段、构造阶段、交付阶段。2.9.RUP 把整个软件开发过程分解成:业务建模、

13、需求管理、分析设计、实施、测试、部署、配置与变更管理、项目管理和环境。2.10.RUP 确定了四级测试:单元测试、集成测试、系统测试和验收测试。他们之间可并列,也可以是递进的。2.11.测试生命周期:测试计划-à测试设计-à测试执行-à测试评估2.12.测试执行步骤:单元测试-集成测试-确认测试-系统测试-验收测试2.13RUP 裁剪的步骤:(1)确定本项目需要哪些规程。9 个核心规程可以取舍(2)确定每个规程需要哪些制品(3)确定4 个阶段之间如何演进(4)确定阶段间演进要以风险控制为原则,决定每个阶段要那些规程,每个规程执行到什么程度,制品有那些,每个制品完成

14、到什么程度(5)确定每个阶段内的迭代计划(6)规划RUP 的4 个阶段中每次迭代开发的内容(7)规划规程内部结构。规程涉及角色、活动及制品,复杂程度与项目规模即角色多少有关(8)最后规划规程的内部结构,通常用活动图的形式给出.2.14.测试计划:(1)制定:需要整理测试需求,目的是确定和描述要实施和执行的测试。(2)定义:就是描述了要进行的测试活动的范围、方法、资源和进度的文档。(3)内容:1测试背景2测试依据3测试资源4测试策略5测试日程6其他单元测试1.定义:对构成软件的基本单位单元,进行测试的过程2.目的:在于验证被测单元的功能是否正确,是否可以依照设计正常工作3.测试依据:程序员对自己

15、的代码进行自测试的工作,就是软件模块的详细设计文档。4.内容/任务:构件的接口、局部数据结构、边界条件、独立路径、处理错误的路径(2)测试指标:代码覆盖率(覆盖全部代码、分支、路径、条件)5.辅助模块(1)驱动模块:用来模拟被测试模块的上一级模块,相当于被测模块的主程序,用于接收测试数据并把这些数据传送给被测模块、启动被测模块、最后输出实测结果(2)桩模块:用来模拟被测模块工作过程中所调用的模块。6.优点:1提高了时间效率2验证了软件功能与详细设计说明的一致性3确保集成测试的有效性4提高了成本效率7.测试过程准则:(1)定义了单元测试在什么条件下开始、结束、挂起以及恢复(2)满足什么条件可以开

16、始单元测试即单元测试的入口准则(3)满足什么条件单元测试可以结束即单元测试的停止准则(4)出现哪些情况单元测试可以挂起即单元测试的受阻准则(5)满足了哪些条件便可以恢复被挂起的单元测试即单元测试的恢复准则8.主要的单元测试活动:单元测试计划、设计单元测试用例、搭建单元测试环境、执行单元测试、单元测试报告集成测试1. 定义:在单元测试的基础上,将多个模块组合在一起进行测试的过程,主要检查各个软件单元之间的相互接口是否正确。2.目的:在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;一个模块的功能是否会对另一个模块的功能产生不利的影响;各个子功能组合起来,能否达到预期要求的父功能;全局数据

17、结构是否有问题;单个模块的误差累积起来,是否会放大,以至达到不能接受的程度。3. 集成策略:(1)基于功能分解图的集成:大爆炸:把各个单元一次性集成为一个完整的系统中进行测试,而不是分阶段进行;增式集成;自顶而下(深度优先和广度优先)自底而上 混合集成(三明治集成)(2)基于MM-路径的集成4.集成测试的方法:1测试建立在模块接口上,多为黑盒测试,适当辅以白盒测试。2具有非增量式集成和增量式集成(自顶向下、自底向上、三明治)以及核心先行集成5.集成测试的主要任务:(1)将各个模块连接起来,检查模块相互调用时,数据经过接口是否丢失。(2)将各个子功能组合起来,检查能否达到预期要求的各项功能。(3

18、)一个模块的功能是否会对另一个模块的功能产生不利的影响。(4)全局数据结构是否有问题,会不会被异常修改。(5)单个模块的误差累积起来,是否被放大,从而达到不可接受的程度。6. 集成测试与单元测试的区别:(1)单元测试主要关注模块的内部,虽也关注模块接口,但是从内部来查看接口,从个数、属性、量纲和顺序等方面查看输入的实参与形参的匹配情况。(2)集成测试查看接口时主要关注穿越接口的数据、信息是否正确,是否会丢失。7. 集成测试与系统测试的区别:(1) 集成测试中所涉及的系统则不仅包括被测试的软件本身,还包括硬件及相关外围设备,即整个软件系统以及与软件系统交互的所有硬件与软件平台。(2)系统测试则是

19、站在用户的角度来评价系统,包括验证系统的主要功能、核实系统的性能水平、判断是否达到安全性要求等。 系统测试(完全采用黑盒测试技术)1.定义:是指将通过集成测试的软件系统,作为计算机系统的一个重要组成部分,与计算机硬件、外设、某些支撑软件的系统等其他系统元素组合在一起所进行的测试2.目的:在于通过与系统的需求定义作比较,发现软件与系统定义不符合或矛盾的地方。3.目标:不是要找出软件故障,而是证明系统的性能。确保系统测试的活动是按计划进行的;验证软件产品是否与系统需求用例不相符合或与之矛盾;建立完善的系统测试缺陷记录跟踪库;确保软件系统测试活动及其结果及时通知相关小组和个人5. 主要类型:性能、安

20、全性、健壮性、可靠性、配置、兼容性、用户界面、文档、安装、卸载测试。原则:(1)系统测试用例设计时,首要的活动就是寻找外部输入层的测试空间(2)系统测试时不仅要测试设计空间,更多的应该是测试异常空间。在软件业几十年以来发现的问题,软件中的大部分问题不是出在设计空间里,而是出在异常空间里,因此对异常空的测试属于系统测试的重要内容(3)要在计划阶段定好做哪些形式的测试(4)是所有类型测试活动中难度最高的测试确认测试:用于验证软件的有效性,即软件的功能和性能及其他特性是否与用户的要求一致(黑盒测试)验收测试:作为检验软件产品质量的最后一道工序,主要让用户对软件进行测试。并将重新执行已经做过的测试的某

21、个子集,保证没有引入新的错误。包括a 、ß 、回归测试a 测试和ß 测试的区别:(1)a 测试:在软件开发环境中,开发者和用户共同去检测与证实软件的实现是否满足软件设计说明或者软件需求说明的要求。(2)ß 测试:通常被认为用户测试,是指用户的使用性测试,由用户找出软件在应用过程中发现的软件在应用过程中发现的软件的缺陷与问题,并对使用质量进行评价(3)a 测试目的主要评价软件产品的功能、可使用性、可靠性、性能等。ß 测试着重于产品的支持性,包括文档、客户培训和支持产品生产能力。回归测试:是一种验证已变更系统的完整性与正确性的测试技术,是指重新执行已经做过的

22、测试的某个子集,以保证修改没有引入新的错误或者发现由于更改而引起的之前为发现的错误,也就是保证改变没有带来非预期的副作用。回归测试与一般测试比较:(1)测试用例的新旧:一般测试根据系统规格说明书和测试计划进行,测试用例都是新的。回归测试可能是更改了的规格说明书、修改过的程序和需要更新的测试计划,测试用例往往是旧的。(2)测试范围:一般测试目标是检测整个程序的正确性,而回归测试目标是检测被修改的相关部分正确性以及它与系统原有功能的整合。(3)时间分配:一般测试所需时间通常是在软件开发之前预算,而回归测试所需要的时间往往不包含在整个产品进度表。(4)完成时间:由于回归测试只需要测试程序的一部分,完

23、成所需的时间通常比一般测试所需时间少。(5)执行频率:回归测试在一个系统的生命周期往往要多次进行,一旦系统经过修改就需要进行回归测试。因此执行频率远远高于一般测试。评估测试目的:1量化测试进程判断测试进行的状态,决定什么时候测试可结束2为测试或质量分析报告生成所需的量化数据软件测试的主要评测方法包括测试覆盖和质量评测和性能评测。(1)测试覆盖是对测试完全程度的评测,它是由测试需求和测试用例的覆盖或已执行代码的覆盖表示的。基于需求的测试覆盖在测试生命周期中要评测多次,并在测试生命周期的里程碑处提供测试覆盖的标识。基于代码的测试覆盖评测测试过程中已经执行的代码的多少,与之相对的是要执行的剩余代码的

24、多少。代码覆盖可以建立在控制流(语句、分支或路径)或数据流的基础上。(2)质量评测是对测试对象(系统或测试的应用程序)的可靠性、稳定性以及性能的评测,建立在对测试结果的评估和对测试过程中确定的变更请求(即缺陷)分析的基础上。性能测试1.定义:是为描述测试对象与性能相关的特征,并对其进行评价而实施和执行的一类测试,如描述和评价测试对象的响应时间、吞吐量,以及操作的可靠性和限制等特征。一般可以使用被测系统的动态监测报告、响应时间及吞吐量报告、百分位图报告和各种性能比较报告,对被测对象进行性能评测2. 内容:(1)评估系统的能力:测试软件系统所得到的负荷数据和响应时间等数据。(2)识别体系中的弱点:

25、通过将软件系统受控的负荷增加到一个极端水平,确定体系的瓶颈或薄弱的地方,进行修复(3)系统调优:响应时间:从客户端发出请求到得到响应的整个过程的时间 并发用户数C=登录会话的数量*登录会话的平均长度/考察的时间段长度吞吐量 =虚拟用户个数*每个虚拟用户发出的请求数量/性能测试所用的时间;指在一次性能测试过程中网络上传输的数据量的总和 性能计数器:描述服务器或者操作系统性能的一些数据指标 休眠时间:用户请求的间隔时间 点击率:每秒钟用户向Web 服务器提交的HTTP 请求数3. 分类:强度/并发(用户)/负载/压力/可靠性/数据库/安全性/文档/大数据量/配置测试等。4.步骤:(1)制定目标和分

26、析系统(2)选择测试度量的方法(3)采用相关技术和工具 (4)制定评估标准 (5)设计、运行、分析测试用例第7章 面向对象测试(1) 面向对象影响测试1. 封装性影响测试 :面向对象软件中,对象行为是被动的,在接受到相关外部信息后才被激活,对象的状态可能发生变化而进入新的状态。由于信息隐蔽与封装机制,类的内部属性和状态对外界是不可见的,只能通过类自身的方法获得,这给类测试时测试用例执行是否处于预期状态的判断带来困难。2. 继承性影响测试:在面向对象程序中,继承由扩展、覆盖和特例化三种基本机制实现。其中扩展是子类包含父类的特征;覆盖是子类的方法与父类的方法有相同的名字和消息参数,但其实现的方法不

27、同;特例化是子类中特有的方法和实例变量。继承有利于代码的复用,但同时也使错误传播概率提高。3. 多态性影响测试 :多态性是将多种不同的特殊行为进行抽象的一种能力,对于同样的消息被不同类型的对象接收时导致完全不同的行为,使得面向对象程序对外呈现出强大的处理能力,但同时却使得程序内“同一”函数的行为复杂化,多态促成了子类型替换。一方面,子类型替换使对象的状态难以确定。如果一个对象包含了A类型的对象变量,则A类型的所有子类型的对象也允许赋给该变量。程序运行过程中,该变量可能引用不同类型的对象,其结构不断变化。另一方面,子类型替换使得向父类对象发送的消息也允许向子类对象发送。(三)面向对象分析测试OO

28、A Test对认定的对象的;对认定的结构的;对认定的主题的测试;对定义的属性和实例关联的测试;对定义的服务和消息关联的测试。(五)面向对象单元测试OO Unit Test:主要的方式是功能性测试和结构性测试。分别对应传统测试的黑盒测试和白盒测试。对类的测试分成如下两个层次:方法内测试和方法间测试。(六)面向对象集成测试OOITest:主要对系统单元模块之间的相互服务进行测试(七)面向对象系统测试:主要以系统的需求规格说明为测试标准。 第8章 嵌入式软件测试1. 嵌入式系统定义:用于控制、监视或者辅助操作机器和设备的装置。2. 嵌入式系统特点:实时性、嵌入性、反应性、专用性、体积小3. 嵌入式软

29、件测试特点:(1)实时性对测试的影响分为静态时间分析和动态实时检测(2)嵌入性对测试的影响建立宿主机与目标机之间的物理/逻辑连接,解决数据信息的传输问题(3)反应性对测试的影响在任何时刻都要对可能出现的时间作出适当反应4. 嵌入式软件测试策略:(1)交叉调试:对于主机和目标机之间的通信连接,可以通过串口通信方式,也可以是以太网口,一般基于TCP/IP协议传输。在嵌入式操作系统中,宿主机和目标机处于不同的机器中,宿主机要对目标机程序进行调试及测试控制,捕捉目标机上被测试程序是否正常接受测试数据,可以通过交叉调试的方式来实现。(2)目标代理:对于目标机如何反馈测试信息及测试信息在宿主机端的显示.具

30、有以下功能:通信服务程序的功能。可以通过串口或以太网口接收主机输入,并能将信息回传给主机的调试器;具备“中间件”的功能。对于外部主机而言,它是与其直接接触的“目标机代理”;对于目标机上的被测试软件功能来说,它是外部测试用例输入的“测试代理“;具有中间件功能,可以控制测试数据流在目标机的被测试程序上的输入和输出,并将其反馈给主机处理5. 三种测试环境:宿主机软件仿真、在线仿真器、ICE目标机仿真6. 测试流程:嵌入式软件测试经历单元测试、集成测试、系统测试、硬件软件集成测试等四个阶段,前三个阶段适用于任何软件的测试,硬件软件集成测试阶段作为嵌入式软件特有,其目的是验证嵌人式软件与其所测控的硬件设

31、备能够正确地交互。7. 嵌入式软件测试工具:纯软件测试工具、纯硬件测试工具、软硬结合的测试工具第9章 软件质量保证1.软件质量保证(SQA):建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保护的目的是评估和改进过程。2. 软件测试的工作对象是软件产品、软件质量保证的工作对象是软件过程3.从以下方面考虑软件质量:软件结构方面、功能与性能方面、开发标准与文档方面4.IEEE关于软件质量的定义:软件质量是系统、部件或者过程满足规定需求的程度。系统、部件或者过程满足顾客或者用户需要或期望的程度。该定义相对客观,强调了产品(或服务)和客户/

32、社会需求的一致性。5.软件质量的特征:功能性:软件实现的功能达到要求的和隐含的用户需求以及设计规范的程度;可靠性:软件在指定条件和特定时间段内维持性能的能力程度;易使用性:用户使用该软件所付出的学习精力;效率:在指定条件下,软件功能与所占用资源之间的比值;可维护性:当发现错误、运行环境改变或客户需求改变时,程序能修改的容易程度;可移植性:将软件从一种环境移入另一种环境的容易程度。软件产品的过程质量:保证规范的测试流程、测试规范、和其它配置管理环节、版本的管理环节等。黑盒测试(功能测试)1.把系统看成一个不透明的黑匣,在完全不考虑系统内部结构和处理过程的情况下验证系统是否达到用户需求。不考虑系统

33、或者组件的内部细节,只关注在选择的输入和相应的执行条件下所产生的输出结果2.常用的黑盒测试技术:等价类划分、边界值测试、决策表、错误猜测、场景法3.进行黑盒测试设计方法的主要依据是软件系统需求规格说明书4.等价类划分(1)定义:对一个等价关系而言,某个元素相应的等价类是指与其等价的所有元素的集合。等价类中的各个元素具有相同的属性。(被划分集合)各个等价类之间不会存在相同的元素,它们的并集是被划分集合的全集(2)测试思想:在进行测试用例设计时,以具有相同的预期结果为等价划分原则,将系统的被测试域划分为不同的等价类集合,从中选出代表作为测试用例,以期达到尽可能完备同时又可避免冗余的测试。被测试域可

34、能是输入域、输出域、输入或输出域的部分或任何其它值得测试的范围(3)分类:有效等价类对系统来说是有效的输入;无效等价类:所有其它可能存在的情况(4)设计测试用例步骤:1划分等价类2确定测试用例:解决如何组合各个被测条件等价类的问题(完全组合、部分组合)(5)在划分等价类时,可参考下面的建议:1如果某个输入条件规定值的范围,可以确定一个有效等价类和两个无效等价类2如果输入条件规定了一个输入值的集合,可以确定一个有效等价类和一个无效等价类。3如果输入条件是一个布尔表达式的条件,可以确定一个有效等价类和一个无效等价类(6) 确定测试用例的步骤:1划分等价类2为每一个有效等价类和无效等价类规定一个唯一

35、的编号3设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类, 重复这一步直到所有有效等价类均被测试用例所覆盖4设计一个测试用例,使其只覆盖一个无效等价类,重复这一步,直到所有无效等价类均被覆盖 5. 边界值分析法。(1)边界值:任何值得测试的范围的临界点,分为:1.边界值:明确定义在规格说明书中2.次边界:隐含在软件中必须经过分析才能获得 (2)测试思想:(1)取边界点附近的值作为测试用例的输入,可参考如下的设计原则(2)如果输入条件定义了数值区间(a,b),那么测试用例应包括a、b、稍微比a大、稍微比b大、稍微比a小和稍微比b小等几种情况. 举个例子,如果a,b是整数, 除在a,b之间

36、取正常点外,a,b,a-1,b-1,a+1,b+1都应被测试(3)设计应遵循的原则:(1)如果输入条件规定了值的个数, 那么最小个数、最大个数、大于和小于最小值、大于和小于最大值都应该被测试。(2)如果程序的输入域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例(3)上述原则也适用于输出条件(4)如果在程序中的数据结构有指定的边界,那么选择这个数据结构边界上的值作为测试用例。(5)分析规格说明,找出其它可能的边界条件6.决策表:定义:(1)决策表由四个部分组成,分别是条件桩, 条件项, 动作桩和动作项 (2)条件桩是条件的列表(3)动作桩是满足条件时系统可能产生的动作的列表.(4

37、)条件项是条件值的组合5)动作项是在条件值组合情况下发生的动作6)表中的每一列称为一条规则。规则定义了动作在什么条件下发生决策表分为:(1)有限项决策表:每个条件只有两个值,如Y/N, T/F,1/0 等(2)扩展项决策表:条件项的取值有多个(大于2个)决策表设计测试用例的步骤:(1)分析规格说明确定条件和动作(2)将条件和动作分别填入条件桩和动作桩中(3)在条件项中,根据逻辑关系填入条件的各种组合情况(4)在动作项中,根据规格说明,给每个条件的组合情况填入相应的动作(5)重复步骤3、4直到所有逻辑关系被遍历完为止7.错误猜测:定义:1)基于经验和直觉推测程序中可能有的各种错误, 针对这些错误

38、设计相应测试用例2)常作为一种补充测试用例的设计方法步骤:1)错误猜测设计法是一个在很大程度上凭直觉进行的比较随意的过程2)用列表举出程序中可能有的错误和容易发生错误的特殊情况(3)基于该列表构造测试用例8.事件流组成1基本流:1)仅有一个基本流,如图中的白色箭头2)是经过用例的最简单的路径,指每个步骤都“正常”运作时所发生的事情2备选流1)可以有多个,描述基本流步骤2)可选的或备选的情况3)异常事件流程9.场景是事件流的一个实例,由基本流或基本流和备选流中的步骤组成,表明了用户执行系统的操作序列。10.功能测试指依据系统功能规格说明书,利用系统功能是从输入域到输出值域映射的特点,对系统功能进

39、行彻底地测试白盒测试1.定义:基于系统或者组件的内部实现结构和逻辑寻找缺陷的测试技术2.常用的白盒测试技术:1基本路径测试2分支-条件测试3循环测试(数据流测试、程序插桩、符号测试)3基本路径测试里的各种概念:(1)基本路径:一条从起始节点到终止节点的路径并且至少包含一条其它基本路径没有包含的边,则这条路径为基本路径(2)控制流图:基于代码结构构造的有向图,可用于描述程序的控制结构(3)测试思想:根据程序的控制流图找出一个模块所需测试的基本路径,根据这些基本路径设计构造相应的测试用例 (4)环复杂度:用V(G)表示。用来衡量一个模块判定结构的复杂程度,在数量上表现为独立的路径条数,是需要测试的

40、基本路径数目的上限。V(G) = 闭合区域的数目 V(G) = 二值判定节点个数 + 1 V(G) = 边的数目-节点的数目 + 24分支条件测试 测试思想: 根据模块中的逻辑条件设计测试用例,使得被测模块中的每一个复合条件以及构成这个复合条件的每一个简单条件的真假情况至少被执行一次。 发现下列缺陷:(1)布尔变量错误(2)布尔括弧错误(3)关系操作符错误(4)算术表达式错误(5)布尔操作符错误 (6)遗漏布尔操作符(7)布尔操作符多余(8)布尔操作符不正确5.循环测试(1)测试思想:关注循环体结构的正确性,对循环变量运用类似于边界值测试的方法以验证循环体结构的正确性。(2)四种不同类型的循环

41、结构:(1)简单循环(2)嵌套循环(3)连接循环(4)非结构循环(3)数据流测试: 测试思想:根据被测模块中变量的定义和使用位置,构造其定义使用路径设计相应的测试用例 变量的定义节点:如果程序中某一语句i的执行能改变某程序变量V的值,则称V被语句i定义,可记作Def(V,i)。该语句的执行将会改变与之相关存储单元的内容 变量的使用节点:如果某一语句j的执行引用了内存中变量V的值,则称变量V被语句j使用,可记作Use(V,j)。该语句的执行将会改变与之相关存储单元的内容(4)程序插桩:借助往被测程序中插入操作来实现测试目的的方法设计插桩需考虑的问题:(1)探测哪些信息(2)在代码的什么部位设置探

42、测点(3)需要设置多少个探测点。断言是一种特殊的插桩,在程序中的特定部位插入的用以判断变量特性的语句(5)符号测试的思想:用代数符号代替具体的数值作为程序的输入,如果用符号运算相应获得的结果是正确的,那么所有符合条件的输入数值产生的结果都将是正确的6.JUnit是用Java语言编写测试脚本的一个测试框架,可用于测试使用Java语言开发的各类代码7.使用JUnit对被测对象进行白盒测试可参考以下步骤:(1)选择一种TestRunner运行测试代码,确定被测代码中是否存在缺陷(2)如果存在缺陷,定位并修改缺陷(3)再次运行测试代码验证缺陷是否被修改正确是否引入新问题8.区别error和failure:(1)Error很可能是测试环境的问题(2)Failure则是被测代码的问题3正确区分两者是测试异常的基础9.覆盖准则:用于描述在测试过程中,被测对象被测试的程度,有时候也称为软件测试覆盖准则或者测试数据完备准则,可以作为测试停止的标准,用于衡量测试是否充分,。或作为选取测试数据的依据,满足相同覆盖准则的测试数据是等价的10.白盒测试标准是根据程序内部结构制定的覆盖标准:1基于控制流的覆盖准则2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论