软件测试基础(复习资料)

软件测试基础(复习资料)
软件测试基础(复习资料)

软件测试复习内容

1.什么是测试?

IEEE定义:使用人工或自动化来测试某个程序,来验证它是否满足规定的需求或者实际结果和预期结果之间的差别.

简单定义:找出软件中的BUG

2.为什么要测试?

在软件开发过程中容易出现缺乏有效沟通,软件复杂,编程错误,需求不断变更,时间的压力,缺乏文档的代码,软件开发工具和人员的自大等原因引发的错误,通过测试能够找出其中的错误,解决错误,从而提高软件的质量.

3.测试的目的是什么?

证明软件没有问题(20世纪60年代)

发现软件中的错误(20世纪70年代)

验证软件与需求是否一致的一系列活动(现在)

4.软件的生命周期分为哪几个阶段?具体的内容是什么?

计划:确定软件开发总目标;给出软件各方面的设想;研究可行性和解决方案;给出评估计划;指定完整的实施计划

需求分析:对开发软件进行详细定义,给出《需求规格说明书》SRS

设计:在设计阶段把各项需求转换成相应的体系结构,给出概要设计

编码:将软件设计成计算机能识别的语言,给出《详细设计》

测试:检测软件是否符合用户需求

运行:将软件交付给用户使用

评价:用户对软件的好与坏给出判定

5.研发团队的组织架构与研发流程是什么?

瀑布模型螺旋模型 RUP模型 IPD 模型

6.测试阶段怎么划分?

测试计划阶段

测试设计阶段

测试实施阶段

测试执行阶段

7.什么是UT,IT,ST?它们有什么区别?

单元测试:测试软件的基本组成单元来进行正确性检验,目的在于检测软件模块对《详细设计说明书》的符合程度,属于白盒测试,测试范围为单元内部的数据结构,逻辑控制,异常处理评估标准为逻辑覆盖率

集成测试:测试模块或子系统组装后功能以及模块间接口是否正确,目的在于检测软件模块对《概要设计说明书》的符合程度。属于灰盒测试,测试范围为模块之间接口与接口数据传递的关系,以及模块组合后的功能,评估标准为接口覆盖率

系统测试:将被测软件系统和计算机硬件,数据库,外设,人员以及其它软件结合在一起,在实际运行环境下对计算机系统进行的一系列的组装测试和确认测试。目的在于检测软件对

《需求规格说明书》的符合程度。属于黑盒测试,测试范围为整个系统,评估标准为测试用例对需求规格的覆盖率

8.什么是回归测试?为什么要回归测试?回归测试的流程是什么?回归测试的测试策略有哪些?

回归测试:是软件维护阶段,对缺陷进行修复后的测试。

目的在于:验证缺陷已经得到修复,检测是否引入新的缺陷

流程:1.在测试策略制定阶段,制定回归测试策略

2.确定需要回归测试的版本

3.测试版本发布后,按照回归测试策略来执行回归测试

4.回归测试通过,关闭缺陷跟踪单

5.回归测试不通过,缺陷跟踪单返回给开发人员,开发人员重新修改BUG.再次提交给测试人员回归测试

测试策略:1.完全重复测试:重新执行前期设计的用例,来确认问题修改的真确性和修改的扩散局部影响性

2.选择性重复测试:

1)覆盖修改法:针对被修改的部分,选取或重新构造测试用例验证没有错误再次发生的选择方法

2)周边影响法:该方法包括覆盖修改法,还要分析修改后对扩散的影响

3)指标达成法:先确定一个达成的指标,基于这种要求选择一个最小的测试用例集合

9.画V&V模型?

10.软件质量的定义是什么?影响软件质量的因素是哪些?ISO 2000的八大原则是什么?软件质量:一个实体的所有属性,基于这些属性所能满足明显的或隐含的需求,质量就是实体基于这些特性满足需求的程度

影响因素:技术流程组织

ISO 2000八大原则:

以顾客为中心

领导作用

全员参与

过程方法

管理的系统方法

持续改进

基于事实的决策方法

互利的供方关系

11.CMM/CMMI是什么?它的等级怎么划分?有什么目的?有什么作用?

能力成熟度模型(集成)

初始级可重复级已定义级已管理级优化级

作用

1.评估组用来识别组织中的强处和弱点。

2.评价组用来识别选择不同的业务承包商的风险和监督合同

3.管理者用来了解其组织的能力,并了解为了提高其能力成熟度而进行软件过程改进所需要进行的活动

4.技术人员和过程改进组用来作为指南,指导他们在组织中定义和改进软件过程

12.描述软件质量模型中的内容?

功能性可靠性易用性效率维护性可移植性

13.测试的方法有哪些?

按是否使用工具:人工测试自动化测试

按软件是否运行:静态测试动态测试

按测试的重点:白盒测试黑盒测试灰盒测试

14.什么是白盒测试?

依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试。

15.什么是黑盒测试?

把测试对象看做一个黑盒,只考虑整体特性,不考虑内部具体实现

16.什么是静态测试?

不运行被测软件系统,而采用其他手段和技术对被测软件进行检测的一种技术

17.什么是动态测试?

运行被测软件系统的测试

18.什么是人工测试?

测试活动由人来完成,狭义上指测试执行由人工完成。

19.什么是自动化测试?

通过计算机模拟人的测试行为,替代人的测试活动,狭义上指测试执行由计算机来完成

20.逻辑覆盖关注的内容是哪些?

逻辑覆盖测试

语句覆盖

条件覆盖

判定覆盖

路径覆盖

判定-条件覆盖

21.常见的黑盒测试方法有哪些?

等价类划分法

边界值分析法

因果图分析法

判定表法

正交试验法

状态迁移法

22.什么是同行评审?

同行评审:(Peer Review)是一种通过作者的同行来确认缺陷和需要变更区域的检查方法。需要进行同行评审的特定产品在定义项目软件过程的时候被确定并且作为软件开发计划的一部分被安排了进度。

? 需要前期准备、计划和时间进度表

? 越早越好

23.自动化测试有什么意义?

1.提高回归测试效率

2.减少重复劳动时间

3.减少软件发布的时间

4.测试脚本能重复利用。

24.测试用例的八大要素是什么?

测试用例编号

测试项目

测试标题

重要级别

预置条件

输入

操作步骤

预期输出

25.什么是缺陷管理?引入的原因有哪些?

缺陷管理的目的:? 保证信息的一致性;保证缺陷得到有效跟踪,解决;

? 获取正确的Bug信息,用作缺陷分析和产品度量。

引入原因:

1.开发过程中缺乏有效沟通,或者没有沟通

2.软件负责度越来越高

3.编程中产生的错误

4.需求不断变更

5.项目进度的压力

6.不重视开发文档

7.软件开发工具本身隐藏的问题

26.缺陷的属性有哪些?

Bug发现人 bug发现时间 bug的状态 bug严重程度 bug所属版本 bug修改日期27.画缺陷管理流程图?

28.如何写缺陷跟踪单?

