软件测试复习.docx

上传人:b****5 文档编号:3293419 上传时间:2022-11-21 格式:DOCX 页数:36 大小:474.52KB
下载 相关 举报
软件测试复习.docx_第1页
第1页 / 共36页
软件测试复习.docx_第2页
第2页 / 共36页
软件测试复习.docx_第3页
第3页 / 共36页
软件测试复习.docx_第4页
第4页 / 共36页
软件测试复习.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

软件测试复习.docx

《软件测试复习.docx》由会员分享,可在线阅读,更多相关《软件测试复习.docx(36页珍藏版)》请在冰豆网上搜索。

软件测试复习.docx

软件测试复习

第一章

软件测试贯穿整个软件开发过程

软件=程序+文档+DB

程序=算发+数据结构

一个软件产品从形成概念开始,经过开发、测试、使用和维护,直到最后退出使用的全过程称为软件生存周期。

一般软件生存周期包括软件定义、软件开发、软件测试、软件使用与维护等几个部分。

软件定义可分为软件系统的可行性研究和需求分析两个阶段,其基本任务是确定软件系统的工程需求。

整个测试过程分单元测试、集成测试、系统测试以及验收测试四个阶段进行。

测试的方法主要有白盒测试和黑盒测试。

软件过程模型,如瀑布过程模型、螺旋过程模型和增量过程模型等

软件能量成熟度模型(CMM)初始级、重复级、定义级、管理级、优化级。

软件错误导致软件曲线激活软件故障产生软件失效

软件错误是指在软件生存期内的不希望出现或不可接受的人为错误,软件错误导致软件缺陷的产生。

软件产生错误的原因:

软件复杂性、交流不够、交流上有误解或者根本不进行交流、程序设计错误、需求变化、时间压力、代码文档贫乏和软件开发工具。

软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差。

其结果是软件运行于某一特定条件时出现软件故障,这时称软件缺陷被激活。

软件故障是指软件运行过程中出现的一种不希望或不可接受的内部状态,此时若无适当措施(容错)加以及时处理,便产生软件失效。

软件失效是指软件在运行过程中产生的不希望出现或不可接受的外部行为结果。

MTBFmeantimebetweenfailue失效时间

MTTFmeantimetofailue开始对失效时间(平均失效时间)

MTTRmeantimetorepaire平均修复时间

LRU外场可更换单元

SRU内场可更换单元

ISO/IEC9126-1991标准规定的软件质量度量模型。

它由3层组成,其中第1层称为质量特性(SQRC软件质量需求评价准则),第2层称为质量子特性(SQDC),第3层称为度量(SQMC)。

这个模型定义了8个质量特性,即正确性、可靠性、可维护性、效率、安全性、灵活性、可使用性、互连性。

所谓的内部质量是从内部观点出发的软件产品特性的总体,是针对内部质量需求被测量和评价的质量。

内部质量特征主要包括:

可维护性、灵活性、可移植性、可重用性、可读性、可测试性、可理解性。

外部质量的定义是:

软件产品在规定条件下使用时满足需求的程度。

外部质量是从外部观点出发的软件产品特性的总体,它是当软件执行时,更典型地是使用外部度量在模拟环境中,用模拟数据测试时,所被测量和评价的质量,即在预定的系统环境中运行时可能达到的质量水平。

外部质量特征主要包括:

正确性、可用性、效率、可靠性、完整性、适应性、精确性、坚固性。

简单地说,软件测试就是为了发现错误而执行程序的过程。

软件测试被定义为:

“使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。

软件测试不等于程序测试软件测试贯穿于整个软件开发过程

软件测试的目的是以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。

软件测试的规则:

测试是一个程序的执行过程,其目的在于发现错误。

一个好的测试用例很可能会发现至今尚未察觉的错误。

一个成功的测试是发现至今尚未察觉的错觉的测试。

测试的原则(80\2080%错误在20%的代码中):

1.所有的测试都应追溯到用户需求

2.把“尽早和不断地测试”作为开发者的座右铭

3.程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完成

4.pareto原则

5.设计测试用例时,应该考虑各种情况

6.对测试错误结果一定要有一个确认的过程

7.制定严格的测试计划

8.完全测试是不可能的,测试需要终止

