东北大学软件测试复习+开卷考试材料

16级考软件测试的时候,改为开卷考试。

当时准备了所有的英文ppt和这份中文材料加一本英汉词典,基本需要的东西都有了。

试卷内容有选择判断简答和大题。

简答题考的问题很多在ppt上有原话,例如:


例题

简答题的范围是除了黑盒白盒之外的所有知识点,大多集中在第一章和第九章。

大题只考了黑盒白盒相关的部分。

平时注意积累一些术语和词汇,考前可以做个术语表,以免到时候认不出单词浪费时间。

这次的大题经常要生成测试用例,很费时间,不知道以后会不会还是这样。

材料来源于学长分享,我整理成今年的考点,并加上了自己的内容。

下面是材料:

软件缺陷的概念

从产品内部看,软件缺陷是产品开发或维护过程中所存在的错误、毛病等各种问题。

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

软件测试的一个重要功能

verification(验证)and validation(确认)

verification:验证我们是不是正确的做了这个产品,也就是产品要符合他的目标

validation:确认我们是不是做了正确的产品,也就是产品是用户真正想要的

软件测试的目的

* 软件测试是为了发现错误而执行程序的过程。

* 一个好的测试能过在第一时间发现程序中存在的错误。

* 一个好的测试是发现了至今尚未发现的错误。

* 减小软件不能正常工作的风险

软件测试的分类

C1:按照测试生成的来源

C2:按照生命周期的阶段

C3:按照测试活动的目的

C4:按被测对象的特征

C5:按测试过程的模型

软件测试V模型


软件测试V模型  

软件测试用例

输入以测试系统和预测这些系统的输出,如果系统根据其规范运作。

黑盒测试

等价类划分

分为有效类和无效类,两者不能有重叠的部分

例如:前亚利桑那州境内的一位步枪销售商销售密苏里州制造的步枪机、枪托和枪管。枪机(Lock)卖45美元,枪托(Stock)卖30美元,枪管(Barrel)卖25美元。销售商每月至少要销售一支完整的步枪,且生产限额是大多数销售商在一个月内可销售70个枪机、80个枪托和90个枪管。每访问一个镇子之后,销售商都给密苏里州步枪制造商发出电报,说明在那个镇子中售出的枪机、枪托和枪管数量。到了月末,销售商要发出一封很短的电报,通知-1个枪机被售出。这样步枪制造商就知道当月的销售情况,并计算销售商的佣金如下:销售额不到(含)1000美元的部分为10%,1000(不含)~1800(含)美元的部分为15%,超过1800美元的部分为20%。佣金程序生成月份销售报告,汇总售出的枪机、枪托和枪管总数,销售商的总销售额以及佣金。

有效等价类:

L1={Lock:1≤Lock≤70}

L2={Lock=-1}

S1={Stock:1 ≤Stock≤80}

B1={Barrel:1 ≤ Barrel ≤90}

无效等价类:

L3={Lock: Lock =0 or Lock ﹤-1}

L4={Lock: Lock ﹥70}

S2={Stock: Stock ﹤1}

S3={Stock: Stock ﹥80}

B2={Barrel: Barrel ﹤1}

B3={Barrel:Barrel﹥90}

再例如:有一个报表处理系统,要求用户输入处理报表的日期。假如日期限制在2000年1月至2020年12月,即系统只能对该段时期内的报表进行处理。如果用户输入的日期不在这个范围内,则显示“错误信息”。并且此系统规定日期由年月的6位数字组成,前四位代表年,后两位代表月。

要求:

写出日期的等价类划分。

生成测试用例。

等价类划分


等价类划分

生成测试用例

生成测试用例  

边缘值分析法

基本原理

如下图取值

边界值法取值  
两个变量的情况下  

注意:边界值分析法是单一错误原则

举例说明:

三角形问题,输入a、b、c

1 ≤a ≤200

1 ≤b ≤200

1 ≤c ≤200

所以a,b,c的取值是

a = {1,2,100,199,200}

b = {1,2,100,199,200}

c = {1,2,100,199,200}

测试用例如下


边界值分析的测试用例

小节总结

等价类测试的弱形式不如强形式测试全面。

无效值会引起运行错误的时候(实现语言是强类型),则没有必要做健壮形式的测试。

错误条件很重要的时候,健壮测试很重要。