29.什么是测试覆盖率?

? 覆盖率是用来度量测试完整性的一个手段。覆盖率是测试技术有效性的一个度量。覆盖率=(至少被执行一次的item数)/item的总数;

30.会计算语句覆盖率,判定覆盖率,条件覆盖率,判定-条件覆盖率,路径覆盖率,指令块

覆盖率等。

31.什么是系统测试?

System Testing--是将已经集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行使用的环境下,对计算机系统进行系列的测试活动;

32.系统测试的目的是什么?

1.通过和系统需求定义做比较,发现软件和系统定义不符合的地方

2.系统测试的测试用例应根据需求分析说明书来设计,并在实际使用环境下运行

33.系统测试的类型有哪些?

1.功能测试

概念

根据产品的需求规格说明书和测试需求列表,验证产品的功能实现是否符合产品需求规格

目标

1.是否有遗漏需求。

2.是否正确的实现所有功能

3.隐示需求在系统是否实现

4.输入,输出是否正确

2.性能测试

概念

用来测试软件在集成系统中的运行性能

目标

度量系统相对于预定义目标的差距

3.压力测试

概念

压力测试:在一定的软硬件及网络环境中,通过模拟大量的用户执行多种业务处理大量数据,使系统在极限环境下长时间运行,目的在于寻找系统的失效点

负载测试:在一定的软硬件及网络环境下,通过模拟不同的用户,执行一种或多种业务,观察系统在不同负载下的性能表现。

目标:

通过极限测试方法,发现系统在极限或恶劣的环境中自我保护能力,主要验证系统的可靠性

4.容量测试

概念

使系统承受超额的数据容量来发现它是否能够正确处理

目标

是面向数据的,显示系统可以处理目标内确定的数据容量

5.安全性测试

概念

用来验证集成在系统内的保护机制是否能够在实际中保护系统不受非法的侵入。

目标

通过安全性测试,来检查系统的功能性是否完善

6.GUI测试

概念

指界面的外形是否与设计内容一致

7.可用性测试

概念

检测用户在理解和使用系统方面到底有多好?

8.安装测试

概念

检测软件在安装过程中的错误

目标

不仅仅找安装软件本身的错误,还要找到安装文档的错误。

9.配置测试

概念

测试系统在各种软硬件配置,不同的参数配置下系统具有的功能和性能

目标

验证全部配置的可操作性和有效性,特别需要对最大配置,最小配置和特殊配置进行测试

10.异常测试(恢复性测试)

通过人工干预手段使系统发生软,硬件异常,通过验证系统异常前后的功能和运行状态,达到检验系统容错,排错和恢复的能力

11.备份测试

验证系统在软件或者硬件的事件中备份它数据的能力

12.健壮性测试

用于测试系统在出现故障时,是否能够自动恢复或忽略故障继续运行

13.文档测试

验证用户文档是否正确的并且保证操作手册的过程能够正确工作

14.在线帮助测试

验证系统的实时在线帮助的可用性和正确性

15.网络测试

在网络环境下和其他设备对接,进行系统功能,性能与指标方面的测试,保证设备对接正常

16.稳定性测试

评价系统在一定负荷情况下,长时间的运行情况

34.系统测试执行的活动有哪些?

1.搭建测试环境

2.系统测试预测试

3.转系统测试评审

4.执行系统测试

5.写系统测试报告

35.什么是单元测试?目的是什么?

对软件中的最小单位进行的测试

目的:

1.验证代码是否与设计相符合

2.发现设计和需求中存在的错误

3.发现在编码过程中引入的错误

4.跟踪需求和设计的实现

36.单元测试的关注点是什么?

单元接口局部数据接口独立路径出错处理边界条件

37.什么是驱动?什么是桩?

驱动

1.接受测试数据,包含测试用例输入和预期输出

2.把测试用例输入传给要测试的单元

3.将被测单元的实际输出和预期输出进行比较,得到测试结果

4.将测试结果输出到指定的位置

1.从测试角度模拟被调用的单元

2.需要针对不同的输入,返回不同的期望值,模拟所代替单元的不同功能

3.返回的期望值根据输入和被模拟单元的详细设计来确定

38.单元测试的测试策略是哪些?各有什么优缺点?

孤立的测试策略

方法:

不考虑每个模块与其它模块之间的关系,为每个模块设计桩和驱动,每个模块进行独立的单元测试

优点:

方法简单,易操作,是纯粹的单元测试

缺点:

驱动和桩的数量很庞大,效率低

自顶向下的测试策略

方法:

先对最顶层的单元进行测试,把顶层所调用的单元做成桩,依次类推

优点:

节省了驱动的工作量,提高了测试效率

缺点:

随着单元的渐渐加入,测试过程变的复杂了,增加了开发和维护成本

自低向上的测试策略

方法:

对模块的最底层开始先测试,模拟调用该模块的模块做成驱动。依次类推。

优点:

节省了桩的开发工作量,提高了测试效率

缺点:

不是纯粹的单元测试,底层的测试质量对上层的测试影响很大。

39.什么是集成测试?目的是什么?

集成测试定义

在单元测试的基础上,把所有的函数按照《概要设计说明书》要求组装成子系统或系统所进行的测试

集成测试目的

1.验证接口是否与设计相符合

2.发现设计和需求中存在的错误

40.集成测试的关注点是什么?

单元间的接口

1.在把各个模块连接起来的时候,穿越模块间的数据是否会丢失

2.全局数据结构是否有问题,会不会被异常修改

集成后的功能

1.各个子功能组合起来,能否达到预期要求的父功能

2.一个模块的功能是否会对另一个模块的功能产生不利的影响

3.单个模块的误差累积起来,是否会扩大,从而达到不可接受的程度

41.集成测试的测试策略是哪些?各有什么优缺点?

大爆炸集成

定义

把所有的系统组件一次性集合到被测系统中,不考虑组件之间的相互依赖关系或者可能存在的风险

优点

方法简单,只要很少的驱动和桩,可并行工作,对人人,物力资源的利用率高

缺点

成功率小,不容易定位,内部接口测试的不充分

使用范围

维护性产品,产品较小系统等。

自顶向下集成

定义

采用和设计一样的顺序对系统进行测试,在第一时间内对系统的控制接口进行验证策略分类

深度优先策略

纵向深入测试

广大优先策略

横向深入测试

优点

不需要驱动,内部接口测试充分,容易定位,时间-控制接口较早的得到测试

缺点

需要大量的桩,底层测试较晚,时间长,并行性差

使用范围

控制结构比较清晰和稳定,高层接口较小的产品等

自底向上集成

定义

从程序模块结构的最底层开始组装和测试

优点

底层模块较早的得到测试,减少了桩的工作量,并行性比自顶向下集成要好。

缺点

需要大量的驱动,顶层测试较晚,

使用范围

底层接口比较稳定,变动较少,底层组件较早完成的产品等

三明治集成

定义

把系统划分成三层,中间层为目标层,目标层的上面一层用自顶向下的方法,目标层的下面一层用自底向上的方法测试。