9.注意回归测试的关联性

10.妥善保存一切测试过程文档

V模型是最具有代表意义的测试模型,反映出了测试活动与分析设计活动的关系。

V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求。

但是V模型也存在一定的局限性,它仅仅把测试作为在编码之后的一个阶段,是针对程序运行的寻找错误的活动,而忽视了测试活动对需求分析、系统设计等活动的验证和确认的功能。

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

W模型强调:

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

W模型也存在局限性。

在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。

H模型将测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。

H模型揭示了软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。

Verification验证我们正确的构造了产品?

Validation确认我们构造了正确的产品?

(1)测试活动应与软件开发同步进行;

(2)测试对象不仅仅是程序还有需求设计等等;

(3)及早发现放假缺陷,降低成本。

软件测试分类:

1.按测试方式分类

静态测试

动态测试

2.按测试方法分类

白盒测试

黑盒测试

3.按测试过程分类

单元测试

集成测试

系统测试

验收测试

4.按测试目的分类

功能测试

健壮性测试

接口测试

性能测试

强度测试

压力测试(压力负载测试)

用户界面测试

安全测试

可靠性测试

安装/反安装测试

文档测试

恢复测试

兼容性测试

软件测试流程

1.制订测试计划

2.设计测试方案

3.测试准备和测试环境的建立

4.执行测试

5.测试评估

6.测试总结

软件测试人员应具备下列基本素质。

1.具有良好的计算机编程基础

2.具有创新精神和超前意识

3.不懈努力,追求完美

4.具有很强的沟通和交流能力

5.具有整体观念,对细节敏感

6.团队合作精神

一段代码找BUG?

经典种子公式(可靠性植入模型):

植入N个发现n个BUG,t个其他BUG

则n/N=t/TT=tN/n

步骤:

1.功能(文档功能描述)

2.走查

3.设计测试用例

4.执行

5.撰写报告

第二章

制订测试计划

 

第三章

黑盒测试:

已知产品的功能设计规格和用户手册,可以进行测试证明每个功能是否实现、每个实现了的功能是否符合要求,以及产品的性能是否满足用户的要求。

软件的黑盒测试意味着测试要在软件的接口处进行,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书和用户手册,检查程序的功能是否符合它的功能说明,以及性能是否满足用户的要求。

因此黑盒测试又叫功能测试或数据驱动测试。

白盒测试:

已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

软件的白盒测试是对软件的过程性细节做细致的检查,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。

因此白盒测试又称为结构测试或逻辑驱动测试。

白盒测试是一种被广泛使用的逻辑测试方法,也称为结构测试或逻辑驱动测试。

白盒测试对象基本上是源程序,是以程序的内部逻辑为基础的一种测试方法。

白盒测试方法又可分为静态测试和动态测试。

静态测试是一种不通过执行程序而进行测试的技术,其关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。

它瞄准的是纠正软件系统在描述、表示和规格上的错误,是任何进一步测试的前提。

而动态测试需要软件的执行,当软件系统在模拟的或真实的环境中执行之前、之中和之后,对软件系统行为的分析是动态测试的主要特点。

动态测试主要验证一个系统在检查状态下是正确还是不正确。

动态测试技术主要包括程序插桩、逻辑覆盖、基本路径测试等。

最常见的静态测试是找出源代码的语法错误,这类测试可由编译器来完成,因为编译器可以逐行分析检验程序的语法,找出错误并报告。

代码检查三大方法

书:

桌面检查、代码审查和走查方式。

师:

走查、审查、评审。

对一下内容的检查:

(1)检查代码和设计的一致性;

(2)代码的可读性以及对软件设计标准的遵循情况;

(3)代码逻辑表达的正确性;

(4)代码结构的合理性;

(5)程序中不安全、不明确和模糊的部分;

(6)编程风格方面的问题等。

控制了关键路径就控制了进度

在软件动态测试中,程序插桩是一种基本的测试手段,有着广泛的应用。

程序插桩方法是借助往被测程序中插入操作,来实现测试目的的方法,即向源程序中添加一些语句,实现对程序语句的执行、变量的变化等情况进行检查。

逻辑覆盖我觉得肯定考,请认真看课本例题。

