软件测试学习第一部分软件测试理论基础.docx

上传人:b****8 文档编号:11036793 上传时间:2023-02-24 格式:DOCX 页数:38 大小:1.54MB
下载 相关 举报
软件测试学习第一部分软件测试理论基础.docx_第1页
第1页 / 共38页
软件测试学习第一部分软件测试理论基础.docx_第2页
第2页 / 共38页
软件测试学习第一部分软件测试理论基础.docx_第3页
第3页 / 共38页
软件测试学习第一部分软件测试理论基础.docx_第4页
第4页 / 共38页
软件测试学习第一部分软件测试理论基础.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

软件测试学习第一部分软件测试理论基础.docx

《软件测试学习第一部分软件测试理论基础.docx》由会员分享,可在线阅读,更多相关《软件测试学习第一部分软件测试理论基础.docx(38页珍藏版)》请在冰豆网上搜索。

软件测试学习第一部分软件测试理论基础.docx

软件测试学习第一部分软件测试理论基础

第一部分:

手工测试

软件测试基础理论

第三讲(缺陷报告)

一、测试人员的主要工作职责

(1)编写测试计划

(2)编写测试用例

(3)执行测试,发现缺陷提交缺陷报告

(4)验证所有缺陷是不是得到修复

(5)编写测试总结报告

二、缺陷报告的组成

1、缺陷编号(DefectID)

提交bug的顺序

说明:

(1)全项目组统一编号

(2)如果使用管理工具,缺陷编号会自动生成

2、缺陷标题(summary)

简明扼要的描述一下该bug

3、缺陷的发现者(DetectedBy)

一般为自己

4、发现缺陷的日期(Detectedondate)

一般就是发现缺陷的当前

5、缺陷所属的模块(subject)

在测试程序的那个功能模块或菜单时发现的bug

开发经理会根据bug所在的模块,找到bug的负责人

6、发现缺陷版本(Detectedinrelease)

在测试程序的哪个版本时发现的bug

27、指派给谁处理(Assignedto)

测试人员把缺陷报告指派给开发经理,开发经理会根据缺陷所在的模块,需要再次指派给具体的开发人员

8、缺陷的状态(status)(重要)

表明缺陷所处的情况或处理结果。

(1)测试人员发现bug提交缺陷报告给开发经理,把bug的状态写成:

new(新提交)

(2)开发经理验证提交的bug,如果是Bug,把bug的状态改为:

open(打开的bug、开发组承认的Bug);如果不是bug,把缺陷的状态改为:

rejected(被拒绝的缺陷),是缺陷需要把缺陷指派给bug的负责人。

(3)开发人员,看到指派给自己的bug,进行Bug的修复,修改完后,把bug的状态改为:

fixed(已经修复的bug)

(4)测试人员对修复的bug进行返测,如果反测成功,把bug的状态给为:

closed(关闭bug、反测成功的bug),如果返测失败把bug的状态改为:

reopen(重新打开的bug、返测失败的bug)

以上的过程成为“缺陷(报告)的处理流程,也称之为“缺陷的跟踪过程”,或称作“缺陷的生命周期”

New---→open-→Fixed--→closed

9、缺陷的严重程度(Severity)(重点)

表明bug多糟糕,或对软件造成多大影响

Urgent:

造成死机、崩溃等致命问题

Veryhigh:

非常严重的bug。

Hight:

比较严重的、大的bug

Medium:

中等程度的bug

Low:

小的bug

以后再提交缺陷时会有一个专门的文档来说明什么样的错误时什么等级

BugLevelDefinition缺陷等级定义

说明:

每个单词在不同项目中代表的含义是不尽相同,我们应该在专门的文档中给出比较详细的评判标准,这样才会减少争议。

Performance:

性能

Function:

功能

10、缺陷的优先级(priority)(重点)

希望缺陷在什么时间内或者在程序的哪个版本中解决

Urgent:

立刻修改,否则会影响开发或测试的进度

Veryhigh:

本版本修改(本周期修改)

Hight:

下一个版本修改(下一周期修改)

Medium:

发布之前修改(下一版本修改)

