黑盒法:
该方法是把被测试对象看成一个黑盒子,测试人员完全不考虑程序内部结构和处理过程.
只在软件的接口处进行测试,根据需求规格说明书.检查程序是否满足功能要求.因此黑盒测试有称为功能测试或数据驱动测试。
白盒法:
该方法是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,一检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,
检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
缺陷报告
一、手工测试人员的主要工作职责
1、编写或阅读测试计划(3篇)
2、编写和执行测试用例(>1000条)
3、提交缺陷报告(>50条)
4、编写测试总结报告(3篇)
5、使用缺陷管理工具管理bug
二、缺陷报告的组成
1、缺陷编号(defect id)
表明提交bug的顺序
说明:
(1)如果使用缺陷管理工具,编号会自动生成
(2)实际中是整个项目组统一编号
2、缺陷标题(summary)
简明扼要的描述一下该bug
3、缺陷的发现者/提交者(detected by)
一般就是自己
4、发现缺陷的日期(detected on date)
一般就是当天
5、缺陷所属的模块(subject)
在测试哪个功能模块时发现的bug
开发经理根据bug所在的模块,找到bug的指定负责人
6、发现缺陷的版本(detected in release)
在测试程序的哪个版本的时候发现的bug
7、指派给谁处理(assigned to)
测试人员一般指派给开发经理,开发经理根据bug所在的模块,再次指派给具体的开发人员
8、缺陷的状态(status)
表明缺陷此时所处的状况或处理情况
状态的取值取决于公司所使用的缺陷管理工具
以QC为例:
(1)测试人员发现bug,提交缺陷报告给开发经理,把缺陷的状态写成:new(新提交)
(2)开发经理验证提交的bug,如果是真正的bug,把缺陷的状态改为:open(打开的bug、开发组承认的bug),指派相应的开发人员进行修改;如果不是bug,把缺陷的状态改成:rejected(拒绝的bug)
(3)开发人员看到指派给自己解决的bug,进行bug修改,修改完后,把缺陷的状态改成:fixed(修改完的bug、待返测的bug)
(4)测试人员进行返测,如果返测通过,把缺陷的状态改为:closed(关闭的bug、归档的bug、返测通过的bug);如果返测失败,把缺陷状态改为:reopen(重新打开的bug、返测失败的bug)
以上过程称为“缺陷(报告)处理流程”、“缺陷跟踪管理过程”、“缺陷的声明周期”
New->open->fixed->closed
9、严重程度(severity)
表明该bug有多糟糕或者对软件造成的影响有多大
在QC中:
(1)urgent:致命的bug,造成系统崩溃、死机等问题
(2)very high:非常严重的bug
(3)high:严重的bug
(4)medium:中等程度的bug
(5)low:小的bug
说明:
A、每个单词在不同的公司表示的含义可能略有不同
B、最好在专门文档中把每个级别中的具体情况进行定义,以便开发和测试人员达成一致
Bug Level(级别) Definition(定义).xls
Performance:性能
Function:功能
10、优先级(priority)
测试人员希望程序员在哪个版本中或什么时间解决该bug
在QC中:
(1)urgent:立即解决,否则影响开发/测试进度
(2)very high:本版本解决
(3)high:下版本解决
(4)medium:发布之前解决
(5)low:允许发布中存在的bug
影响优先级的主要因素:
(1)bug的严重程度:
一般情况下,严重程度越高,优先级越高
(2)bug的影响范围:
一般影响范围越广,优先级越高
(3)开发组的任务压力:进度压力越小,优先级越高
(4)解决bug的成本:
成本越低,优先级越高
注意:严重程度和优先级不要混淆
11、缺陷描述(description)
把发现bug的步骤、过程、使用的数据记录下来,使程序员通过描述能够再现该bug
//==========================================================================
使用等价类划分法和边界值法设计测试用例
一、基本概念
1、测试用例(测试案例、test case/instance)
是在测试执行之前(或同时),由测试人员编写的,指导测试过程的重要文档,主要包括:用例编号、测试目的、测试步骤、预期结果等
2、测试用例的方法
(1)等价类划分法
(2)边界值法
(3)因果图法
(4)判定表法
(5)正交排列法
(6)测试大纲法
(7)场景法
3、编写测试用例需要参考什么
(1)相关文档(需求、开发、用户手册)
(2)对照已经开发出来的程序
(3)与相关人员沟通
二、等价类划分法
1、应用场合
只要有数据输入的地方,就可以使用,从无穷多的数据中挑选少数代表进行测试
2、测试思想
穷举测试(把所有可能的数据全部测试一遍)是最全面的测试,但由于时间成本太高,实际中不可能采用
使用各种测试用例方法,是想用最少的成本(时间、数据)达到最大的测试效果
不做穷举测试,是有遗漏bug的风险,所以如果时间允许,可以做适当的补充
3、等价类划分的思想
按照需求,把无穷多的数据进行分类,区分出哪些是有效的(合法的)哪些是无效的(非法的),(可能还会根据需求进一步细分),最后从每一个数据范围中挑选一个代表进行测试
4、核心概念
(1)有效等价类
对程序的规格说明合理、有意义的数据集合(合法数据)
程序接收到有效等价类数据应该正确计算执行
(2)无效等价类
对程序的规格说明不合理、无意义的数据集合(非法数据)
程序接收到无效等价类数据,应该给出错误提示或者根本不允许输入
说明:
一个优秀的软件基本特征:
A、功能要实现——使用有效等价类数据
B、异常处理能力(健壮性)——使用无效等价类数据
5、使用步骤:
首先明确测试对象——第一个数文本框
需要保证第二个数文本框填写正确
(1)分析需求——划分等价类
①有效等价类
-99—99的整数
②无效等价类
A、<-99的整数
B、>99的整数
C、为空
D、非整数
(2)细化等价类
依据的一般不是字面需求,而是根据数据的类型以及在内存、数据库中的存储方式
①整数在内存中以补码的方式存储,正数和负数计算补码的方式不同——把有效等价类中的正数、负数单独测试
把-99—99的整数细化为:
A、-99— -1的整数
B、0—99的整数
②非整数可以细化为:
小数
字母
汉字
符号
(3)建立等价类表(熟练以后直接做该步)
有效等价类
编号 数据范围
1 -99— -1的整数
2 0—99的整数
无效等价类
编号 数据范围
//==============================================================
总结:
1、使用有效等价类或有效边界值的测试也称作“正向测试”、“通过测试”(正用例),一般数量不较少,从需求中可以直接找出
2、使用无效等价类或无效边界值的测试称作“反向测试”,“失败测试”(反用例),一般数量较多,无效等价类数量一般为有效等价类数量的2-6倍
3、无效等价类主要考虑的因素:
(1)需求要求“不能为空/必填项”——要测试“为空”情况
(2)需求要求“不能重复”——测试“重复”情况
(3)数据有大小范围——测试超出范围,比最小值还小,比最大值还大
如:年龄18-60
无效:<18 ,>60
(4)字符有个数要求——字符个数超出范围,比最小个数还少,比最大个数还多
如:姓名3-20个字符
无效:<3个,>20个
(5)数据有格式、样式、类型要求——测试格式、样式、类型非法
如:
要求“整数”,无效就为“非整数”,包括:小数、字母、汉字、符号
要求“数字”,无效就是“非数字”,包括:字母、汉字、符号
(6)小数有小数保留位数要求——保留位数非法
如:工资要求最多保留小数点后2位,无效要测试保留2位以上情况