优点

集合了自顶向下和自底向上的两种集成优点

缺点

中间部分测试的不充分

使用范围

大部分软件开发项目都可以使用

基干集成

定义

在嵌入式系统中,对内核部分(基干部分)和外围部分进行的集成测试。

优点

具有三明治集成的优点

缺点

由于局部使用大爆炸集成策略,所以有些接口部分测试不完整。必须分析系统结构和相互依存性。要大量的驱动和桩

使用范围

嵌入式系统

分层集成

定义

系统能通过逻辑和物理划分层次使用的一种策略

优点

有大爆炸,自顶向下,自底向上,三明治的优点

缺点

有大爆炸,自顶向下,自底向上,三明治的缺点

使用范围

通信系统

基于功能的集成

定义

从功能的角度出发,按照功能的关键程度对模块的集成顺序进行组织

优点

功能明确,需要的驱动较少。与大爆炸相比,测试比较充分,容易定位。对功能较早的完成测试等

缺点

存在冗余测试,与大爆炸相比,时间成本较高,与自顶向下和自底向上相比,不容易定位

使用范围

关键功能具有较大风险的产品。技术探索型项目等

基于消息的集成

定义

系统对消息要求较高的产品使用的策略

优点

关键消息处理较早完成,进度比自顶向下,自底向上,三明治集成要短。

缺点

有较大的冗余测试,接口测试不充分

使用范围

对于消息级别要求较高的项目

基于进度的集成

定义

在兼顾进度和质量两者之间寻找了一个均衡点

优点

具有较高的并行性,能够有效的缩短项目开发的进度

缺点

桩和驱动的量庞大,模块的不稳定,导致冗余测试比较多。

使用范围

进度优先级高于质量的项目

基于风险的集成

定义

基于一个假设,集中到认为风险较高的模块中进行测试

优点

最具有风险的模块最早进行验证,有助于系统的快速稳定

缺点

需要对各组件的风险有一个清晰的认识

使用范围

有些模块具有较大的风险,并且没有信心的项目

42.配置管理的术语,配置管理的活动有哪些?

配置计划

是开展配置管理活动的基础。

要素

配置管理人员的组织和职责

配置项的命名规则

配置管理工具以及配置库结构

标识的配置项和位置

权限分配和管理方法

配置库备份的周期,方法

变更控制的流程和操作方法

版本发布的计划和策略

基线审计计划

配置标识

对软件配置项的选择,划分和对配置项的功能物理属性进行描述的过程

配置控制

对配置项在完成基线化后所产生的变更的评估,协调,批准,驳回以及实现的过程配置状态发布

是跟踪软件的更改的过程,保证对正在进行和已完成的变更进行记录,监视并通报给项目组和相关成员

配置审计

对配置管理的独立的检查过程,确认受控软件配置项满足需求并就绪

最新软件测评师考试基础知识名师精编资料汇编

软件评测基础知识 软件测试基本概念 软件质量与软件测试:软件测试是软件质量保证工作的一个重要环节。软件测试和软件质量保证是软件质量工程的两个不同层面的工作。软件测试只是软件质量保证工作中的一个重要环节。质量保证(QA)的工作是通过预防、检查与改进来保证软件的质量,它所关注的是软件质量的检查和测量。软件测试所关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。 软件测试定义:软件测试就是在软件投入运行前对软件需求分析、软件设计规格说明和软件编码进行的查错(包括代码执行活动与人工活动)。软件测试是为了发现错误而执行程序的过程。软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序的错误。是在软件投入运行前,对软件需求分析、软件设计规格说明和软件编码的最终复审,是软件质量保证的关键步骤。 软件测试目的:(1)测试是一个为了寻找错误而运行程序的过程;(2)一个好的测试用例是指很可能找到迄今为止未发现的错误的用例;(3)一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。 软件测试的目标是能够以耗费最少时间与最小工作量找出软件系统中潜在的各种错误与缺陷。 测试只能证明程序中错误的存在,但不能证明程序中没有错误。 软件测试原则:(1)尽早地并不断地进行软件测试;(2)程序员或程序设计机构应避免测试自己设计的程序;(3)测试前应当设定合理的测试用例;(4)测试用例的设计不仅要有合法的输入数据,还要有非法的输入数据;(5)在对程序修改之后要进行回归测试;(6)充分注意测试中的群集现象;(7)妥善保留测试计划、全部测试用例、出错统计和最终分析报告,并把它们作为软件的组成部分之一,为软件的维护提供方便;(8)应当对每一个测试结果做全面检查;(9)严格执行测试计划,排除测试的随意性。 软件测试对象:软件的测试不仅仅是程序的测试,软件的测试应贯穿于整个软件生命同期中。在软件定义阶段产生的可行性报告、项目实施计划、软件需求说明书或系统功能说明书,在软件开发阶段产生的概要测试说明书、详细设计说明书,以及源程序等都是软件测试的对象。 软件测试过程模型:V模型、W模型、H模型。 软件测试模型的使用:在实际软件测试的实施过程中,应灵活地运用各种模型的优点,通常可以在W 模型的框架下,运用H模型的思想进行独立的测试。当有变更发生时,按X模型和前置模型的思想进行处理。同时,将测试和开发紧密结合,寻找恰当的就绪点开始测试,并反复进行迭代测试,以达到按期完成预定的目标。 软件问题分类:软件错误、软件缺陷、软件故障、软件失效。 软件测试类型: 按开发阶段分:单元测试、集成测试、确认测试(有效性测试)、系统测试 确认测试、验收测试 按测试实施组织分:开发方测试(验证测试或alpha测试)、用户测试(beta)、第三方测试(独立测试) 按测试方式分:动态测试、静态测试 按测试技术分:白盒测试、黑盒测试、灰盒测试 软件测试过程:用黑盒法设计基本的测试方案,再利用白盒法补充一些必要的测试方案。可以用以下策略结合各种方法: (1)在任何情况下都应该使用边界值分析的方法; (2)必要时用等价划分法补充测试方案; (3)必要时用错误推测法补充测试方案; (4)如果在程序的功能说明中含有输入条件的组合,最好在一开始就用因果图法,然后再按以上(1)、(2)、(3)步进行。 (5)对照程序逻辑,检查已设计出的设计方案。可以根据对程序可靠性的要求采用不同的逻辑覆盖标

软件测试技术知识点

一、软件测试的定义 软件测试是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作。 1.软件测试与调试的区别? (1)测试是为了发现软件中存在的错误;调试是为证明软件开发的正确性。 (2)测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。 (3)测试是有计划的,需要进行测试设计;调试是不受时间约束的。 (4)测试经历发现错误、改正错误、重新测试的过程;调试是一个推理过程。(5)测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的"飞跃"。 (6)测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员完成。 (7)大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。 2.对软件测试的理解?

