软件测试技术期末复习

卷面分数及考点如下:两道大题

第一道大题(40):判断题:对错+原因(每题10分);

第二道大题(60):三小题,每题20分

涉及:

1、黑盒测试 

2、测试用例:标识、输入、步骤、预期

3、白盒测试:代码、补充测试数据、代码控制流图、复合结构拆分、图复杂度

4、集成测试:自底向上、自顶向下、插桩


目录

第一章  软件测试基础

1.1测试的定义和原则

1.2软件缺陷的定义和分类

1.3测试用例

1.4软件测试分类

第二章 软件测试模型与过程

第三章 软件测试管理

测试管理使用基本流程

第四章 黑盒测试

4.1边界值测试

4.1.2边界值分析的测试用例

4.1.3边界值分析的优缺点分析

4.1.4边界值分析三角形举例

4.2等价类测试

4.2.1等价类的划分

4.2.2划分等价类的方法

(1)区间划分

(2)按照数值划分

(3)按照数值集合划分

(4)布尔变量

(5)进一步细分等价类

4.2.3等价类三角形举例

4.3判定表测试

4.3.1判定表建立步骤

4.3.2判定表三角形举例

第五章 白盒测试

5.1逻辑覆盖

5.1.1语句覆盖

5.1.2判定覆盖

5.1.3条件覆盖

5.1.4判定-条件覆盖

5.1.5条件组合覆盖

5.1.6路径覆盖

5.2基路径测试

5.2.1程序环路复杂性

5.2.2基路径测试方法

第六章 单元测试

6.1插桩

第七章 集成测试

7.1基于功能分解的集成

7.1.1自顶向下集成

7.1.2自底向上集成

7.2基于调用图的集成

7.2.1成对集成

7.2.2相邻集成

第八章 系统测试

8.1性能测试

8.1.1影响性能测试的因素

8.1.2性能测试流程

8.2兼容性测试

8.3web系统性能测试内容

第九章 面向对象软件的测试

第十章 自动化测试

10.1测试工具分类

10.2测试工具选择

附录以往考试试卷


第一章  软件测试基础

1.1测试的定义和原则

测试定义需要清楚变化

测试原则(大题、判断题)

软件测试就是对醒目开发过程的产品(编码、文档)进行差错审查,保证其质量的一种过程。

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

软件测试的目的之一是尽快尽早地找到至今没有被发现的缺陷,而不是确保没有缺陷。

在软件开发过程中,若能尽早暴露其中的错误,则为修复和改进错误所花费的代价就会降低。

软件测试规范规定,软件测试的类别可分为:单元测试、集成测试以及配置项测试、系统测试和验收测试

1.2软件缺陷的定义和分类

缺陷级别详细描述

致命(critical)

致命的错误,造成系统或应用程序崩溃(crash)、死机、系统悬挂、或造成数据丢失、主要功能组完全丧失。

严重(major)

严重错误,指功能或者特性(feature)没有实现,主要功能丧失,导致严重的问题,或致命的错误声明。

一般(normal)

不太严重的错误,这样的缺陷虽然不影响系统的基本使用,但没有很好的实现功能,没有达到预期的效果。如次要功能丧失,提示信息不太正确,或用户界面太差,操作时间长等 。

微小(minor)

一些小问题,对功能几乎没有影响,产品及属性仍可使用,如有个别错别字、文字排列不整齐等。

1.3测试用例

1.4软件测试分类

第二章 软件测试模型与过程

第三章 软件测试管理

软件测试工作过程有哪些?

确定测试计划、设计测试用例、测试执行、测试总结

测试执行的工作过程有哪些?

(1)全方位地观察测试用例执行结果

(2)加强测试过程记录

(3)及时确定发现的问题

(4)提交缺陷时与开发的关系处理

(5)及时更新测试用例

(6)提交一份优秀的问题报告单

3.1测试管理使用基本流程

项目-》项目需求管理及建立-》测试用例建立-》测试单建立-》测试执行-》缺陷上报-》测试报告生成

软件测试岗位工作角色有:测试经理、测试工程师、测试员

软件测试岗位工作任务如下:监控测试进度 ( 测试经理 )、生成测试报告 (  测试员  )、确保测试外部环境 ( 测试经理 )