边界值测试是等价类测试的一种补充,两者结合可以加强测试效果。

决策表技术可以解决变量之间依赖的问题。

要进行多次尝试,确认最合适的等价类划分。

正交测试

正交测试http://www.jianshu.com/writer#/notebooks/11085322/notes/10481239

Decision Tables(决策表)

先来感受一波决策表吧(特别注意,结果能合并的一定要合并!!!)

决策表有四个部分

Stub portion、Entry

portion、Condition portion、Actionportion

决策表四个部分  

从问题决策到结果,Y代表条件满足,N代表条件不满足,--代表忽略这个条件


决策表

练习:

某货运站收费标准如下:如果收件地点在本省,则快件每公斤5元,慢件每公斤3元;如果收件地点在省外,则在20公斤以内(含20公斤)快件每公斤7元,慢件每公斤5元,而超过20公斤时,快件每公斤9元,慢件每公斤7元。请用决策表方法解决此问题。

第一步:确定规则的数目。

条件:

(1)收件地在本省?

(2)是快件?

(3)重量不超过20公斤?

根据公式计算2的3次方=8

所以应有8条规则。

第二步:列出所有的条件桩和行动桩。

第三步:填入条件条目

第四步:填入行动条目

未简化的决策表  

第五步:化简决策表(一定要合并简化)


简化的决策表

Cause-Effect Graphing (因果图)

因果图法产生的背景

等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。

如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。

因果图概念介绍

因果图(Cause-EffectGraphing)提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。其中原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。

因果图中基本符号介绍(这里可以看PPT,不全部列出)


PPT


PPT

因果图分析步骤

第一步,找出Cause(原因)

Cause(原因)

c1—the first character is #

c2 —thefirst character is *

c3 —thesecond character is number

第二步,找出Effect(结果)

e1—givethe information N

e2—modify the document

e3—give the information M

第三步,分析出中间节点

然后画出因果图,如图

再举个例子

某公司对客户有一定的折扣政策,公司软件的一个模块的需求说明书中描述“……当交易额小于等于5万元时折扣为0,当交易额大于5万元时才有折扣,如果交易的客户在三个月内无欠款,则折扣为15%;如果交易用户在三个月内有欠款,若该用户是三年以上的老客户,则折扣为10%;若该客户不是三年以上的老客户,则折扣为5%。”

原因(对立的就不要再写了,比如写了是小于五万就不用写大于等于五万了):

C1:交易额大于5万元

C2:三个月无欠款

C3:三年以上老客户

结果(注意对立的就不要再写了):

E1:无折扣

E2:折扣=5%

E3:折扣=10%

E4:折扣=15%

因果图,从这个图中你就能找出导出上边说的四种结果的逻辑

正交实验法的介绍

正交试验法是研究多因素、多水平的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验

在一项试验中,把影响试验结果的量称为试验因素(因子),简称因素。因素可以理解为试验过程中的自变量,试验结果可以看成因素的函数。在试验过程中,每一个因素可以处于不同的状态或状况,把因素所处的状态或状况,称为因素的水平简称水平

举个例子

某所大学通信系共2个班级,刚考完某一门课程,想通过“性别”、“班级”和“成绩”这三个查询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询:

根据“性别”=“男,女”进行查询

根据“班级”=“1班,2班”查询

根据“成绩”=“及格,不及格”查询

按照传统设计——全部测试

分析上述测试需求,有3个被测元素,被测元素我们称为因素,每个因素有两个取值,我们称之为水平值(也就是2)。

如果是普通的全面测试,则如下(2^3=8次)

全面测试表


若采用正交测试

利用正交表设计测试用例,我们得到的测试用例个数是n=3*(2-1)+1=4(这个公司就是(因素数*(最大水平数-1)+1)),对于三因素两水平的刚好有L4(2^3)的正交表可以套用

于是用正交表试验法得出4个测试用例如下(正交测试表的类型一般都会给出来)

正交测试表


正交试验设计方法

与一般的试验设计类似 ,用正交试验设计方法设计测试用例时主要包括以下步骤:

(1)确定因素

这里的因素是指对软件运行结果有影响的软件

(2)确定因素的取值范围或集合(该步是为步骤3做准备的)

因素的取值范围是指软件输入的取值范围或集合以及可用的硬件资源。

