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

更新时间:2024-01-29 09:58:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章

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.软件测试各阶段示意图

第三章

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

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

3. 条件覆盖:设计若干测试用例,执行被测程序以后要使每个判断中每个条件的可能取值至少满足一次。(T1,T2,T3,T4……) 4. 判定-条件覆盖:设计足够的测试用例,使得判断中每个条件的所有可能至少执行一次取值,同时,所有判断的可能结果至少执行一次。(T1,T2,T3,T4,F1,F2,F3,F4)

5. 条件组合覆盖:设计足够的测试用例,使得每个判断中所有可能的条件取值组合至少执行一次。

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

a. 测试项目通过;

b. 测试项目没有通过,并且不存在变通方法,需要很大的修改;

c.测试项目没有通过,但存在变通方法,在维护后期或下一个版本改进;

d.测试项目无法评估或者无法给出完整的评估。此时必须给出原因。如果是因为该测试项目没有说明清楚,应该修改测试计划。

5) 提交测试报告。 第十一章 1. 测试自动化

? 定义:自动化测试把人为驱动的测试行为转化为机器执行的一种过程。即机器模拟手工测试步骤,通过执行由程序语言编制的测试脚本,自动地完成软件的单元测试、功能测试、负载测试或性能测试等全部工作。 自动化测试的优势:

? 自动运行的速度快,执行效率高,手工无法相比。 ? 测试结果准确。例如搜索用时即使是0.33秒或0.24秒,系统都会发现问题,不会忽视任何差异。

? 高复用性。一旦完成所用的测试脚本,可以一劳永逸运行很多遍。 ? 永不疲劳 ; ? 可靠 ;

? 独特的能力 ,如压力测试、负载测试。 2. 测试自实现的和方法 实现原理:

动化原理

方法:

A.代码分析法:一种白盒测试的自动化方法。类似于高级编译系统,在工具中定义类/对象/函数/变量等定义规则、语法规则等,在分析时对代码进行语法扫描,找出不符合编码规范的地方。 B.捕获和回放法: 一种黑盒测试的自动化方法。直接编写脚本来操作、控制、验证对象:包括对象识别、脚本技术、对运行结果进行比较。

怎样实现脚本技术

定义:脚本是一组测试工具的指令集合,是计算机程序的一种形式。 实现:脚本可以通过录制测试的操作产生,然后再做修改,可以减少

脚本开发的工作量。当然也可以直接用脚本语言编写脚本。 常见的几种脚本有:

(1)线性脚本,是录制手工执行的测试用例得到的脚本。这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放。

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

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

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

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

本文来源:https://www.bwwdw.com/article/htew.html

Top