1、记录测试结果 (    测试员          )

2、实施测试操作 (    测试员          )

3、设计测试用例 (    测试工程师      )

4、分析测试结果 (    测试工程师      )

5、制定测试计划 (    测试经理        )

第四章 黑盒测试

黑盒测试是已知产品的功能设计规格,可以进行测试来证明每个实现了的功能是否符合要求。

黑盒测试的测试用例是根据应用程序的功能需求设计的。

在设计测试用例时,应包括合理的输入条件和不合理的输入条件。

4.1边界值测试

边界值分析采用单缺陷假设,即弱类型测试。
单缺陷假设:软件失效、极少是由两个或多个缺陷同时发生引起的

最小值、略高于最小值、正常值、略低于最大值、最大值处取输入变量值。
表示方法:min、min+、nom、max-、max

4.1.2边界值分析的测试用例

设计边界值测试用例时,多个变量,只使其中一个变量取极值,其他变量取正常值,控制变量嘛。
归纳基本边界值分析方法:
1.通过变量个数
2.通过变量取值范围

对于一个变量个数为n的函数,边界值分析会产生4n+1个测试用例
 

4.1.3边界值分析的优缺点分析

边界值测试分析采用了可靠性理论的 单缺陷假设。
优点:简便易行,生产测试数据的成本很低;
缺点:测试用例不充分;不能发现测试变量间的依赖关系;不考虑含义和性质。
结论:只能作为初步测试用例使用。

4.1.4边界值分析三角形举例

边界值分析法测试用例
minmin+max-maxnom
12199200100
边界值分析法
A边B边C边输出
1001100等腰三角形
1002100等腰三角形
100199100等腰三角形
100200100非三角形
1100100等腰三角形
2100100等腰三角形
199100100等腰三角形
200100100非三角形
1001001等腰三角形
1001002等腰三角形
100100199等腰三角形
100100200非三角形

4.2等价类测试

4.2.1等价类的划分

有效等价类无效等价类

4.2.2划分等价类的方法

(1)区间划分

如果输入条件规定了取值范围或值的个数就可确定一个有效等价类两个无效等价类

(2)按照数值划分

如果规定了输入数据的一组值,且程序要对每一个输入值分别进行处理,要对每一个规定的输入值确立一个有效等价类,而对于这组值之外的所有值确立一个无效等价类

例如:输人条件说明学历可为:专科、本科、硕士、博士四种之一

有效等价类有四个:专科,本科,硕士,博士
无效等价类:非以上四种学历

(3)按照数值集合划分

输人条件规定了输入值的集合或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类

例如:“文件名称必须以字母开头。。。”

有效等价类:以字母开头;

无效等价类:以非字母开头,如数字、特殊字符、汉字等;

(4)布尔变量

如果输人条件是一个布尔量,则可以确立一个有效等价类一个无效等价类
例如:
单选的选中与不选中
验证码正确与不正确

(5)进一步细分等价类

如已划分的等价类各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类

例如:输入三条边,判断三角形的形状,
可以构成三角形(再进一步判断三角形的形状)
一般三角形、等腰三角形、等边三角形
不能构成三角形(可进一步细分等价类)

4.2.3等价类三角形举例

等价类分析法
输入条件有效等价类编号无效等价类编号
三个正整数正整数1一边为非正整数a为非正整数10
b为非正整数11
c为非正整数12
两边为非正整数a、b为非正整数13
a、c为非正整数14
b、c为非正整数15
三遍均为非正整数16
三个数2只输入一个数只给a17
只给b18
只给c19
只输入两个数只给a、b20
只给a、c21
只给b、c22
未输入数23
构成一般三角形a+b>c,且ab≠c3a+b<c24
a+b=c25
a+c>b,且ab≠c4a+c<b26
a+c=b27
b+c>a,且ab≠c5b+c<a28
b+c=a29
构成等腰三角三角形a=b,a≠c,且两边之和大于第三边6
a=c,a≠b,且两边之和大于第三边7
b=c,a≠b,且两边之和大于第三边8
构成等边三角形a=b=c9
等价类分析测试用例
测试用例编号输入数据预期输出覆盖等价类
abc
1567一般三角形1、2、3、4、5
2665等腰三角形1、2、6
3656等腰三角形1、2、7
4566等腰三角形1、2、8
5666等边三角形1、2、9
6-566提示:输入不符合要求10
7606提示:输入不符合要求11
8663.6提示:输入不符合要求12
90-56提示:输入不符合要求13
105.66-2提示:输入不符合要求14
11603.5提示:输入不符合要求15
123.55.64.5提示:输入不符合要求16
136————提示:请输入数据17
14——5——提示:请输入数据18
15————5提示:请输入数据19
1666——提示:请输入数据20
176——4提示:请输入数据21
18——56提示:请输入数据22
19——————提示:请输入数据23
205615不能构成三角形24
216713不能构成三角形25
224105不能构成三角形26
236104不能构成三角形27
245615不能构成三角形28
257815不能构成三角形29

