当前位置:文档之家› 2015--软件测试--期末重点复习资料

2015--软件测试--期末重点复习资料

第一章1.软件测试正反两方面的观点正面观点:Bill Hetzel博士(软件测试领域的先驱,正向思维代表)主要观点是:软件测试是为了验证软件是否符合用户需求,即验证软件产品是否能正常工作。

反面观点:Glenford J. Myers(反向思维的代表):观点:测试是为了证明程序有错,而不是证明程序无错误。

2.软件测试的定义IEEE 的定义:☐在特定的条件下运行系统或构件,观察或记录结果,对系统的某个方面做出评价。

☐分析某个软件项以发现现存的与要求的条件之差别(即错误)并评价此软件项的特性。

正确的定义:软件测是由“验证(Verification)”和“有效性确认(Validation)”活动构成的整体。

3.软件测试在软件开发中的地位软件开发是生产制造软件;软件测试是验证开发出来软件的质量。

类比传统加工制造企业,软件开发人员就是生产加工的工人,软件测试人员就是质检人员。

关系应该是:1、没有软件开发就没有测试,软件开发提供软件测试的对象。

2、软件开发和软件测试都是软件生命周期中的重要组成部分3、软件开发和软件测试都是软件过程中的重要活动。

4、软件测试是保证软件开发产物质量的重要手段。

(网上)4.P11 V模型第二章1.软件缺陷定义:IEEE STD 729(1983)对软件缺陷给出了一个标准的定义:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题。

从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。

主要类型:软件缺陷的主要类型/现象有:☐功能、特性没有实现或部分实现;☐设计不合理,存在缺陷;☐实际结果和预期结果不一致;☐运行出错,包括运行中断、系统崩溃、界面混乱;☐数据结果不正确、精度不够;☐用户不能接受的其他问题,如存取时间过长、界面不美观。

产生原因:造成软件缺陷的主要因素:①技术问题算法错误、语法错误、计算和精度问、接口参数传递不匹配等。

②软件本身文档错误、用户使用场合(user scenario),时间上不协调或不一致性所带来的问题;系统的自我恢复或数据的异地备份、灾难性恢复等问题。

③团队工作误解、沟通不充分等。

从修复软件缺陷的代价来讨论测试为什么要尽早开始?因为每个阶段的工作中都可能发生错误,而前一阶段的成果是后一阶段的基础,倘若没有修复,缺陷会逐渐积累,因此越到后面,修改的代价也就越大。

若能尽早开始测试,排除软件开发中的错误,就能有效地减少后期工作遇到的问题,可以尽量避免修复软件缺陷的代价。

2.软件测试的分类•三种分类方法:•按测试的对象或范围分类,如单元测试、文档测试、系统测试等。

•按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等。

•根据测试过程中被测软件是否被执行,分为静态测试和动态测试。

•根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试。

3.软件测试各阶段示意图第三章(具体语句可看书或PPT)1. 白盒测试中的逻辑覆盖方法有以下6种:1.语句覆盖:设计若干测试用例,运行被测程序,使程序中每个可执行语句至少执行一次。

2.判定覆盖:设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即每个判断的真假值均曾被满足。

3.条件覆盖:设计若干测试用例,执行被测程序以后要使每个判断中每个条件的可能取值至少满足一次。

(T1,T2,T3,T4……)4.判定-条件覆盖:设计足够的测试用例,使得判断中每个条件的所有可能至少执行一次取值,同时,所有判断的可能结果至少执行一次。

(T1,T2,T3,T4,F1,F2,F3,F4)5.条件组合覆盖:设计足够的测试用例,使得每个判断中所有可能的条件取值组合至少执行一次。

6.路径覆盖:设计所有的测试用例,来覆盖程序中的所有可能的执行路径。

2.作业题!!!!第四章1.W模型2.V模型(第二章有)3.V模型与W模型对比(网上的)V模型:强调了在整个软件项目开发中需要经历的若干个测试级别,并与每一个开发级别对应;忽略了测试的对象不应该仅仅包括程序,没有明确指出对需求、设计的测试W模型:相对于V模型,W模型增加了软件各开发阶段中应同步进行的验证和确认活动。

W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。

W模型强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。

W模型有利于尽早地全面的发现问题。

但他与V模型相同,没有对软件测试的流程进行说明。

第五章1.单元测试定义:单元测试是按阶段进行测试是一种基本的测试策略。

单元测试是对软件基本组成单元进行的测试,而且软件单元是在与程序的其他部分相隔离的情况下进行独立的测试。

(书上)单元测试是一种细粒度的测试,是对软件基本组成单元进行的测试。

也称模块测试,属于白盒测试范畴。

(PPT)任务:单元测试的主要任务包括逻辑、功能、数据和安全性等各方面的测试,具体地说,包括单元中所有独立执行路径、数据结构、接口、边界条件、容错性等测试。

(书上)任务1:单元中所有独立执行路径测试任务2:单元局部数据结构测试任务3:模块接口测试任务4:单元边界条件测试任务5:单元的各条错误处理通路测试任务6:内存分析(PPT)2.代码评审的方法A代码走查;B正式会议审查;C走查与会议审查的对比;D检查表3.桩程序和驱动程序的作用地位驱动程序:也称驱动模块,用以模拟被测模块的上级模块,能够调用被测模块。

