软件测试是保证软件质量的最后一道关卡,测试是一个职业也是一个质量检验员,怎么检验软件质量呢?那就是测试用例,如果是测试是士兵,那用例就是枪,没有枪的士兵相当于没有了防御和进攻的方式,只是一个肉体。测试用例的编写有着严格的规范。
站在用户的角度思考问题,与客户深入沟通,找到通城网站设计与通城网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广、国际域名空间、雅安服务器托管、企业邮箱。业务覆盖通城地区。
好的测试用例的标准是什么呢[灵光一闪]?
我来回答就是:清晰、全面
分析一下来说:清晰是让 别的同事 一看就知道这个是什么测试点,不能让开发自测的时候看不懂你编写的测试用例,只有自己能看懂的测试用例是比较low的。
全面就是把测试的项目或者迭代都的功能尽可能全部想到,为什么尽可能呢,因为测试不能保证上线没有任何BUG,那不可能的,因为测试也是人。
那问题来了,怎么样才能编写出一个好的测试用例呢[灵光一闪]?
原则:
1.正确性 :输入实际正确的数据以验证是否满足产品的需求。要保证正确性下所有的功能都可用。
2.容错性 :跟正确性相反,就是输入错误的数据是否能满足产品规格的说明,输入非法数据(非法类型、不符合要求的数据、溢出数据等),就是不要把自己当作测试,任意输入。
3.安全性 :不满足前提的情况下能否正常操作,一般都是接口间的鉴权测试。
4.边界值 :确定边界后,在边界左右进行测试。
5.弱网性 :因为现在使用的软件五花八门,但是都需要有网络,弱网情况下界面是否正常展示,数据是否正常。
6.比较性 :要考虑这个版本对之前的版本是否有影响。
7.压力性 :就是测试多条数据是否满足产品的需求。
8.错误推测性 :根据个人经验感觉这个功能可能存在那些问题,去针对问题编写用例。
9.友好性 :功能是否友好,就是是否简单容易上手。
10.可移植性 :就是软件的兼容,要考虑同个软件在不同设备上是否正常运行
根据以上十大原则去设计测试用例,基本上能把测试用例设计的很完善。
欢迎大家讨论交流学习,一个爱测试的人儿。以后会陆续分享测试的知识(编写不易[捂脸])欢迎大家点赞关注。谢谢[飞吻]。
随着软件技术的不断发展,越来越多的人开始关注软件测试,软件测试的方法有很多种,最重要的是选择适合的软件测试方法。
选择是非常关键的,只有选择到合适的才能在工作中起到事半功倍的作用。
那么软件测试的方法有哪些呢?下面电脑培训为大家具体介绍。
一、白盒测试白盒测试也称为结构测试,是根据程序内部的逻辑结构和代码结构,设计测试数据,完成测试的测试方法。
白盒子测试的直接优点是,知道所设计的测试用例在代码上的哪个地方被忽视。
IT培训认为其优点是测试人员能够增加代码的覆盖率,提高代码实行的整体质量,帮助发现代码中的隐藏危险。
二、黑盒测试黑盒测试也称数据传输测试,作为不能够看到测试对象的黑匣子,完全不需要考虑程序内部结构和处理过程的情况,北大青鸟发现测试人员可以根据程序功能的要求规格,确定测试用例,并推断测试结果的测试方法。
三、灰盒测试灰盒测试主要是一种综合的测试方法,它居于程序运行的外部表达。
同时,根据内部逻辑结构设计用例,执行程序、采集路径执行信息和外部用户界面结果。
四、集成测试集成测试是一种组装测试,是在单元测试基础上的一种有序测试。
其主要的目的是验证软件单元间的接口关系,通过测试发现各软件单元接口间的问题,重庆北大青鸟非常期待最终测试的单元构成符合设计要求的软件。
测试用例设计和执行是测试工作的核心,也是工作量最大的任务之一。
测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。
测试用例编写准备
1
从配置管理员处申请软件配置:《需求规格说明书》和《设计说明书》;
2
根据需求规格说明书和设计说明书,详细理解用户的真正需求,并且对软件所实现的功能已经准确理解,然后着手制订测试用例。
测试用例制定的原则
1测试用例要包括欲测试的功能、应输入的数据和预期的输出结果。
2测试数据应该选用少量、高效的测试数据进行尽可能完备的测试。
用例覆盖
1正确性测试:输入用户实际数据以验证系统是满足需求规格说明书的要求;测试用 例中的测试点应首先保证要至少覆盖需求规格说明书中的各项功能,并且正常。
2容错性(健壮性)测试:程序能够接收正确数据输入并且产生正确(预期)的输出, 输入非法数据(非法类型、不符合要求的数据、溢出数据等),程序应能给出提示 并进行相应处理。把自己想象成一名对产品操作一点也不懂的客户,在进行任意操作。
3完整(安全)性测试:对未经授权的人使用软件系统或数据的企图,系统能够控制的程度,程序的数据处理能够保持外部信息(数据库或文件)的完整。
4接口间测试:测试各个模块相互间的协调和通信情况,数据输入输出的一致性和正确性。
5压力测试:输入10条记录运行各个功能,输入30条记录运行,输入50条记录进行测试。
6性能:完成预定的功能,系统的运行时间(主要是针对数据库而言)。
7可理解(操作)性:理解和使用该系统的难易程度(界面友好性)。
8可移植性:在不同操作系统及硬件配置情况下的运行性。
测试方法
1边界值分析法:确定边界情况(刚好等于、稍小于和稍大于和刚刚大于等价类边界值),针对我们的系统在测试过程中主要输入一些合法数据/非法数据,主要在边界值附近选取。
2等价划分:将所有可能的输入数据(有效的和无效的)划分成若干个等价类。
3错误推测:主要是根据测试经验和直觉,参照以往的软件系统出现错误之处。
测试用例的填写
1一个软件系统或项目共用一套完整的测试用例,整个系统测试过程测试完毕,将实际测试结果填写到测试用例中,操作步骤应尽可能的详细,测试结论是指最终的测试结果(结论为:通过或不通过)。
上篇主要记录了等价类划分、边界值分析、错误推测法,下面接着来学习黑盒测试其他常见的:因果图判定表、场景法等。
因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。
因果图法一般和判定表结合使用,通过映射同时发生相互影响的多个输入来确定判定条件。因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。采用因果图法能帮助我们按照一定的步骤选择一组高效的测试用例。
因(原因):输入条件
果(结果):输出结果
因果图:就是通过画图的方式来表示输入条件(因)和输出结果(果)之间的关系。
1.关系
①恒等 - :若ci是1,则ei也是1;否则ei为0。
②非 ~ :若ci是1,则ei是0;否则ei是1。
③或 V :若c1或c2或c3是1,则ei是1;否则ei为0。“或”可有任意个输入。
④与 ^ :若c1和c2都是1,则ei为1;否则ei为0。“与”也可有任意个输入。
2.约束
输入状态相互之间还可能存在某些依赖关系,称为约束。例如,某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。
A.输入条件的约束有以下4类:
① E 互斥(异):a和b不能同时成立。
② I 包含(或):a、b和c中至少有一个成立。
③ O 唯一;a,b条件中有且仅有一个成立。
④R 约束(要求):表示当a出现时b也必须出现
B.输出条件约束类型
输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。
原因:
1:第一列字符是A;
2:第一列字符是B;
3:第二列字符是一数字。
结果:
21:修改文件;
22:给出信息L;
23:给出信息M。
其对应的因果图如下:11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束,如图所示:
判定表(Decision table)是另一种表达逻辑判断的工具。与结构化语言和判断树相比,判断表的优点是能把所有条件组合充分地表达出来。其缺点是判定表的建立过程较烦杂,且表达方式不如前两种简便。判定表在用于知识表达中,有许多其他方式所达不到的作用。
表中8种情况的左面两列情况中,原因①和原因②同时为1,这是不可能出现的,故应排除这两种情况。把判定表的每一列拿出来作为依据,设计测试用例。我们把表的最下一栏给出了6种情况的测试用例,这是我们所需要的数据。
优点
缺点
判定表优点:
能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。
通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。用例场景来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。
我们通常以正常的用例场景分析开始,然后再着手其他的场景分析。场景法一般包含基本流和备用流,从一个流程开始,通过描述判定表的优点:
软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。 这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。
场景法一般包括基本流和备选流。
业务层面(业务理解更重要):
测试人员要熟悉所测软件的业务逻辑,成为该行业 "业务专家"。
技术层面:
基本流: 经过用例的每条路径都用基本流和备选流来表示,绿色主线表示基本流,是经过用例的最简单的路径,即无任何差错,程序从开始直接执行到结束的流程。通常,一个业务仅存在一个基本流,且基本流仅有一个起点和一个终点。
备选流: 表示通过业务流程时输入错误(或者操作错误)导致流程存在反复,但是经过纠正后仍能达到目标的流程。备选流为除了基本流之外的各支流,包含多种不同情况。
场景法的核心就是“场景”二字,你所需要的就是要找出场景,场景找出来了,测试用例也就水到渠成。当你找到基本流和备选流之后,需要通过构造场景矩阵将场景表示出来。矩阵一旦生成,用例也就一目了然。说起来比较简单,但在使用的过程中会遇到不少的问题。在很多流程图中,有不少备选流其实是隐藏的。
希望读者能深入理解两个流的概念,为什么会有这两个流,两个流的特点是什么,为什么要构造矩阵,矩阵的纵向和横向代表什么,V, I又代表什么?。
以上表中,是把每个场景成立的条件进行了分析,基本上已经明确了测试用例的数量,现在只要把真实数据填充上,那么整个测试用例就完成了。
以上写到的测试用例只是购物的一部分测试用例。其他测试用例,感兴趣的可以再进行补充和扩展,想要达到比较好的覆盖。那么只能不断迭代进行优化用例设计。
以上主要记录学习了平时比较常用的一些方法,当然还有一些其他的测试方法。如:Pairwise 、 正交实验法(allpairspy) 、决策表等等,如果感兴趣的可以自行去了解学习。对以上有疑惑的可以 关注+留言+点赞 进行互动讨论。