4.3判定表测试

4.3.1判定表建立步骤

①分析条件和动作,确定规则的个数;

假如有n个条件,每个条件有两个取值(0,1),则有2^{n}种规则;

②列出所有的条件桩和动作桩
③填入条件项;
④填入动作项,得到初始决策表;
⑤简化,合并相似规则(相同动作)。

4.3.2判定表三角形举例

判定表分析法
123456
条件构成三角形YYYYYN
a=bYYNNN——
a=cYNYNN——
b=cYNNYN——
结果不构成三角形
普通三角形
等腰三角形
等边三角形
判定表测试用例
测试用例编号输入数据预期结果覆盖规则
abc
1333等边三角形1
2331等腰三角形2
3313等腰三角形3
4133等腰三角形4
5234普通三角形5
6345普通三角形5
7678普通三角形5
8336不构成三角形6
9157不构成三角形6
106103不构成三角形6

第五章 白盒测试

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

白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。

软件测试员无法对产品说明书进行白盒测试。

5.1逻辑覆盖

5.1.1语句覆盖

需要保证程序中每一条可执行语句至少应执行一次。

5.1.2判定覆盖

设计测试用例时,应保证程序中每个判定节点的取真分支和取假分支至少经历一次。

5.1.3条件覆盖

设计测试用例时,要使每个判断中每个条件的可能取值至少满足一次。

5.1.4判定-条件覆盖

(1)所有条件的可能取值至少执行一次

(2)所有判断的可能结果至少执行一次。

5.1.5条件组合覆盖

设计测试用例时,所有可能的条件取值组合至少执行一次。

5.1.6路径覆盖

设计足够多的测试用例覆盖程序中所有可能的路径。

5.2基路径测试

5.2.1程序环路复杂性

方法一:通过控制流图的边数和节点数计算。

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

方法二:通过控制流图中判断节点数计算。

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

方法三:讲环路复杂性定义为控制流图中的区域数。

5.2.2基路径测试方法

(1)根据详细设计或者程序源代码,绘制出程序的程序流程图。

(2)根据程序流程图,绘制出程序的控制流图。

(3)计算程序环路复杂度。

(4)找出独立路径。

(5)设计测试用例。

第六章 单元测试

涉及实验三、实验四

单元测试通常由开发人员进行。

基本单元本身不是一个独立的程序,自己不能运行要靠其它部分来调用和驱动

驱动模块(Driver):被测基本单元的主程序,它接收测试数据,并把数据传送给被测单元,最后输出实测结果
桩模块(Stub):用来代替被测基本单元调用的其他基本单元

6.1插桩

显示插桩

	@Test
	public void testAdd_mock() {
		AddTwoFun mockTwo = mock(AddTwoFun.class);  // 建立mock对象
		AddThreeFun testObj = new AddThreeFun();
		testObj.addTwo = mockTwo;
		
		int a = 50;
		int b = 60;
		int c = 30;
		int exp = 140;
		Mockito.when(mockTwo.add(50, 60)).thenReturn(110); // mock方法
		int act = testObj.add(a, b, c);
		Assertions.assertEquals(exp, act);
		//Assert.assertEquals(0.11, 0.05, DELTA);
		Mockito.verify(mockTwo).add(50, 60);// mock调用验证
	}

 注解插桩

	@Mock
	AddTwoFun addTwo;
	
	@InjectMocks
	AddThreeFun testObj = new AddThreeFun();

	@BeforeEach
	public void setUp() throws Exception {
		MockitoAnnotations.initMocks(this);
	}

	@Test
	public void testAdd() { 
		int a = 50;
		int b = 60;
		int c = 30;
		int exp = 140;
		Mockito.when(addTwo.add(50, 60)).thenReturn(110);
		int act = testObj.add(a, b, c);
		Assertions.assertEquals(exp, act);
		Mockito.verify(addTwo).add(50, 60);
		
	}