(3)确定每个因素的水平

根据因素的取值范围或集合 ,采用等价类划分边界值分析以及其他软件测试技术,在每个因素的取值范围或集合内挑选出有效等价类无效等价类正好等于刚刚大于刚刚小于边界值等有代表性的测试值。

(4)选择正交表

根据确定的因素和水平 ,选择适合的正交表。

如果没有合适的正交表可用或需要的测试用例个数太多 ,要对因素和水平进行调整。

正交表的构成:

l行数(Runs):正交表中的行的个数,即试验的次数,也是通过正交实验法设计的测试用例的个数

l因素数(Factors):正交表中列的个数,即要测试的功能点。

l水平数(Levels):任何单个因素能够取得的值的最大个数,即要测试功能点的输入值

正交表

8代表行数,2代表水平数,7代表因素数

9代表行数,3代表水平数,4代表因素数

正交表相关概念

将正交试验选择的水平组合,列成表格,称为正交表。

正交表具有以下两个特点,即正交性。正交表必须满足这两个特点,有一条不满足,就不是正交表。

1)每列中不同数字出现的次数相等。这一特点表明每个因素的每个水平与其它因素的每个水平参与试验的几率是完全相同的,从而保证了在各个水平中最大限度地排除了其它因素水平的干扰,能有效地比较试验结果并找出最优的试验条件。

2)在任意2列其横向组成的数字对中,每种数字对出现的次数相等。这个特点保证了试验点均匀地分散在因素与水平的完全组合之中,因此具有很强的代表性

场景测试(Scenario Testing)

不考大题

先找场景,场景要生动而有趣

白盒测试(White-box testing)

白盒测试也叫structural testing, clear box testing, andglass box testing.

透明的看得见结构  

白盒测试分为静态测试动态测试

白盒静态测试:Code inspection, Static structure analysis,Static quality metric method

白盒动态测试:主要基于覆盖,包括logic coverage, loop coverage, basispath coverage, etc.

白盒测试主要应用于单元测试

we can’t

use exhaustive(详尽的)testing

动态测试之逻辑覆盖

白盒测试用例设计的一个很重要的评估标准就是对代码的覆盖度。一说到覆盖,大家都感觉非常熟悉,但是常见的覆盖都有哪些?各自有什么优缺点?在白盒测试的用例设计中我们应该如何自如地运用呢?为大家总结了一下几种常见的覆盖以及各自的优缺点。

白盒测试中常见的覆盖有六种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。下面我们就分别看看这几种不同的覆盖究竟是什么鬼。

一、语句覆盖(Statement Coverage)

语句覆盖,顾名思义就是针对代码语句的嘛。它的含义是我们设计出来的测试用例要保证程序中的每一个语句至少被执行一次。通常语句覆盖被认为是“最弱的覆盖”,原因是它仅仅考虑对代码中的执行语句进行覆盖而没有考虑各种条件和分支,因此在实际运用中语句覆盖很难发现代码中的问题。举个非常简单的例子:

public int foo(int a,int b)

{

return a/b;

}

这是一个求两数之商的函数。如果我们设计如下的测试用例:

TestCase: a = 2, b = 1

这时候我们会发现,该函数的代码覆盖率达到了100%,并且设计的case可以顺利通过测试。但是显然该函数有一个很明显的bug:当 b=0 时,会抛出异常。

再来看这个例子:

流程图1

主要特点:语句覆盖是最起码的结构覆盖要求,语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。