软件测试就是说要去根据客户的要求完善它.即要把这个软件还没有符合的或者是和客户要求不一样的,或者是客户要求还没有完全达到要求的部分找出来。 (1)首先要锻炼自己软件测试能力,包括需求的分析能力,提取能力,逻辑化思想能力,即就是给你一个系统的时候,能够把整个业务流程很清晰的理出。 (2)学习测试理论知识并与你锻炼的能力相结合。 (3)想和做。想就是说你看到任何的系统都要有习惯性的思考;做就是把实际去做练习,然后提取经验。 总结测试用例,测试计划固然重要,但能力和思想一旦到位了,才能成为一名合格的软件测试工程师。 二、软件测试的分类 1.按照测试技术划分 (1)白盒测试:通过对程序内部结构的分析、检测来寻找问题。检查是否所有的结构及逻辑都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。--结构测试 (2)黑盒测试:通过软件的外部表现来发现错误,是在程序界面处进行测试,只是检查是否按照需求规格说明书的规定正常实现。--性能测试 (3)灰盒测试:介于白盒测试与黑盒测试之间的测试。

软件测试复习题_带答案

软件测试复习题 一、判断 (01)测试是为了验证软件已正确地实现了用户的要求。错 (02)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。对(03)白盒测试不仅与程序的内部结构有关,还要考虑程序的功能要求。错 (04)黑盒测试的测试用例是根据程序内部逻辑设计的。错 (05)黑盒测试的测试用例是根据应用程序的功能需求设计的。对 (06)为了快速完成集成测试,采用一次性集成方式是适宜的。错 (07)在软件开发过程中,若能推迟暴露其中的错误,则为修复和改进错误所花费的代价就会降低。错 (05)在软件开发过程中,若能尽早暴露其中的错误,则为修复和改进错误所花费的代价就会降低。对 (09)单元测试通常由开发人员进行。对 (10)压力测试通常需要辅助工具的支持。对 (11)压力测试不需要辅助工具的支持。错 (12)测试人员说:“没有可运行的程序,我无法进行测试工作”。错 (13)软件测试员可以对产品说明书进行白盒测试。错 (14)软件测试员无法对产品说明书进行白盒测试。对 (15)在设计测试用例时,应包括合理的输入条件和不合理的输入条件。对 二、选择 1、用黑盒技术设计测试用例的方法之一为( a ) A)因果图 B)逻辑覆盖 C)循环覆盖 D)基本路径测试 2、软件测试的目的是( b) A)避免软件开发中出现的错误 B)发现软件开发中出现的错误 C)尽可能发现并排除软件中潜藏的错误,提高软件的可靠性 D)修改软件中出现的错误 3、下列软件属性中,软件产品首要满足的应该是( a ) A)功能需求B)性能需求C)可扩展性和灵活性D)容错纠错能力 4、坚持在软件的各个阶段实施下列哪种质量保障措施,才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期( a)。 A)技术评审 B)程序测试 C)改正程序错误D)管理评审 5、以程序的内部结构为基础的测试用例技术属于( d )。

软件测试基本知识

软件测试基本知识 1、测试的定义 软件测试是软件工程过程的一个重要阶段,是在软件发布前对软件开发各阶段产品的最终检查,是为了保证软件开发产品的正确性、完全性和一致性而检测软件错误、修正软件错误的过程。 软件测试是: ①程序测试是为了发现错误而执行程序的过程; ②测试是为了证明程序有错,而不是证明程序无错误; ③一个好的测试用例是在于它能发现至今未发现的错误; ④一个成功的测试是发现了至今未发现的错误的测试。 软件开发的目的是开发出实现用户需求的高质量、高性能的软件产品,而软件测试是以检查软件功能和其他非功能特性为核心,是软件质量保证的关键,也是成功实现软件开发目标的重要保障。 2、测试的种类 从测试方法角度,测试分为: 1.黑盒测试:是功能测试、数据驱动测试或基于规格说明的测试。在不考虑程序内部结构和内部特性的情况下,测试者依据该程序功能上的输入输出关系,或是程序的外部特性来设计和选择测试用例,推断程序编码的正确性。 2.白盒测试:是结构测试、逻辑驱动测试或基于程序的测试。测试者熟悉程序的内部结构,依据程序模块的内部结构来设计测试用例,检测程序代码的正确性 从测试发生的时间顺序,测试分为: 1.单元测试:是对软件基本单元的测试 2.集成测试:对由个模块组装而成的系统进行测试,检查各模块间的接口和通信 3.验收测试:验证软件的功能和性能及其它特性是否与用户的要求一致。 4.系统测试:是将通过验收测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列确认测试。系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。 在MSF中,测试分为2大类:

软件测试技术经典教程笔记(修).docx

第一章基础知识 1.1、软件 1)、软件=程序+文档 2)、分类 功能:系统+应用 架构:单机+C/S+B/S 用户:产品+项目 规模:小型+中型+大型 1.2、Bug 1)、类型一(广义上,软件生命周期,与用户需求不符的问题): 完全没有实现的功能 基本实现功能,但有功能上或性能上的问题 实现了用户不需要的功能 2)、类型二(测试执行阶段的问题) Defect---------Requirements&Design Error-----------Development Bug------------Testing Failure---------Post production 1.3、测试 1)、概念: 测试是为了检验实际的软件是否符合用户需求,所以不能为了发现错误而发现错误。使用人工或自动手段,来运行或测试某个系统的过程。 2)、测试环境:硬件+软件+网络 要求:真实(项目、产品)+干净+无毒+独立(测试与开发) 1.4、测试用例 测试用例=输入+输出+测试环境 便于团队交流,便于重复测试,便于跟踪统计,比纳与用户自测 开发生命周期 需求分析→概要设计→详细设计→编码→维护 测试生命周期 测试计划→测试设计→测试执行→测试评估 需求分析和测试计划完成后,根据《系统需求规格说明书》和软件原型(DEMO)写测试用例 1.5 其他 1)、测试人员素质要求:细心、耐心、信心、服务意识、团队合作意识、沟通能力 2)、如何成为优秀的测试工程师:1、不断学习充电2、阅读原版书籍3、阅读缺陷管理系 统中的缺陷报告4、阅读高手写的测试用例5、学习产品相关 的业务知识

1.6 软件测试的基本规则 1) Zero Bug 与Good Enough Good Enough原则:不充分测试是不负责任,过分的测试是一种资源浪费。 参考:*遗留bug不超过10个,严重的不超过5个 *测试用例执行率为100%,通过率为95% *单元测试,关键模块语句覆盖率达到100%,分支覆盖率达到85% 2) 不要视图穷举法 3) 开发人员不能既是运动员又是裁判员 4) 软件测试要尽早执行 一般情况下,软件80%的缺陷集中在20%的模块中。 7) 缺陷具有免疫性 缺陷具有免疫性,需要根据新版本修改维护测试用例,另外,有一个值得注意的经验:没修复3-4个bug,可能会产生一个新bug。 第二章测试分类 2.1、是否运行程序 Static Testing------------代码规范、界面、文档 Dynamic Testing--------运行程序 2.2、根据阶段分类 Unit Testing(单元测试)----------10% 最小模块,依据源程序和《详细设计》 白盒测试人员||开发人员 编译代码→静态测试→动态测试 桩模块(Stub)、驱动模块(Driver) Integration Testing(集成测试)----------20% 模块间的接口,依据单元测试的模块和《概要设计》 白盒测试人员||开发人员 一般单元和集成同步进行 System Testing(系统测试)----------40% 整个系统(功能、性能、软硬件环境),依据《需求规格说明书》 黑盒测试工程师 Acceptance Testing(验收测试)----------20% 整个系统(功能、性能、软硬件环境),依据《需求规格说明书》和验收标准