从覆盖源程序语句的详细程度分析,逻辑覆盖标准有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。

基本路径测试图

 

.基本路径测试法的步骤

(1)画出程序控制流图

(2)计算程序环路复杂性

进行程序的基本路径测试时,程序的环路复杂性给出了程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。

所谓独立路径,是指包括若干未曾处理的语句或条件的一条路径

基本路径集不是惟一的,对于给定的控制流图,可以得到不同的基本路径集。

通常环路复杂性可用以下3种方法求得。

①将环路复杂性定义为控制流图中的区域数。

②设E为控制流图的边数,N为图的结点数,则定义环路的复杂性为V(G)=E−N+2。

③若设P为控制流图中的判定结点数,则有V(G)=P+1。

1.语句覆盖

语句覆盖使程序中每个语句至少都能被执行一次。

2.判定覆盖

比语句覆盖稍强的覆盖标准是判定覆盖。

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

判定覆盖又称为分支覆盖。

3.条件覆盖

在设计程序中,一个判定语句是由多个条件组合而成的复合判定。

条件覆盖的含义是:

构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。

4.条件判定组合覆盖

条件判定组合覆盖的含义是:

设计足够的测试用例,使得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。

5.多条件覆盖

多条件覆盖也称为条件组合覆盖,它的含义是:

设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。

显然满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的。

例:

inta,b,c;

If(a>0&&b>0)c=c/a;

If(a>1||c>1)c=c+1;

语句覆盖a—c—e

((2,2,4),(2,2,3))

判定覆盖a—c—e、a—b—d或a—c—d、a—b—e

((2,2,4),(2,2,3))TT

((-1,-1,-1),(-1,-1,-1))FF

条件覆盖

((2,2,4),(2,1,3))T1T2T3T4

((-1,-1,-1),(-1,-1,-1))F1F2F3F4

条件判定覆盖

((2,2,4),(2,1,3))T1T2T3T4T

((-1,-1,-1),(-1,-1,-1))F1F2F3F4F

多条件覆盖

((2,2,4),(2,1,3))

abac

((2,2,4),(2,1,3))TTTT

((2,-1,1),(2,-1,2))TFTF

((-1,2,2),(-1,2,3))FTFT

((-1,-1,-1),(-1,-1,-1))FFFF

1计算V(G)

2独立路径数

3C0、C1、C2(语句覆盖、分支覆盖、分支循环覆盖)

V(G)=E-N+2=11-7+2=6

P1A—B—C—F—G

P2A—B—D—F—G

P3A—B—E—F—G

P4A—B—C—D—F—G

P5A—B—E—D—F—G

P6A—B—D—F—G—B—D—F—G

C0把ABCDEFG点覆盖={P1、P5}或{P1、P2、P3}或{P3、P4}

C1把所有IF、ELSE都走遍={P1、P2、P3、P4、P5}

C2把C1中加入循环={C1、P6}或{P1、P2、P3、P4、P5、P6}

请仔细复习老师曾经留的作业和修改。

符号测试技术:

符号执行方法,通过分析源程序代码产生测试用例的技术,技术主要包括变量替换(静态测试方法)表达式简化和约束条件,可用于程序路径检查,程序证明等。

黑盒测试技术:

等价类划分是一种典型的、常用的黑盒测试方法。

等价类的划分有以下两种不同的情况

①有效等价类:

是指对于程序规格说明来说,是合理的、有意义的输入数据构成的集合。

利用它,可以检验程序是否实现了规格说明预先规定的功能和性能。

②无效等价类:

是指对于程序规格说明来说,是不合理的、无意义的输入数据构成的集合。

利用它,可以检查程序中功能和性能的实现是否有不符合规格说明要求的地方。

划分等价类的方法如下:

①按区间划分

②按数值划分

③按数值集合划分

④按限制条件划分

⑤按限制规则划分

⑥按处理方式划分

在确立了等价类之后,建立等价类表,列出所有划分出的等价类,如表3-1所示。

 

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。

通常输入等价类与输出等价类的边界,就是应着重测试的边界情况。

应当选取正好等于,刚刚大于,或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。

边界值分析4N+1N为变量个数

健壮性分析6N+1

最坏情况测试5的N次方

边界值分析测试用例是最欢情况测试用例的真子集。