在测试过程中,驱动模块接受测试数据,调用被测模块并把相关的数据传送给被测模块。

桩程序:也称桩模块,用以模拟被测模块工作过程中所调用的下层模块。

桩模块由被测模块调用,它们一般只进行很少的数据处理,例如打印入口和返回,以便于检验被测模块与其下级模块的接口。

第六章1.系统测试系统测试一般由若干个不同的测试组成,目的是充分运行系统,验证整个系统是否满足非功能性的质量需求。

2.集成测试定义:集成测试是将已经过通过测试的单元按设计要求组合起来再进行的测试,以检查这些单元之间的接口是否存在问题。

集成测试的两种模式:非渐增式测试模式与渐增式测试模式1)非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序。

如大棒模式。

2) 渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。

如自顶向下结合方法,自下向上结合方法。

6种集成方法性能的比较3.功能测试定义:功能测试可以发生在单元测试中,也可以发生在集成测试、系统测试中进行,软件功能是最基本的,需要在各个层次保证功能执行的正确性。

对于软件测试,针对不同的应用系统,其测试内容的差异很大,但都可以归为界面、数据、操作、逻辑和接口等几个方面。

4.回归测试为保证软件中新的变化(新增加的代码、代码修改等)不会对原有功能的正常使用有影响而进行的测试。

也就是说,满足用户需求的原有功能不应该因为代码变化而出现任何新的问题。

5.性能测试定义:性能测试通过测试以确定系统运行时的性能表现,如得到运行速度、响应时间、占有系统资源等方面的系统数据。

目的:为了验证系统是否达到用户提出的性能指标,同时发现系统中存在的性能瓶颈,起到优化系统的目的。

性能测试过程步骤:1.确定性能测试的需求。

2.根据测试需求,选择测试工具和开发相应的测试脚本。

3.建立性能测试负载模型,就是确定并发虚拟用户的数量、每次请求的数据量、思考时间、加载方式和持续加载的时间等。

4.执行性能测试。

5.结果分析,并提交性能测试报告。

第七章1.验收测试定义:验收测试: 在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动。

它是技术测试的最后一个阶段,也称为交付测试。

验收测试完成标准:⑴完全执行了验收测试计划中的每个测试用例。

⑵在验收测试中发现的错误已经得到修改,并且通过了测试或者经过评估留待下一版本中修改。

⑶完成软件验收测试报告。

测试步骤:1) 制定测试计划、测试项、测试策略及验收通过准则,并经过客户参与的计划评审。

2) 建立测试环境,设计测试用例,并经过评审。

3) 准备测试数据,执行测试用例,记录测试结果。

4) 分析测试结果,根据验收通过准则分析测试结果,作出验收是否通过及测试评价。

通常会有4种情况:a. 测试项目通过;b. 测试项目没有通过,并且不存在变通方法,需要很大的修改;c.测试项目没有通过,但存在变通方法,在维护后期或下一个版本改进;d.测试项目无法评估或者无法给出完整的评估。

此时必须给出原因。

如果是因为该测试项目没有说明清楚,应该修改测试计划。

5) 提交测试报告。

第十一章1.测试自动化⏹定义:自动化测试把人为驱动的测试行为转化为机器执行的一种过程。

即机器模拟手工测试步骤,通过执行由程序语言编制的测试脚本,自动地完成软件的单元测试、功能测试、负载测试或性能测试等全部工作。

自动化测试的优势:⏹自动运行的速度快,执行效率高,手工无法相比。

⏹测试结果准确。

例如搜索用时即使是0.33秒或0.24秒,系统都会发现问题,不会忽视任何差异。

⏹高复用性。

一旦完成所用的测试脚本,可以一劳永逸运行很多遍。

⏹永不疲劳;⏹可靠;⏹独特的能力 ,如压力测试、负载测试。

2.测试自动化实现的原理和方法实现原理:方法:A.代码分析法:一种白盒测试的自动化方法。

类似于高级编译系统,在工具中定义类/对象/函数/变量等定义规则、语法规则等,在分析时对代码进行语法扫描,找出不符合编码规范的地方。

B.捕获和回放法: 一种黑盒测试的自动化方法。

直接编写脚本来操作、控制、验证对象:包括对象识别、脚本技术、对运行结果进行比较。

怎样实现脚本技术定义:脚本是一组测试工具的指令集合,是计算机程序的一种形式。

实现:脚本可以通过录制测试的操作产生,然后再做修改,可以减少脚本开发的工作量。

当然也可以直接用脚本语言编写脚本。

常见的几种脚本有:(1)线性脚本,是录制手工执行的测试用例得到的脚本。

这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放。

(2)结构化脚本,类似于结构化程序设计,具有各种逻辑结构、函数调用功能。

(3)数据驱动脚本,将测试输入存储在独立的(数据)文件中,而不是存储在脚本中。

(4)关键字驱动脚本,是数据驱动脚本的逻辑扩张。

第八章:判断子类(给出一个C类,编写一个D类)(木整理)。

相关主题