软件测试复习题集1解答

软件测试复习题1 一、判断题(10题,10分) 1.程序员兼任测试员可以提高工作效率。(×) 2.测试用例的数目越多,测试的效果越好。(×) 3.软件测试是有风险的行为,并非所有的软件缺陷都能够被修复。(√) 4.软件质量保证和软件测试是同一层次的概念。(×) 5.验收测试是以最终用户为主的测试。(√) 6.没有发现错误的测试是没有价值的。(×) 7.只要能够达到100%的逻辑覆盖率,就可以保证程序的正确性。(×) 8.在边界值方法中,对于一个有n个变量的函数作最坏情况测试,生成的测试用例个数是7n个。(×) 4n+1 9.我们有理由相信只要能够设计出尽可能好的测试方案,经过严格测试之后的软件可以没有缺陷。(×) 10.单元测试属于动态测试。(√) 11.软件生存周期是从软件开始开发到开发结束的整个时期。(×) 12.传统测试以发现错误为目的,现在测试已经扩展到了错误预防的范畴。(√) 13.调试从一个已知的条件开始,使用预先定义的过程,有预知的结果;测试从一个未知的条件开始,结束的过程不可预计。(×) 14.软件测试的生命周期包括测试计划、测试设计、测试执行、缺陷跟踪、测试评估。(√) 15.白盒测试往往会造成测试用例之间可能存在严重的冗余和未测试的功能漏洞。(×) 16.在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。(√) 17.可以把不合格的开发人员安排做测试。(×) 18.传统测试是在开发的后期才介入,现在测试活动已经扩展到了整个生命周期。(√) 19.在所有的黑盒测试方法中,基于决策表的测试是最为严格、最具有逻辑性的测试方法。(√) 20.永远有缺陷类型会在测试的一个层次上被发现,并且能够在另一个层次上逃避检测。(√) 二、填空题:(10空,10分) 1.软件开发过程中所产生的(需求规格说明)、概要设计规格说明、(详细设计规格说明)以及(源程序)都是软件测试的对象。 2.按照软件测试用例的设计方法而论,软件测试可以分为(白盒测试法)和(黑盒测试法)。 3.按照软件测试的策略和过程来分类,软件测试可分为单元测试、(集成测试)、(系统测试)、(验证测试)和确认测试。 4.质量管理是指以组织为质量中心、企业全员参与为基础,为追求客户满意和组织所有受益者满意而建立和形成的一整套质量方针、目标和(体系)。质量管理

软件测试基础知识汇总

黑盒测试主要是为了发现以下错误: 1、是否有不正确或遗漏的功能? 2、在接口上,输入能否正确地接受?能否输出正确的结果? 3、是否有数据结构错误或外部信息(例如数据文件)访问错误? 4、性能上是否满足要求? 5、是否有初始化或终止性错误? 黑盒测试用例方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交实验设计法、功能图法。 等价类划分法:把程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据作为测试用例,每一类的代表性数据在测试的作用等价于这一类中的其他值。 边界值分析法:对输入或输出的边界值进行测试,通常边界值分析法是作为等价类划分的补充,其测试用例来自等价类的边界。 错误分析法:基于经验和直觉推测程序中可能存在的错误,从而对有针对性的设计测试用例的方法。 因果图法:利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 判定表驱动法:判定表是分析和表达多逻辑条件下执行不同操作的。 正交实验法:从大量的数据中挑选适量的,有代表性的点,从而合理地安排实验的一种科学测试方法。 功能图法:由状态迁移图和布尔函数组成,状态迁移图用状态和迁移来描述,一个状态指出数据输入的位置(或时间),而迁移则指明状态的改变,同时要依靠判定表或因果图表示的逻辑功能。 折叠LR函数: lr_start_transaction 为性能分析标记事务的开始 lr_end_transaction 为性能分析标记事务的结束 lr_rendezvous 在Vuser 脚本中设置集合点 lr_think_time 暂停Vuser 脚本中命令之间的执行 lr_end_sub_transaction 标记子事务的结束以便进行性能分析

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

第一章 1.软件测试正反两方面的观点 正面观点:Bill Hetzel博士(软件测试领域的先驱,正向思维代表)主要观点是:软件测试是为了验证软件是否符合用户需求,即验证软件产品是否能正常工作。 反面观点:Glenford J. Myers(反向思维的代表): 观点:测试是为了证明程序有错,而不是证明程序无错误。 2.软件测试的定义 IEEE 的定义: ?在特定的条件下运行系统或构件,观察或记录结果,对系统的某个方面做出评价。 ?分析某个软件项以发现现存的与要求的条件之差别(即错误)并评价此软件项的特性。 正确的定义:软件测是由“验证(Verification)”和“有效性确认(Validation)”活动构成的整体。 3.软件测试在软件开发中的地位 软件开发是生产制造软件;软件测试是验证开发出来软件的质量。类比传统加工制造企业,软件开发人员就是生产加工的工人,软件测试人员就是质检人员。 关系应该是: 1、没有软件开发就没有测试,软件开发提供软件测试的对象。 2、软件开发和软件测试都是软件生命周期中的重要组成部分

3、软件开发和软件测试都是软件过程中的重要活动。 4、软件测试是保证软件开发产物质量的重要手段。(网上) 4.P11 V模型 第二章 1.软件缺陷 定义:IEEE STD 729(1983)对软件缺陷给出了一个标准的定义: 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题。 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。主要类型:软件缺陷的主要类型/现象有: ?功能、特性没有实现或部分实现; ?设计不合理,存在缺陷; ?实际结果和预期结果不一致; ?运行出错,包括运行中断、系统崩溃、界面混乱;

软件测试基础知识整理