某C语言标识符以字母,数字组合,标识符长度1-8,标识符不能为保留字,先声明后使用,在同一语句中标识符至少一个。

输入

有效等价类

无效等价类

第一字母

组合

长度

使用

个数

字母开头①

_开头②

字母、数字④

1-8⑦

先声明后使用⑩

>=1⑿

非字母、非_开头③

非字母、非数字⑤

保留字⑥

0⑧

>8⑨

无声明使用⑾

0⒀

测试用例

Tc1inta12,_xy;①②④⑦⑩⑿

A12=5;

Tc2int#a2;③

Tc3intwhile;⑥

Tc4inta*;⑤

Tc5intx,;⑧

Tc6inta23456789;⑨

Tc7intx;

Y=5;⑾

Tc8int;⒀

一报表处理应用,要求用户输入日期的年月,假设日期限制在2000年1月到2030年12月,例如2001年1月用200101表示,若应用等价类测试方法,设计如下等价类表。

输入

合理等价类

不合理等价类

报表日期

6位数字

非6位数字

年份范围

2001-2030

<2001>2030

月份范围

1-12

<1>12

等价类测试重复边界值分析的两个因素:

健壮性和单/多缺陷假设。

四种形式的等价类:

弱一般等价类、强一般等价类、弱健壮等价类、强健壮等价类。

•弱一般等价类

•基于单缺陷假设,使用一个测试用例,尽可能多地覆盖有效等价类中的每个变量区间,也就是一个用例尽可能地覆盖多个区间。

•强一般等价类

•基于多缺陷假设,需要笛卡尔积的每个元素对应的测试用例。

覆盖所有有效类。

•弱健壮等价类

•也称为传统的等价类测试,弱是考虑单缺陷假设,健壮是因为考虑了无效值。

•有效输入,使用有效类(区间)的一个值,与弱等价类测试一样;无效输入,测试用例,拥有一个无效值,其余值都是有效的。

强健壮等价类

强是指多缺陷假设,健壮是考虑无效值。

因果图法(记得去看下,课本66、67)

因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

利用因果图生成测试用例的基本步骤如下。

①分析软件规格说明的描述中哪些是原因,哪些是结果。

原因是输入条件或输入条件的等价类,结果是输出条件。

②分析软件规格说明描述中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系,画出因果图。

③标明约束条件。

由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的。

为表明这些特定的情况,在因果图上使用若干标准的符号标明约束条件。

④把因果图转换成判定表。

⑤为判定表中的每一列设计测试用例。

通常在因果图中,用Ci表示原因,Ei表示结果,其基本符号如图3-15所示。

 

正交

对本试验分析,影响山楂液化率的因素很多,如山楂品种、山楂果肉的破碎度、果肉加水量、原料pH值、果胶酶种类、加酶量、酶解温度、酶解时间等等。

经全面考虑,最后确定果肉加水量、加酶量、酶解温度和酶解时间为本试验的试验因素,分别记作A、B、C和D,进行四因素正交试验,各因素均取三个水平,因素水平表见表10-3所示。

水平

试验因素

加水量

(mL/100g)

A

加酶量

(mL/100g)

B

酶解温度

(℃)

C

酶解时间

(h)

D

1

10

1

20

1.5

2

50

4

35

2.5

3

90

7

50

3.5

分析A因素各水平对试验指标的影响。

由表3可以看出,A1的影响反映在第1、2、3号试验中,A2的影响反映在第4、5、6号试验中,A3的影响反映在第7、8、9号试验中。

A因素的1水平所对应的试验指标之和为KA1=y1+y2+y3=0+17+24=41,kA1=KA1/3=13.7;

A因素的2水平所对应的试验指标之和为KA2=y4+y5+y6=12+47+28=87,kA2=KA2/3=29;

A因素的3水平所对应的试验指标之和为KA3=y7+y8+y9=1+18+42=61,kA3=KA3/3=20.3。

例2.超短波跳频分组无线网络由超短波调频电台构成,采用分组的方式实现电台之间的信息传输,各电台之间可以互为中继,其测试软件界面如图。

研究传输时间的影响因素,主要由电台个数、报文间隔、报文长度。

采用正交表L9(34)

因素

水平