Low:

允许在发布中存在(发布之前修改)

优先级需要考虑的因素:

(1)严重程度:

一般越严重,优先级越高

(2)影响的范围:

印象的范围越大,优先级越高

(3)开发组的进度压力:

压力越小,优先级越高

(4)解决bug的成本问题:

成本越低,优先级越高

11、缺陷描述(description)(重点)

把发现缺陷的步骤、使用的数据记录下来,让程序员通过描述能够再现bug

三、常见问题

1、严重程度和优先级不是严格成正比的

例如:

界面问题的严重程度一般比较低,但优先级可能最高----立即修复。

错误提示中的错别字严重程度低,因为其好修改,优先级可能最高---立即修复

一些严重的错误,它不影响其他功能,但是难解决其严重程度高,但优先级可以低些

2、严重程度确定好后,一般不做修改;优先级可能会根据实际情况,适当修改

3、在产品发布之前有些缺陷可能解决不了,但一定要做好风险分析

例如:

一些用户不常用的功能,或发现错误时不会造成很大的损失的

四、缺陷报告用途

(1)记录bug

(2)对bug进行分类(发现者、日期、版本、模块、严重程度、状态。

(3)跟踪bug(new->closed)

(4)对bug总结、分析统计

五、如何识别bug

(1)参考测试用例的预期结果,实际结果与预期结果不一致,就是bug

(2)参考需求文档,与需求不一致就是bug

(3)讨论

(4)参考第一讲中缺陷的5点定义

六、写缺陷报告时注意的问题

说明:

有些bug是不可重新的。

可以称为随机bug,也要提交,要注明一下

七、缺陷报告的处理流程

参考缺陷状态(status)笔记

 

作业:

至少提交三个缺陷报告

第四讲(测试用例)

一、测试用例基本概念

测试用例是在测试执行之前由测试人员编写的指导测试过程的重要文档,主要包括:

用力编号、测试目的、用例描述、预期结果

二、测试思想:

“穷举测试”是最全面的测试,但是时间成本太高,在实际中不能采用。

编写用例的方法,是在保证测试质量的前提下,使用最少的数据、最少的成本达到最优的测试效果。

不做穷举测试,是存在风险的,所以如果有时间可以再适当的补充

三、编写测试用例的方法

(1)等价类划分

(2)边界值法

(3)因果图法

(4)判断表法

(5)正交排列法

(6)场景法

(7)测试大纲法

四、写测试用例的参考

(1)文档,尤其是需求文档

(2)参考已经开发出来的程序

(3)讨论

五、测试用例的用途

1、防止遗漏

使软件测试的实施重点突出、目的明确、确保需求功能不能被遗漏

2、版本重复测试

快速正确的进行版本重复测试

3、监督过程

可以准确有效的评估工作量

4、评价结果

对产品进行评估,对测试完成情况进行评价

5、提高效率

避免盲目测试

6、缩短周期

版本升级或修改时只需要修正少部分测试用例,资源复用

六、写用例时注意的点

1、在写测试用例之前,还要明确项目对用例的具体要求

———测试用例编号如何命名

———测试用例应该提交到什么地方

———测试用例用到的附件命名规则、存放位置

2、测试用例是需要跟新和维护的,是一个不断修改和完善的过程

3、测试用例需要正式的评审

4、测试用例覆盖系统的程度,决定测试的覆盖程度

七、对测试人员的要求

1、基本要求

在编写一条测试用例时,要求步骤清楚准确易读,预期结果明确

如有特殊的设置,预期条件等要明确写出

如果有输入数据一般要给出输入数据取值

如果有附件,要给出附件存放位置名称

检验标准

写完用例后让别人照着自己的用例去执行测试可以很顺畅的执行下来

2.高标准要求

测试用例写的有条理逻辑性强,可以按照功能点分类操作顺序等逻辑编写,而不要一会测试这,一会测试那

功能覆盖全面深入,能够发现软件中的更多缺陷

检验标准

能把软件中的缺陷尽可能多的找出来,按照你的测试用例测试完软件、遗漏的缺陷最少要求测试人员最终达到的目的,是一个需要长期积累学习的过程

 

第四讲(等价类划分、边界值法)

1、等价类划分法

(1)应用场合

只要有数据输入的地方就可以使用。

把可以输入的无穷多的数据进行分类,从中挑选一些代表进行测试即可

(2)核心概念

●有效等价类

对程序的规格说明有意义、合理的输入数据集合,程序接受到有效数据,应该正确计算,执行

●无效等价类

对程序的规格说明无意义,不合理的输入数据集合,程序接受到无效数据应给出错误提示,或者根本无法输入

有效等价类主要验证程序的正常业务功能实现,

无效等价类验证程序的异常处理能力(健壮性)

(3)使用等价类划分分析程序

案例:

需求:

如图:

 

功能展示:

如图

 

首先,明确测试对象——“第一个数”文本框

说明:

在测试“第一个数”文本框时。

“第二个数”文本框要填写正确

1、分析需求,划分等价类(有效等价类、无效等价类)

●有效等价类

-99——99的整数

●无效等价类

①<-99的整数

②>99的整数

③为空

④非整数

2、细化等价类

依据的一般是隐式需求,比如,数据再内存中存储的形式,数据在数据库、程序中的类型

●整数在计算机中是按照“补码存储”整数和负数的补码计算方式不同,有必要单独测

把有效等价类-99—99细化为:

①-99—-1的整数

②0—99的整数

●非整数可以细化为:

①小数

②字符

③汉字

④符号

3、建立等价类表(熟练以后直接做该步)

有效等价类

序号

数据范围

1

-99—-1的整数

2

0—99的整数

无效等价类

序号

数据范围

1

<-99整数

2

>99的整数

3

为空

4

小数

5

字母

6

汉字

7

符号

4、根据等价类表,编写用例

从每个等价类中至少挑选出一个数据编写用例

在分析“第二个数”文本框跟分析第一个是一样的

说明:

保证“第一个数”文本框填写正确

2、边界值法

案例:

跟等价类划分采用同一个(也两个文本框分开分析)

对上边等价类划分进行补充

(1)应用场合

有数据输入的地方,一般就可以使用。

边界值法往往和等价类划分一起使用,共同形成一套较为完善的测试方案

(2)如何使用

找到有效数据和无效数据的分界点(-99、99)(最小值和最大值),及其(分界值)两边的点(次边界点、次分界点(-98、-100、98、100)),对这些点单独进行测试如图:

 

(3)说明

边界值数据,本质上就是属于等价类划分的范畴,但是应该单独测试,这种测试实际上是一种冗余,但在工程中是必须的

3、有效数据的优化

1、问题提出

一条用例只测试一个控件的有效等价类或有效边界值,比较简单的,适合初学者,但是会产生大量冗余,影响了测试效率

2、如何优化

在一条用例中可以尽可能多的测试不同的控件的一个有效等价类或有效边界值(即在一个用例中把所有的有效等价值全都测了,从每一个控件有效等价类(有效等价类没有用有效边界值)各挑选一个)---不同控件的有效数据可以组合在一起测试-------减少用例数量

3、说明:

由于没个控件的有效数据(有效等价类+有效边界值)的数量一般不会完全相等,所以我们在测试某个控件的有效数据时,其他控件的有效数据已经全部测完,这时需要从这些已经测完的数据中重复选择有效数据,这种冗余是不可避免的。

在测试目的中,冗余的部分就不要在写了(即已将测过的有效数据,已经在目的中写过的就不要在另一个用例的目的中再写了)

4、无效等价类的强化

在开始的时候,一条用例只测试一个控件的一个无效等价类或一个无效边界值----无效等价类在开始时不能组合----避免屏蔽现象发生(前面的错误提示出现了,后面的错误提示就不出现了)

最后,再根据时间情况适当考虑不同控件无效等价类(或无效边界值)的组合,或者同一个控件不同无效等价类(或无效边界值)的组合、

5、无效等价类考虑的因素

有效等价类的数量。

一般较少,无效等价类的数量一般较多(是有效等价类的2-5倍)

有效等价类可以从需求中直接找到答案

无效等价类可以从以下因素考虑:

(1)要求:

不能为空,无效等价类为空

(2)要求:

不能重复,无效等价类重复

(3)数据有大小范围无效无效数据超出范围

事例:

年龄:

18-60

无效:

<18,>60

(4)字符有个数要求

无效:

字符个数超出范围

例如:

3-20个字符

无效:

<3个字符,>20个字符

(5)数据有格式、样式、类型要求

无效:

格式、样式、类型、非法

示例:

要求:

整数”

无效:

非整数(小数、字母、汉字、符号)

要求:

“小数”

无效:

非小数(字母、汉字、符号)

(6)小数点最多保留位数要求

无效:

小数点位数超长

6、有效等价类划分的一些技巧

1、如果数据要求里没有说什么不可以包含,默认就是允许的

2、3——10个英文字符(或5个汉字)例如有样的要求的有效等价类只要写出:

3-10个字符就可以了(因为字符包括英文字符和汉字字符,一个汉字字符等于两个英文字符)

但是写测试用例的时候,尽量要多组合来测例如:

字母数字,字母符号、数字符号。

的组合

3、数据要求范围小的,无效等价类有效等价类,边界值重复了的数据(因为数据范围小,这中重复时不可避免的)那么写测试用例写数据的时候尽量不要重复

4.一些要求是小数的例如工资,如果没有明确说不能是整数的话,

(1)则可以是整数,要写在有效等价类里边

(2)无效等价类,边界值,只要写出一套小数的就可以了

(3)边界值里也要写出小数点位数的边界值:

例如:

小数点后最多保留两位,边界值就要写出:

小数点后2为,小数点后1位,小数点后3为

(4)如果要求为小数有位数的,边界值只要找到要求的最少位数,的精度,最大值,最小值加减就可以了

例如:

1.00——30000.00之间的小数最多保留2为小数

则其最小精度为0.01那么其边界值为:

1.00.991.0130000.0029999.9930000.01

5、整数在计算机中是按照“补码存储”整数和负数的补码计算方式不同,有必要单独测

把有效等价类-99—99细化为:

①-99—-1的整数

②0—99的整数

 

说明:

(1)如果需求要求为“字符”,意味这可以输入:

字母、汉字、符号、0-9的数字

(2)在标准的编码中(ASCII、gb2312)中,一个英文字符占一个字节(8位二进制),一个汉字字符占两个字节(16位二进制)

(3)如果需求要求是小数,如果没有特别声明,“不允许整数”意味这可以包含“整数”需要单独测试

(4)如果允许为空我们需要测试把“为空”当做有效等价类

7、无效等价类常见处理方式

(1)允许无效数据输入,最后给出错误提示------重点检查提示信息正确性、点击完“确定”后程序是否继续运行、光标定位准不准确

(2)允许无效数据输入,程序会自动把无效数据纠正成有效数据

(3)无效数据无法输入

 

第五讲(因果图法)

一、基本概念

在一个窗口中,有多个操作,操作和操作之间存在组合关系和限制关系,不同的操作组合会产生不同的输出结果的组合,为了弄清什么样的操作(输入)组合,会产生什么样的输出组合,使用因果图法

二、因果图法核心概念

1、因——输入条件、用户所做的操作、原因

2、果——输出结果、用户做完操作的结果、结果

使用画图的方式,表达因(输入条件)和果(输出结果)的关系

三、图形符号

1、基本图形符号

表达的是因(输入)和果(输出)的关系

①恒等

 

 

②与(^)

 

③非

 

④或(v)

 

2、约束限制符号

约束的是同一类的——要不然同时约束的是输入,要不然同时约束的是输出

①互斥(E)(重点)

最多只有一个1(即最多只有一个可能成立)

 

实例:

(一开始没有选中的项)

 

②唯一(O)only(重点)

有且仅有一个1

 

实例:

(一开始有一个选中的值)

 

说明:

互斥,和唯一在程序中主要区别就是有无默认值,互斥——没有设置默认值,唯一——是设置了默认值

③要求(R)required(重点)

箭头指向谁要求谁

如果A要求B

A=1,B必须为1

 

实例:

(自动登录如果勾选了,记住密码必须勾选)

 

④屏蔽(M)masked

箭头指向谁屏蔽谁

如果A屏蔽B

A=1,B必须为0

 

实例:

(第一个错误提示出现了,就会屏蔽掉第二个错误提示)

 

⑤包含(I)include

至少包含一个1

实例:

 

四、用因果图法分析程序

需求:

 

 

开发的程序样式

 

1、找出所有的“因”(输入条件),将其编号

(1)投币50元

(2)投币100元

(3)充值50元

(4)充值100元

2、找出所有的“果”(输出结果),将其编号(只要把动作找完就可以,细化的可以不用写)

A、充值成功并退卡

B、提示充值成功

C、找零

D、错误提示并退卡

步骤1、2是初步分析需求的过程

画出输入和输出的图形

3、在步骤1基础上,找到输入的限制关系和组合关系

(1)组合关系(决定了测试用例的数量)

①输入

(1)(3)组合

②输入

(1)(4)组合

③输入

(2)(3)组合

④输入

(2)(4)组合

⑤输入

(1)单独

⑥输入

(2)单独

⑦输入(3)单独

⑧输入(4)单独

(2)限制关系

(为了给画因果图做基础,即互斥例的情况不能同时出现,互斥的情况不会增加测试用例的数量,但是最好把互斥的情况在预期结果中写出

例如:

下边的

(1)

(2)互斥则测试用例中:

操作:

点击请投币50元按钮,预期结果:

请投币两个按钮置灰(即投币50元跟投币100元互斥不能同时存在)

①条件

(1)

(2)不能组合(互斥)

②条件(3)(4)不能组合(互斥)

4、在步骤2的基础上,找到输出的限制关系和组合关系(熟练以后此步可以省略)

(1)组合关系

①结果(输出)AB是必须组合(要求R)

②结果(输出)ABC组合

③结果(输出)CD组合

④结果(输出)D单独存在

(2)限制条件

①结果(输出)AD不能组合

②结果(输出)BD不能组合

步骤3和4是深入分析需求的过程

画出输入和输出的限制关系

5、根据步骤3

(1)和步骤4

(1),找到输入组合和输出组合的对应关系(什么样的输入组合产生怎么样的输出组合),写出判定表

判定表只能表现出组合之间的关系,不能表达出限制的关系

情况1:

①输入

(1)(3)组合

会产生:

输出A和B组合

情况2:

②输入

(1)(4)组合

会产生

③结果(输出)CD组合

情况3:

③输入

(2)(3)组合

会产生

②结果(输出)ABC组合

情况4:

④输入

(2)(4)组合

会产生:

①结果(输出)AB是必须组合(要求R)

情况5:

输入

(1)单独

会产生

输出CD组合

情况6:

输入

(2)单独

会产生:

输出CD组合

情况7:

输入(3)单独

会产生:

输出D组合

情况8:

输入(4)单独

会产生

输出D组合

6、根据判定表编写用例

把判定表的1列转换成1条用例,测试1种组合关系

 

第六讲(判定表法)

一、基本概念

1、判定表法就是因果图法的简化,省略画图过程(即直接分析写出判定表就可以了)

2、任何编写用例的方法,可能只试用与窗口中的某几个控件,为了测试整个窗口往往需要综合应用多种测试用例的方法

二、如何综合应用各个写测试用例方法

例子:

需求:

 

数数数

 

 

程序:

 

(1)根据控件的特点,选择正确的方法

A、工资薪制和错误程度需要考虑组合——判定表(因果图)

B、基本信息部分为填写项————等价类、边界值

(2)根据选择的方法,对控件分别进行分析

说明:

分析的时候,是对每个控件“单独”分析,

(3)根据前面的分析,“综合”编写用例

例子:

在文档的:

E:

\测试用例\结构图法、判定表法\工资发放判定表等价类划分

注意:

如果下边的控件用到上边控件的数值的话,尽量两个控件多组合测试

如:

本例中的工资为空的情况

三、总结

1、判定表法(因果图法)主要考虑控件组合

2、但是每个控件的条件不宜太多,最好为2-3个,如:

按钮按下/不按下,

单选按钮(复选框):

选择还是不选择,只有2-3个取值的下拉列表

3、“因”(输入条件)称为“条件桩”(输出结果)称为“动作桩”

4、判定表的特点:

(1)输入条件的排列顺序无所谓

(2)输出结果的排列顺序无所谓

(3)判定表的列的顺序可以调整(先测试那种组合都可以),每种组合是相对独立的

 

第七讲(正交排列法)

一、应用场合

一个界面上有很多的控件,

1、每个控件下有很多的取值,测试时,需要测试每个控件所有取值组合的情况,

2、并且组合数量较大,(组合>20中、几十种、几百种、几千种),

3、从代码的角度考虑,不同的组合基本测试的是同一段代码,

考虑使用正交排列法

判定表法和正交排列法的区别:

都适用于测试控件组合情况。

但是判定表法适合测试组合数量较少(<20种),

并且从代码角度考虑,不同组合测试的是不同的代码;正交排列法适合测试组合数量较多(>20种),并且从代码角度考虑,不同组合测试的是相同的代码;

二、正交表

是由研究数学的人研究出来解决数学问题,一共九种,测试人员只要会应用,或做一些修改后会应用即可

公式:

Ln(mK)

解释:

L:

Line(行)

n:

正交表的行数,测试组合的数量

说明:

选择正交表时不用考虑n,只考虑m,k,因为n是固定的

K:

代表正交表的列数,选择的正交表适用于有K个控件的情况

M:

代表正交表中允许出现的最大值(最小值都是从1开始),选择的正交表适用于每个控件有m个取值的情况

例如:

代表:

 

三、正交表的使用步骤

1、分析需求:

列出所有的控件和每个控件的取值

2、根据分析后的需求,选择合适的正交表(也就是选择低M、和次幂K)

(1)根据控件的个数,选择次幂K(正交表的列数)

次幂K=控件的个数=正交表的列数

例子:

设置字体

4个控件==》k=4

(2)根据每个控件的取值个数选择低m(正交表中允许出现的最大值)

低m=控件的取值个数

例子:

设置字体

每个控件的取值为3=》m=3

(3)n的值不用选取,代表需要测试的组合数量

所以最终的正交排列公式为:

34

3、将正交表中的列名(ABCD…..)和取值(1234….)列名使用控件名称替换,取值使用控件的真实取值替换(即把相应的正交表复制过来,将其值修改为控件名称即可)

(1)列名=》控件名称

(2)取值=》控件的真实取值

4、编写测试用例,每一行对应的是一种组合情况(一行为一条用例)

说明:

判定表:

是一列测试一种组合情况(一列对应一条用例)

正交排列法:

每一行对应的是一种组合情况(一行对应一条测试用例)

5、经过正交表得来的用例条数,是最少的最优的组合情况,但是只要有遗漏,就有发生缺陷的风险,所以时间允许的情况下应该尽量在补充其他的组合情况

四、正交表的局限性

1、目前可用的正交表数量较少(9种)

2、当前9种可用的正交表基本要求每个控件的取值数量要相等,在实际测试工作中很难遇到

五、正交表的设计思想

1、尽量使每个控件的所有取值参与组合的次数相等——公平原则

2、在所有的组合中挑选测试组合时,要均匀、零星的选取——均匀、零星原则

六、如果没有合适的正交表怎么办?

1、分析需求:

列出每个控件以及每个控件的取值

2、根据需求选择合适的正交表(确定低m次幂k即可)

(1)根据控件的个数确定次幂k(如果没有合适的次幂k,选择大一点即可)

案例:

powerPoint数据分析----中的数据分析A

4个控件-》k=4

(2)根据每个控件的取值个数确定低m(如果没有合适的底m?

A、少数服从多数原则:

先看那些控件取值个数相等,取相等数最多的控件取值个数为底m

案例:

powerPoint数据分析---中

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

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

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

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