软件测试基础教程 测试是软件生存周期中十分重要的一个过程,是产品发布、提交给最终用户前的稳定化阶段。 一、测试的分类: 从测试方法的角度分为: (1)手工测试:不使用任何测试工具,根据事先设计好的测试用例来运行系统,测试各功能模块。 (2)自动化测试:利用测试工具,通过编写测试脚本和输入测试数据,自动运行测试程序。目前最常用的自动化测试工具是基于GUI的自动化测试工具,基本原理都是录制、回放技术。 > 从整体的角度分为: (1)单元测试:是针对软件设计的最小单位—程序模块,进行正确性检验的测试工作。一般包括逻辑检查、结构检查、接口检查、出错处理、代码注释、输入校验、边界值检查。单元测试的依据是系统的详细设计;一般由项目组开发人员自己 完成。 (2)集成测试:在单元测试的基础上,将所有模块按照设计要求组装进行测试。一般包括逻辑关系检查、数据关系检查、业务关系检查、模块间接口检查、外部接口检查。 (3)系统测试:系统测试是在所有单元、集成测试后,对系统的功能及性能的总体测试。 (4)确认测试:模拟用户运行的业务环境,运用黑盒测试方法,验证软件系统是否满足用户需求或软件需求说明书中指明的软件特性(功能、非功能)上的。 从测试原理上分为: . (1)白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。 (2)黑盒测试:是通过使用整个软件或某种软件功能来严格地测试,而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。在测试时, 把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它 只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收和正确的输出。 黑盒测试方法主要有等价类划分、边界值分析、因—果图、错误推测法。 A、等价类划分:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子 集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试 用例设计方法。 B、边界值分析:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是 发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错 误。 C、错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的 方法。错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特 殊情况,根据他们选择测试用例。例如,在单元测试时曾列出的许多在模块中常见的 错误。以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据 和输出数据为0的情况。输入表格为空格或输入表格只有一行。这些都是容易发生错 误的情况。可选择这些情况下的例子作为测试用例。

软件测试基础知识总结

一、什么是软件测试? 1979年,myer:软件测试就是为了发现错误而执行程序或系统的过程。 1983年,IEEE:软件测试即使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 二、现代软件测试活动的内容? 制定测试计划、设计测试用例、实施测试、提交缺陷报告、测试总结 三、软件测试的目的? GrenfordJ.Myers在《The Art of Software Testing》一书中的观点: 1、测试是程序的执行过程,目的在于发现错误 2、一个成功的测试用例在于发现至今未发现的错误 3、一个成功的测试是发现了至今未发现的错误的测试 简单的说,测试的根本目的就是确保最终交给用户的产品符合用户的需求,在产品交给用户之前尽可能多的发现并改正问题。 四、测试一般要达到的目标? 确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明; 确保产品满足性能和效率的要求; 确保产品是健壮的和适应用户环境的。 五、软件测试分类? 1、按测试策略分类: a静态测试与动态测试 静态测试 定义:不运行被测程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。 Ps:通过分析或检查源程序的文法、结构、过程、接口等来检验程序的正确性,找出缺陷和可疑之处,例如不匹配的参数、不适当的分支嵌套和循环嵌套、未使用过的变量、空指针的引用等;可采用人工和软件工具进行;静态测试工具的代表:telelogic公司的logiscope 软件、PR公司的PRQA软件等。 静态测试特点: 不必动态地运行程序,也不必进行测试用例设计和结果判断等工作; 可由人工进行,充分发挥人得逻辑思维优势; 不需要特别的条件,容易展开。 静态测试要点: 代码审查(code inspection或code review)、代码走查(walkthrough)、桌面检查、技术评审(软件需求分析和设计评审)、静态分析(使用软件工具,包括控制流分析、数据流分析、接口分析和表达式分析) 动态测试 定义:实际运行被测程序,输入相应的测试实例,检查运行结果和预期结果的差异,判断执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。 组成:构造测试实例、根据测试实例运行程序、分析程序的输出结果。 主要方法:黑盒测试和白盒测试。 动态测试特点: 实际运行被测试程序,取得程序运行的真实情况、动态情况,并进行分析; 必须生成测试数据来运行程序,测试质量依赖于测试数据;

软件测试技术基础课后习题答案[1]