第七章 集成测试

集成测试是每个模块完成单元测试后,需要按照设计是确定的结构图,将他们连接起来,进行集成测试,也成为综合测试。集成测试包括非增量测试和增量测试两种方式。

非增量型集成测试是先将所有软件模块统一集成后才进行整体测试,容易出现混乱,不宜采用。

增量型集成测试是从一个模块开始,测一次添加一个模块,边组装便测试。可以更早发现模块间接口错误。

7.1基于功能分解的集成

7.1.1自顶向下集成

按照系统层次结构图,以主程序模块为中心,自上而下按照深度优先或者广度优先策略,对各个模块一边组装一边进行测试。

自顶向下集成步骤:
(1)以主控模块作为测试驱动模块,把对主控模块进行单元测试引入的所有桩模块用实际模块替

(2)依据所选的集成策略,每次只替代一个桩模块

(3)每集成一个模块立即测试一遍

(4)只有每组测试完成后,才着手替换下一个桩模块

(5)为避免引人新错误,须不断地进行回归测试

从第(2)步开始,循环执行上述步骤,直至整个程序结构构造完毕

7.1.2自底向上集成

从系统层次结构图的最底层模块开始进行组装和集成测试的方式。

自底向上集成步骤:

(1)从最底层的模块开始组装,组合成一个能够完成某个子功能的构件;

(2)编制驱动程序,协调测试用例的输入与输出;

(3)测试集成后的构件

(4)使用实际模块代替驱动程序,按程序结构向上组装测试后的构件;

(5)重复上面的第二步,直到系统的最顶层模块被加人到系统中为止。

7.2基于调用图的集成

基于调用图的集成有两种:
(1)成对集成
(2)相邻集成

7.2.1成对集成

成对集成的思想就是免除桩/驱动器开发工作使用实际代码来代替桩/驱动器
成对集成的方法就是对应调用图的每一个边建立并执行一个集成测试会话。

7.2.2相邻集成

相邻节点:
有向图中,节点邻居包括所有直接前驱节点和直接后继节点
相邻集成:
(1)可大大降低集成测试的会话数量,并可避免桩和驱动器的开发
(2)相邻集成本质上是三明治集成
(3)相邻集成具有“中爆炸”集成的缺陷:隔离困难

第八章 系统测试

8.1性能测试

8.1.1影响性能测试的因素

性能测试需要模拟实际用户负载来测试系统,包括:反应速度、最大用户数、系统最优配置、软硬件性能、处理精度等等。

目标:对产品的性能进行测试,检验是否达标、是否能够保持

方法:覆盖系统的性能需求,一般和负载测试结合使用

工具:在需要大访问量时候尤其需要使用工具

8.1.2性能测试流程

8.2兼容性测试

兼容性测试(CompatibilityTesting)即测试软件在一个特定的硬件/软件/操作系统/网络等环境下的系统能否正常运行

目的:检验被测软件对其它应用软件或者其它系统的兼容性比如在对一个共享资源(数据、数据文件或者内存)进行操作时,检测两个或多个系统需求能否正常工作以及相互交互使用。

兼容性包括硬件兼容软件之间兼容数据之间兼容

8.3web系统性能测试内容

压力测试通常需要辅助工具的支持。

第九章 面向对象软件的测试

无考点

第十章 自动化测试

10.1测试工具分类

LoadRunner是一种适用于各种体系结构的自动负载测试工具,它能预测系统行为并优化系统性能。

10.2测试工具选择

附录以往考试试卷

西南科技大学《软件测试技术》期末考试试卷(a卷) - 360文库 (so.com)

西南科技大学软件测试b卷答案 - 360文库 (so.com)

  • 14
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值