ID

A

电台个数(部)

B

报文间隔(分)

C

报文长度(字节)

传输时间(秒)

1

2

1

10

9

2

2

2

50

7

3

2

5

100

4

4

3

1

50

23

5

3

2

100

22

6

3

5

10

10

7

4

1

100

34

8

4

2

10

28

9

4

5

50

14

F1j

20

66

47

F1j

44

F1j

28

F1j/3

F1j/3

F1j/3

极差R

18.6

12.7

5.3

主次顺序

A>

B>

C

优水平

A1

B3

C2

优组合

A1B3C2

电台个数的极差最大,报文间隔次之,报文长度的极差最先。

分别作出三个因素与传输时延的关系。

从表和图可以看出,电台个数2,报文间隔5,报文长度50为最优组合。

即A1B3C2,该测试用例不在这9次实验中,是测试结果分析得出。

进一步用该组合进行测试验证。

若计算后得出的最佳测试用例没有主观比较的结果好,说明对象比较复杂,因素、水平的选取不全面,应另行安排测试,寻找更好的测试用例。

若需对测试结果进一步分析给出误差分析,应采用方差分析法。

第四章

单元测试是对软件设计的最小单元——模块进行正确性检验的测试工作,主要测试模块在语法、格式和逻辑上的错误。

基于Xunit测试框架的测试工具

Java编程中使用的JUnit,,NET程序编程中使用的NUit,CppUnit是C++单元测试工具

VcTester与C++Test是VC配套的单元测试工具.

VisualUnit单元测试工具

分析覆盖率的工具:

LogiScope、TrueCoverage/PurecOverage

集成测试的实施方案有很多种,如:

非增式集成测试和增量式集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试等。

其中,常用的是非增式集成测试和增量式集成测试两种模式。

增式测试方法

(1)自顶向下增式测试

需要添加7个桩模块

(2)自底向上增式测试

需要添加4个驱动模块

 

验收测试是在软件开发结束后,用户对软件产品投入实际应用以前,进行的最后一次之恋检验活动。

系统测试和验收测试一般采用黑盒测试。

回归测试是指软件系统呗修改或扩充后重新进行的测试,回归测试是为了保证对软件修改以后,没有引入新的错误而重新进行的测试。

α测试:

在软件开发公司内部,由软件开发公司组织内部人员,模拟用户对软件产品进行测试。

β测试:

软件开发公司组织用户,在日常工作中实际使用β版本。

第五章

测试用例的三要素:

ID编号、输入、预期输出。

测试用例是测试用例是执行的最小实体,是为特定的目的而设计的一组测试输入、执行条件和预期的结果。

可以把测试用例归为5大类:

白盒测试用例

软件各项功能的测试用例

用户界面测试用例

软件的各项非功能测试用例

对软件缺陷修正所确认的测试用例

第六章

软件缺陷简单说就是存在于软件(文档、数据、程序)之中的那些不希望,或不可接受的偏差,而导致软件产生的质量问题。

按照一般的定义,只要符合下面5个规则中的一个,就叫做软件缺陷。

软件未达到软件规格说明书中规定的功能;

软件超出软件规格说明书中指明的范围;

软件未达到软件规格说明书中指出的应达到的目标;

软件运行出现错误;

软件测试人员认为软件难于理解,不易使用,运行速度慢,或者最终用户认为软件使用效果不好。

软件缺陷的有效描述规则

单一准确

可以再现

完整统一

短小简练

特定条件

补充完善

不作评价

软件缺陷的种类

(1)功能不正常

(2)软件在使用上不方便

(3)软件的结构未做良好规划

(4)功能不充分

(5)与软件操作者的互动不良

(6)使用性能不佳

(7)未做好错误处理

(8)边界错误

(9)计算错误

(10)使用一段时间所产生的错误

(11)控制流程的错误

(12)在大数据量压力之下所产生的错误

(13)在不同硬件环境下产生的错误

(14)版本控制不良所产生的错误

(15)软件文档的错误

软件缺陷的属性

(1)缺陷标识

(2)缺陷描述与缺陷注释

(3)缺陷类型

(4)缺陷严重程度

(5)缺陷产生可能性

(6)缺陷的优先级

(7)缺陷状

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1