第1章软件测试概述 1.简述软件测试的意义。 解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。而由于软件本身的特性,软件中的错误是不开避免的。不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。因此为了保证软件质量,必须对软件进行测试。软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。 2.什么是软件缺陷?它的表现形式有哪些? 解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。 它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。 3.简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又最低? 解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。其中在需求分析阶段引入的缺陷最多,修复的成本又最低。 4.当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于是按了浏览器左上角的“退回”按钮, 就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类? 解:有缺陷。其所属类别与软件产品说明书的要求有关。 5.什么是软件测试?简述其目的与原则。 解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。 测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。(2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。(3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并且提前确认解决这些问题和风险的途径。 测试过程中应注意和遵循的原则:(1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。(2)测试应当有重点。(3)事先定义好产品的质量标准。(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。(5)穷举测试是不可能的。(6)第三方进行测试会更客观,更有效。(7)软件测试计划是做好软件测试工作的前提。(8)测试用例是设计出来的,不是写出来的。(9)对发现错误较多的程序段,应进行更深入的测试。(10)重视文档,妥善保存一切测试过程文档。 6.件测试阶段是如何划分的? 解:软件测试的阶段划分为:规格说明书审查;系统和程序设计审查;单元测试;集成测试;确认测试;系统测试;验

软件测试复习题

软件测试复习题 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

软件测试课程期末复习题 一、判断分析题(判断正误并分析说明)。 1、测试是为了验证该软件已正确地实现了用户的要求。(×) 2、用黑盒法测试时,测试用例是根据程序内部逻辑设计的。(×) 3、好的测试员不懈追求完美,力求做到穷举测试。(√) 4、软件测试的目的是尽可能多的找出软件的缺陷。(√) 5、单元测试能发现约80%的软件缺陷。(√) 6、自底向上集成需要测试员编写驱动模块程序。( √ ) 7、代码评审员一般由测试员担任。(× ) 8、发现错误多的程序模块,残留在模块中的错误也多。(√) 9、单元测试多采用白盒测试(结构性测试)技术。(√) 10、系统测试多采用白盒测试(结构性测试)技术。(×)(黑盒测试) 11、进行自底向上集成测试,需要为所测模块或子系统编制相应的驱动模块。(√) 12、软件测试的目的是证明软件没有错误。(×) 13、测试组负责软件质量。( ×) 14、软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。 (√ ) 15、测试程序仅仅按预期方式运行就行了。( ×) 16、不存在质量很高但可靠性很差的产品。( ×) 17、总是首先设计白盒测试用例。(×) 18、用黑盒法测试时,测试用例是根据程序内部逻辑设计的。(×) 19、黑盒测试方法中最有效的是因果图法。( √) 20、软件测试按照测试过程分为黑盒、白盒测试。(×) 21、白盒测试又称结构测试、逻辑驱动测试或基于程序的测试。(√) 22、黑盒测试是从用户观点出发的测试。(√)

23、白盒测试根据程序外部特征进行测试,黑盒测试根据程序内部逻辑结构进行测试。(×) 24、程序通过了全面的白盒测试,就不需要再进行黑盒测试了。(×) 25、对于同一个测试对象,等价类的测试用例数多于边界值的测试用例数。() 26、如果输入条件规定了取值范围,则可定义一个有效等价类和两个无效等价类。(√) 27、有n个变量的函数的健壮最坏情况测试用例的个数为:5的n次方。(√) 28、有n个变量的函数的健壮性测试用例的个数为:5n+1。(×) 29、有n个变量的函数的最坏情况测试会产生5的n次方个测试用例。(√) 30、有n个变量的函数的边界值分析会产生4n+1个测试用例(√) 31、语句覆盖是最弱的逻辑覆盖。(√) 32、判定覆盖不一定包含条件覆盖。(√) 33、判定/条件覆盖能同时满足判定、条件两种覆盖标准。(√) 34、详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构,并用某种选定的表达工具给出清晰的描述。( √) 35、对于连锁型分支结构,若有n个判定语句,则有2n条路径。(√) 36、尽量采用复合的条件测试,以避免嵌套的分支结构。(√) 37、G OTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。(√) 38、单元测试属于动态测试。 (× ) 39、单元测试需要从程序的内部结构出发设计测试用例。(√) 40、单元测试需要为每个基本单元开发驱动模块或桩模块。(√) 41、在面向对象语言语言中,单元测试是函数或子过程。() 42、单元测试又称为模块测试,是针对软件测试的最小单位-程序模块进行正确性检验的测试工作。(√) 43、验收测试是由最终用户来实施的。(×) 44、负载测试是验证要检验的系统的能力最高能达到什么程度。(×) 45、我们可以人为的使得软件不存在配置问题。(×) 46、可以发布具有配置缺陷的软件产品。( √)

最全软件测试基础教程(2011版)

软件测试基础教程 测试的基本概念 测试是软件生存周期中十分重要的一个过程,是产品发布、提交给最终用户前的稳定化阶段。 1、测试的分类: 从测试方法的角度可以分为手工测试和自动化测试。 手工测试:不使用任何测试工具,根据事先设计好的测试用例来运行系统,测试各功能模块。 自动化测试:利用测试工具,通过编写测试脚本和输入测试数据,自动运行测试程序。目前最常用的自动化测试工具是基于GUI的自动化测试工具,基本原理都是录制、回放技术。 从整体的角度可以分为单元测试、集成测试、系统测试、确认测试。 单元测试:是针对软件设计的最小单位—程序模块,进行正确性检验的测试工作。一般包括逻辑检查、结构检查、接口检查、出错处理、代码注释、输入校验、边界值检查。 单元测试的依据是系统的详细设计;一般由项目组开发人员自己完成。 集成测试:在单元测试的基础上,将所有模块按照设计要求组装进行测试。一般包括逻辑关系检查、数据关系检查、业务关系检查、模块间接口检查、外部接口检查。 系统测试:系统测试是在所有单元、集成测试后,对系统的功能及性能的总体测试。 确认测试:模拟用户运行的业务环境,运用黑盒测试方法,验证软件系统是否满足用户需求或软件需求说明书中指明的软件特性(功能、非功能)上的。 从测试原理上分为:白盒测试、黑盒测试和灰盒测试。 白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。 黑盒测试:是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。在测试时,把程序看作一个不能打开的黑盆子, 在完全不考虑程序内部结构和内部

软件测试复习题

一、选择题 1.在软件测试阶段,测试步骤按次序可以划分为以下几步:( A ) A、单元测试、集成测试、系统测试、验收测试 B、验收测试、单元测试、系统测试、集成测试 C、单元测试、集成测试、验收测试、系统测试 D、系统测试、单元测试、集成测试、验收测试 2.软件测试技术可以分为静态测试和动态测试,下列说法中错误的是( D )。 A、静态测试是指不运行实际程序,通过检查和阅读等手段来发现程序中的错误。 B、动态测试是指实际运行程序,通过运行的结果来发现程序中的错误。 C、动态测试包括黑盒测试和白盒测试。 D、白盒测试是静态测试,黑盒测试是动态测试。(白盒测试有静态测试,也有动态测试) 3.单元测试时,调用被测模块的是(C)。 A、桩模块(被测调用的模块) B、通信模块 C、驱动模块 D、代理模块 4.基本路径测试满足( A ) A、语句覆盖 B、路径覆盖(覆盖准则最强) C、分支覆盖 D、条件覆盖 5.如果一个产品中次严重的缺陷基本完成修正并通过复测,这个阶段的成品是(B)。 A、Alpha版(可能还会有一两个严重错误) B、Beta版(次要错误刚修正) C、正版(C类错误也完全没有) D、以上都不是 6.软件测试过程中的集成测试主要是为了发现( B )阶段的错误。 A.需求分析(系统测试) B.概要设计(集成测试) C.详细设计(单元测试) D.编码(单元测试)

7.下列有关测试过程V模型的说法中,正确的是( B ) A、验收测试应确定成程序的执行是否满足软件设计的要求 (单元测试和集成测试应确定成程序的执行是否满足软件设计的要求) B、系统测试应确定系统功能和性能的质量特性是否达到系统要求的指标 C、单元测试和集成测试应确定软件的实现是否满足用户需要或合同的要求 (验收测试确定软件的实现是否满足用户需要或合同的要求) D、集成测试在编码结束前就可以开始 8.下列关于Web应用软件测试的说法中,正确的是( A ) A、Cookie测试是Web应用软件功能测试的重要内容(功能测试) B、对于没有使用数据库的Web应用软件,不需要进行性能测试(需要进行性能测试) C、链接测试是Web应用软件易用性测试的重要内容 D、Web应用软件安全性测试仅关注Web应用软件是能够防御网络攻击 9.在程序测试中,用于检查程序模块或子程序之间的调用是否正确的静态分析方法是(D)。 A、操作性分析 B、可靠性分析 C、引用分析 D、接口分析 A、B、C、D都是静态分析(程序与程序间的调用是接口问题) 10.下列指导选择和使用测试覆盖率的原则中错误的是(D)。 A、覆盖率不是目的,仅是一种手段 B、不要追求绝对100%的覆盖率(路径覆盖不可能100%做到) C、不可能针对所有的覆盖率指标来选择测试用例 D、只根据测试覆盖率指标来指导测试用力的设计

软件测试必备基础知识

软件测试必备基础知识 一、基本概念 软件测试 在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括对软件形成 过程的文档、数据以及程序进行测试 软件测试的目的 发现程序中存在的错误发现程序中存在的错误,而不是证明程序无错误。一个好的测试用例在于它能发现至今尚未发现的错误。一个成功的测试则是发现了至今未发现的错误。开始我们认为做测试无非是为了证明我们编的程序是无错误的,那是大错特错了。因为bug会因时间不同,条件不同而出现。永远无法证明我们的程序是绝对正确的。 为反馈信息做准备为开发者或软件项目经理提供反馈信息,以及为风险评估所准备的信息 软件测试的原则 所有的测试都应追溯到用户需求。因为软件的目的是使用户完成预定的任务,满足其 需求,而软件测试揭示软件的缺陷和错误,一旦修正这些错误就能更好地满足用户需求。 应尽早地和不断地进行软件测试。由于软件的复杂性和抽象性,在软件生命周期各阶 段都可能产生错误,所以不应把软件测试仅仅看作是软件开发的一个独立阶段,而应当把 它贯穿到软件开发的各个阶段去。在需求分析和设计阶段就应开始进行测试工作,编写相 应的测试计划及测试设计文档,同时坚持在开发各阶段进行技术评审和验证,这样才能尽 早发现和预防错误,杜绝某些缺陷和错误,提高软件质量,测试工作进行得越早,越有利 于提高软件的质量,这是预防性测试的基本原则。 在有限的时间和资源下进行完全测试,找出软件所有的错误和缺陷是不可能的,软件 测试不能无限进行下去,应适时终止。因为,测试输入量大、输出结果多、路径组合太多,用有限的资源来达到完全测试是不现实的。

测试只能证明软件存在错误而不能证明软件没有错误。测试是无法显示潜在的错误和缺陷,继续进一步错误可能还会找到其它错误和缺陷。 充分关注测试中的集群现象。在测试的程序段中,若发现的错误数目多,则残存在其中的错误也越多,因此应当花较多的时间和代价测试那些具有更多错误数目的程序模块。 程序员应避免检查自己的程序。考虑到人们的心理因素,自己揭露自己程序中的错误是件不愉快的事,自己不愿意否认自己的工作;另一方面,由于思维定势,自己难以发现自己的错误。因此,测试一般由独立的测试部门或第三方机构进行。 尽量避免测试的随意性。软件测试是有组织、有计划、有步骤的活动,要严格按照测试计划进行,要避免测试的随意性。 软件测试对象 程序开发过程中的各个文档、源程序、目标程序及数据 软件测试的模型 V模型 从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。 左边依次下降的是开发过程各阶段,与此相对应的是右边依次上升的部分,即各测试过程的各个阶段。 V模型问题: "测试是开发之后的一个阶段,"测试的对象就是程序本身。 "实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现。 "整个软件产品的过程质量保证完全依赖于开发人员的能力和对工作的责任心,而且上一步的结果必须是充分和正确的,如果任何一个环节出了问题,则必将严重的影响整个工程的质量和预期进度 W模型相对于V模型,W模型更科学。W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。 W模型也有局限性。W模型和V

软件测试复习题汇总

软件测试总复习题 一、单选 1.对程序中已发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关 的文档,称为(B) A)测试B)调试 C)错误分析D)验证 2.数据流覆盖关注的是程序中某个变量从其声明、赋值到引用的变化情况,它是下列哪一 种覆盖的变种(A) A)语句覆盖B)控制覆盖C)分支覆盖D)路径覆盖 3.程序的流程图如下图所示,采用路径覆盖法进行测试,则至少需要几个测试用例可以覆 盖所有可能的路径(C) A)5 B)6 C)7 D)8 4.如果一个判定中的复合条件表达式为(A > 1)or(B <= 3),则为了达到100%的条件 覆盖率,至少需要设计多少个测试用例(B) A)1 B)2 C)3 D)4 5.自底向上单元测试的策略是首先对模块调用图上的哪一层模块进行测试(A) A)最底层B)下一层 C)最高层 D)上一层 6.基本路径测试满足( B) A)语句覆盖B)路径覆盖 C)分支覆盖 D)条件覆盖 7.集成测试对系统内部的交互以及集成后系统功能检验了何种质量特性(B) A)正确性B)可靠性 C)可使用性 D)可维护性 8.在软件性能测试中,下列指标中哪个不是软件性能的指标( D ) A)响应时间B)吞吐量 C)资源利用率 D)并发进程数 9.下列关于软件性能测试的说法中,正确的是(B) A)性能测试的目的不是为了发现软件缺陷