用例设计:(如果此时将A路径上的语句1—〉T去掉,那么用例如下

语句覆盖测试用例

优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。

缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。在本例中去掉了语句1—〉T去掉,那么就少了一条测试路径。在if结构中若源代码没有给出else后面的执行分支,那么语句覆盖测试就不会考虑这种情况。但是我们不能排除这种以外的分支不会被执行,而往往这种错误会经常出现。再如,在Do-While结构中,语句覆盖执行其中某一个条件分支。那么显然,语句覆盖对于多分支的逻辑运算是无法全面反映的,它只在乎运行一次,而不考虑其他情况。

二、判定覆盖(Decision Coverage)

判定覆盖也被成为分支覆盖(Branch Coverage),也就是说设计的测试用例要保证让被测试程序中的每一个分支都至少执行一次。举个例子,有如下流程图:


流程图2

针对该图我们想要做到判定覆盖,可以设计如下case:

TestCase1: a=1, b=1  (路径:ab)

TestCase2: a=-1, b=-1  (路径:acd)

TestCase3: a=2, b=-1  (路径:ace)

判定覆盖比语句覆盖强一些,能发现一些语句覆盖无法发现的问题。但是往往一些判定条件都是由多个逻辑条件组合而成的,进行分支判断时相当于对整个组合的最终结果进行判断,这样就会忽略每个条件的取值情况,导致遗漏部分测试路径。

同样上边流程图1例子也一样

用例设计

用例设计

优点:判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。

缺点:往往大部分的判定语句是由多个逻辑条件组合(也就是可能if(a==b&&c==d)这种的逻辑组合)而成(如,判定语句中包含AND、OR、CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。

三、条件覆盖(Condition Coverage)

条件覆盖于分支覆盖不同,条件覆盖要求所设计的测试用例能使每个判定中的每一个条件都获得可能的取值,即每个条件至少有一次真值、有一次假值

仍然以上面流程图2作为例子来说明。上图中涉及到的条件一共有4个:

a>0, a<0, b>0, b<0

为了达到条件覆盖的目的,我们设计的用例需要在 a 点有:

a>0, a≤0,

b>0, b≤0,

这些情况出现,并且在 c 点有:

a<0, a≥0,

b<0, b≥0

这些情况出现。现在可以设计如下用例:

TestCase1: a=1, b=1  (路径:ab)

TestCase1: a=-1, b=-1  (路径:acd)

TestCase1: a=-1, b=0  (路径:ace)

TestCase1: a=1, b=-1  (路径:ace)

通常而言条件覆盖比判定覆盖强,因为条件覆盖使得判定中的每一个条件都取到了不同的结果,这一点判定覆盖则无法保证。但条件覆盖也有缺陷,因为它只能保证每个条件都取到了不同结果,但没有考虑到判定结果,因此有时候条件覆盖并不能保证判定覆盖。

优点:显然条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。

缺点:要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。

四、判定条件覆盖(Decision/Condition Coverage)

以流程图1为例

测试用例

主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。

优点:判定/条件覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。

缺点:判定/条件覆盖准则的缺点是未考虑条件的组合情况。

五、组合覆盖(Branch Condition Combination Coverage)

组合覆盖也叫做条件组合覆盖。意思是说我们设计的测试用例应该使得每个判定中的各个条件的各种可能组合都至少出现一次。显然,满足条件组合覆盖的测试用例一定是满足判定覆盖、条件覆盖和判定条件覆盖的。

主要特点:要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。

针对前文提到的流程图2,做条件组合覆盖时我们可以设计如下用例:

TestCase1: a=1, b=1  (路径:ab)

TestCase1: a=-1, b=-1  (路径:acd)

TestCase1: a=-1, b=0  (路径:ace)

TestCase1: a=1, b=-1  (路径:ace)

针对流程图1

测试用例

优点:多重条件覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。更改的判定/条件覆盖要求设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身的所有可能结果也至少出现一次。并且每个条件都显示能单独影响判定结果。

缺点:线性地增加了测试用例的数量。

六、路径覆盖

路径覆盖,意思是说我们设计的测试用例可以覆盖程序中所有可能的执行路径。这种覆盖方法可以对程序进行彻底的测试用例覆盖,比前面讲的五种方法覆盖度都要高。那么这种方法是不是就一定最好呢?当然不能讲得这么绝对,它的缺点也是显而易见的:由于需要对所有可能的路径全部进行覆盖,那么我们需要设计数量非常巨大的而且较为复杂的测试用例,用例数量将呈现指数级的增长。所以理论上来讲路径覆盖是最彻底的测试用例覆盖,但实际上很多时候路径覆盖的可操作性不强。

针对流程图1

测试用例

优点:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。

缺点:由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。而在有些情况下,一些执行路径是不可能被执行的

总结

以上简单描述了几种不用的逻辑覆盖方法的原则和优劣。在实际的操作中,要正确使用白盒测试的代码覆盖方法,就要从代码分析和代码调研入手,根据调研的结果,可以选择上述方法中的某一种,或者好几种方法的结合,设计出高效的测试用例,尽可能全面地覆盖到代码中的每一个逻辑路径。

控制流程图和圈复杂度

常见控制流图


控制流图



程序

程序

将上诉程序转化成控制流图


控制流图

圈复杂度=判定节点数+1

练习1:

计算下图的圈复杂度

标识它的独立路径

独立路径是指程序中至少引进一个新的处理语句集合,采用流图的术语,即独立路径必须至少包含一条在定义路径之前不曾用到的边。

独立路径数=判定节点数(4)+1= 5

独立路径数= e – n + 1 = 11 – 7 + 1 = 5(边-结点+1或2)其中全连通图+1,不连+2

独立路径:

ABCFG

ABDFG

ABEFG

ABCDFG

ABEDFGABDFG

再比如

控制流程图

独立路径

路径1:1-11

路径2:1-2-3-4-5-10-1-11

路径3:1-2-3-6-8-9-10-11

路径4:1-2-3-6-7-9-10-1-11

V=3个判定节点+1=4(圈复杂度)

由此为了覆盖所有程序语句,必须设计至少4个测试用例使程序运行于这4条路径。

循环测试

简单循环

嵌套循环

看作两个简单循环嵌套

连锁循环

看作两个简单循环

Z路径测试法

是一种将程序中循环结构简化成选择结构的测试方法。

循环简化的目的是限制循环次数,无论循环的形式和循环体实际执行的次数,简化后的循环测试只考虑循环一次或者零次两种情况。

在这种情况下,循环与判定分支的效果是一样的,即循环要么执行,要么跳过。

采用较复杂的循环测试策略测试循环,可采用下面测试集:

跳过整个循环;

只循环一次;

只循环两次;

循环m次,m<n;

循环n-1,n,n+1次;

数据流测试

defined(d) used(d),killed(k)

每个defined都要追溯used,每个used都要检查defined

单元测试(Unit Testing)

单元测试是最小的测试部分测试模块是独立于其他模块的一般情况下,被测单元能够实现一个特定的功能,并与其他单元有明确的接口定义,这样才可以与其他单元隔离开来。

In Java, a unit is a class or a class method.

In C, a unit is a function or sub processes.

目标:确保模块被正确的编码

依据:系统详细的规格说明

过程:经过设计、脚本开发、执行、调试和分析结果一个过程

执行者:由程序开发人员和测试人员共同完成

方法:以白盒测试方法为主,辅以黑盒测试方法

如何进行评估:通过所有单元测试用例,代码没有严重缺陷

单元测试过程

1、在详细设计阶段完成单元测试计划

2、建立单元测试环境,完成测试设计和开发

3、执行单元测试用例,并且详细记录测试结果

4、判定单元测试是否通过

5、提交单元测试报告

单元测试过程

单元测试优点

1、单独进行,一起进行,降低软件质量成本,缩短开发周期;

2、便于跟踪错误;

3、集成后错误会放大,集成后复杂性高,很难发现问题;

4、无需而外的设备和人员。

单元测试分为静态测试和动态测试

静态测试

代码评审:代码走查和正式会议审查。

代码走查:代码互查应用最多,代码走查是相对比较正式的评审过程,项目组部分成员通过阅读代码,向其他成员提出问题并对有关技术、风格、可能错误是否违背开发标准和规范等进行评论。

正式会议审查:是一种正式的检查和评估方法,最早由IBM提出,经实践证明,有一种有效的检查办法,从而得到软件工程界的普遍认同。它使用逐步检查源代码中有无逻辑或语法错误的办法来检验故障。


对比表

集成测试(Integration Testing)(集成测试、组装测试、联合测试、子系统测试、部件测试)

优点:早点发现错误,早点修正错误,早点获得测试反馈,调度修正错误灵活

分为增量式测试和非增量式测试

测试模式

Big bang(大爆炸) integration

优点:完成速度快、能够并行

缺点:错误发生时很难找出他的位置和改变以及很多问题得在系统测试才能发现

适用范围:Existing system with only minor modifications

Small systems with adequate unit testing

System made from certified high quality reusablecomponents

Top-down (自顶向下)integration

分为广度和深度集成测试

Advantage

Early show main points of control and judgments.

Use depth-first assembly, and a complete softwarefunction can be firstly implemented and validated.

Only one driver module is needed at most.

Support fault isolation.

Disadvantage

The costs of the development and the maintenanceof stubs are both higher.

Bottom level components demand can not bepredicted may lead to many amendments to the top level components.

Bottom-up (自底向上)integration

Advantage

Allow conducting early certification for bottommodules, any leaf node is ready for integration testing can be tested.

Reduce workload of stub development

Support fault isolation

Disadvantage

Driver module development huge workloadcomparison.

Senior validation was deferred until the end,design error can not be found in time.

Bottom abnormal hard cover.

Sandwich(三明治) integration

Advantage

Combine the advantage of top-down strategy andbottom-up strategy.

Disadvantage

The testing of middle level is insufficient beforeintegration testing.

Scope

It is used by the majority of softwaredevelopment projects.

Layers(分层)integration

High-frequency (高频)integration

Event-based(基于事件) integration

System testing(系统测试)

目的:测试可安装性、可用性、兼容性、可维护性等等

Performance Testing(性能测试)

性能是量度系统或组件在一定约束条件下,是否达到功能设计的指标:如响应速度,计算的精度,内存利用率。

性能是系统外部的质量属性基于用户的需求和用户的系统操作性的看法。

同时性能特别应用于对实时系统的评价当中,就是它的行为在指定的期限内完成正确的操作。

评估指标为时间效率,空间效率,I∕O性能,数据库性能,内存性能,初始化∕退出时间和资源利用率延时,事务处理时间,最大事务处理时间,事务操作时间,数据库性能,最大消耗的内存量,高峰内存时间,资源消耗。

下图描述了web应用的页面响应时间的分解。


分解

页面响应时间分解为网络传输时间(N1+N2+N3+N4)和应用延迟时间(A1+A2+A3),

而应用延迟时间又可分为数据库延迟时间(A2)和应用服务器延迟时间(A1+A3)。

延迟:一个指令控制器发出数据请求的一瞬间和数据传送的一瞬间之间的时间间隔;是请求和完成操作之间拖延的时间差。

事务处理时间:是指完成一项事务所需要的运行时间,用于评价事务处理效率。通常,事务处理的时间越短,则效率越高。

并发用户数,一般分两种情况:

严格意义的并发,即所有用户在同一时间做同一件事情或者操作。

广义范围的并发,多个用户对系统发出了请求或进行了操作,但这些操作可以是相同的,也可以是不同的。

吞吐量:是指在一次性能测试过程中网络上传输数据量的总和。

一般来说,吞吐量用请求数/秒或页面数/秒来衡量。

吞吐量指标有如下两个作用:

1、协助设计性能测试场景,衡量性能测试场景是否达到了预期的设计目标。

在设计性能测试场景时,根据估算吞吐量数据测试场景事物发生频率。

2、协助分析性能测试瓶颈。

性能测试比较关注业务并发用户数,从业务的角度设置多少并发数合理。

下面给出估算并发用户数的公式:C=nL/T

C —平均的并发用户数

n —登录会话的数量

L —登录会话的平均长度

T —考察的时间段长度


ppt


ppt

例题:

一个软件系统每天约有400个用户访问。用户在一天之内有8小时内使用该系统,从登录到退出的平均时间为4小时,请计算该系统的并发用户数和并发用户的峰值各是多少?

分析:根据公式C=400×4/8=200

并发用户数的峰值


负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(不断增加模拟用户数量)或其他加载方式来观察不同负载下系统响应时间和数据吞吐量,系统资源占有率(cpu和内存)等性能指标,以检验系统的行为和特性,发现系统可能存在的性能瓶颈、内存泄露和不能实现同步等问题。

高低突变加载:某个时间用户数量很大,突然降到很低,过一段时间,又突然加到很高,反复几次。借助这种负载方式的测试,容易发现资源的释放和内存泄漏的问题。

随机加载方式:由随机算法自动生成某个数量范围内变化的、动态的负载,这种方式可能是和实际情况最为接近的一种负载方式。虽然不容易模拟系统运行出现的瞬间高峰期,但可以模拟系统长时间的运行过程的状态。

压力测试用于判定应用处理大量数据的能力。

压力测试可以成功的测试服务器满负载的情况。

除了在服务器上增加运行的应用结合客户端测试是一种额外的形式的压力测试。

性能测试过程:计划,记录,修改,执行,分析

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容