B)压力测试与负载测试的目的都是为了探测软件在满足预定性能需求的情况下所能负担的最大压力 C)性能测试通常要对测试结果进行分析才能获得测试结论 D)在性能下降曲线上,最大建议用户数通常处于性能轻微下降区与性能急剧下降区的交界处 10.下列关于软件可靠性测试的说法中,错误的是( A) A)发现软件缺陷是软件可靠性测试的主要目的 B)软件可靠性测试通常用于有可靠性要求的软件 C)在一次软件可靠性测试中,执行的测试用例必须完全符合所定义的软件运行剖面D)可靠性测试通常要对测试结果进行分析才能获得测试结论 11.下列关于面向对象软件测试的说法中,正确的是(A) A)在测试一个类时,只要对该类的每个成员方法都进行充分的测试就完成了对该类充分的测试 B)在存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试 C)假设类B是类A的子类,如果类A已进行了充分的测试,在测试类B时不必测试任何类B继承类A的成员方法 D)对于一棵继承树上的多个类,只有处于叶节点的类需要测试 12.下列哪种测试不属于面向对象单元测试考虑的范畴(D) A)成员方法的测试B)类的测试 C)类树的测试D)多个相互协作的类树的测试 13.下列关于面向对象集成测试的说法中,正确的是(B) A)大突击集成是面向对象集成测试最常用且最有效的方法 B)自底向上集成和自顶向下集成都需要为集成测试开发大量代码 C)协作集成在任何情况下都优于自底向上集成和自顶向下集成 D)高频集成是以自底向上集成为基础,利用冒烟测试进行的集成测试 14.下列有关测试过程V模型的说法中,正确的是(C) A)验收测试应确定程序的执行是否满足软件设计的要求 B)系统测试应确定系统功能和性能的质量特性是否达到系统要求的指标 C)单元测试和集成测试应确定软件的实现是否满足用户需要或合同的要求

软件测试基础知识

软件测试基础知识(摘自《软件评测师教程》) 什么是软件测试? RE:“软件测试”的经典定义是在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。 什么是软件质量? RE:在1991年软件产品质量评价国际标准ISO 9126中定义的“软件质量”是:软件满足规定或潜在用户需求特性的综合。 到1999年,软件“产品评价”国际标准ISO 14598经典的“软件质量”定义是:软件特性的总和,软件满足规定或潜在用户需求的能力。 软件测试的目的是什么? RE:测试的目的,是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。 同时,测试是以评价一个程序或者系统属性为目标的活动,测试是对软件质量的度量与评估,以验证软件的质量满足用户的需求的程度,为用户选择与接受软件提供有力的依据。 软件测试的原则是什么? RE:A 所有的软件测试都应追溯到用户需求。 B 应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。 C 完全测试是不可能的,测试需要终止。 D 测试无法显示软件潜在的缺陷。 E 充分注意测试中的群集现象。 F 程序员应避免检查自己的程序。 G 尽量避免测试的随意性。 什么是黑盒测试? RE:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。 黑盒测试法注重于测试软件的功能需求,主要试图发现下列积累错误::. A 功能不正确或遗漏; B 界面错误; C 数据库访问错误; D 性能错误; E 初始化和终止错误。 什么是测试用例? RE:测试用例就是设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的执行结果。测试用例是将测试行为具体量化的方法之一。 使用测试用例的好处是什么? RE:A 在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。 B 测试用例的使用令软件测试的实施重点突出、目的明确。 C 在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度,缩短项目周 期。 D 功能模块的通用化和复用化使软件易于开发,而测试用例的通用化和复用化则会使软件测试易 于开展,并随着测试用例的不断精化其效率也不断攀升。

相关文档
最新文档