如何利用测试类型提高测试覆盖率?

在前面的文章中,我们提到了测试类型定义需要综合考虑各个方面的输入,包括开发文档定义的需求(包括涉及的一些标准与规范等)、ISO/IEC 9126质量模型、测试经验,以及通过分析在研发阶段发现的缺陷、产品发布之后用户反馈的缺陷分析等。图1是结合数据通信产品的特点,而定义的测试类型:

图1 某个数据通信产品中的测试类型

  1)测试类型定义

  (1)功能性(Functionality)

  功能性指的是软件或者产品在指定条件下使用时,提供满足明确和隐含要求的功能的能力。通过评价特征集和程序的能力、交付的函数的通用性、和整体系统的安全性来评估。例如:假如NIF端口收到的数据包外层EtherType类型和端口的VLAN S-Tag EtherType不一样,那么将数据包看成是untagged的类型,并给数据包加上一个相应的VID类型。

  (2)可靠性(Reliability)

  可靠性指的是在软件或者产品指定条件下使用时,软件产品维持规定性能级别的能力,以及在异常或者错误的情况下,恢复的能力等。比如系统的容错性(Fault Tolerance)、易恢复性(Recovery)、健壮性(Robustness)、稳定性(Stability)等。例如:系统在异常断电之后,在断电恢复之后能够正常恢复系统,并且系统的业务可以正常恢复工作

  (3)易用性(Usability)

  易用性指的是软件或者产品在指定条件使用时,软件产品被理解、学习、使用和吸引用户的能力。易用性是一个非常主观的测试类型,而且在需求中很难定义。因此这个测试类型需要测试人员了解作为用户的一般使用习惯和方式。包括易操作性(Operability)、易学习性(Learnability)、易理解性(Understandability)、易安装性(Installability)等。例如:软件系统的版本程序安装,应该有具体的安装指导步骤,并且是简单易懂,容易操作;

  (4)可移植性(Migration)

  可移植性指的是软件或者产品、或者数据等从一种环境转换到另一种环境的能力。例如:R1.0版本的数据库,可以直接应用到R2.0版本的软件中。

  (5)配置(Configuration)

  配置是指产品或者软件在运行状态下,是否能够按照提供的参数范围进行配置。例如:MAC地址的老化时间的范围是15秒到3825秒之间,并且以15秒作为步长,老化时间的缺省值是300秒,即5分钟。

  (6)容量(Volume)

  容量是指产品或者软件在运行状态下,是否能够达到需求要求的最大容量值。例如:假如VLAN是802.1ad模式,MAC地址的学习模式是IVL。在IVL模式中,最多可以创建的VLAN数是256。

  (7)性能(Performance)

  性能指的是软件或者产品在典型的配置运行条件下,它的处理速度、响应时间、资源消耗、吞吐量、效率、丢报率等。例如:RSTP的收敛时间不能超过15秒。

  (8)一致性(Compliance)

  一致性在这里主要是指协议的一致性,即系统实现的协议和标准、规范或者行业标准之间的符合程度。例如:VLAN的帧结构应该和IEEE 802.1Q 1998标准保持一致。

  2)应用测试类型

  测试类型的定义需要综合考虑各个方面的输入,并且它并不是一次性的测试活动。随着测试对象的变化、测试人员经验技能等的增加,需要不断更新测试类型,以反映知识、技能和经验的继承。

  下面以大家熟知的手机呼叫功能为例,根据前面定义的测试类型,简单细化得到了一些测试条件。从该案例中,我们可以看到通过测试类型是如何帮助测试人员拓阔思路,从而提高测试覆盖率的(实际的测试用例要复杂和全面一些,这里只是作为一个例子进行讲解)。

表1 测试类型在手机呼叫功能中的应用

测试类型

测试条件:手机的基本呼叫功能

功能性

-          手机作为主叫,呼叫其他手机号码

-          手机作为主叫,呼叫特殊号码

-          手机作为被叫,接听电话

-          手机作为被叫,拒绝接听电话

-          手机作为主叫,主动挂机/被动挂机

-          手机作为被叫,主动挂机/被动挂机

易用性

-          手机号码输入是否简单方便?

-          手机接听是否方便?

-          手机拒绝接听是否方便?

-          通话状态显示是否简单易懂?

-          其他操作是否方便?

配置

-          呼叫转移配置

-          呼叫限制配置

-          呼叫等待配置

-          IP电话配置

-          自动回拨配置

性能

-          最长待机时间测试

-          最长通话时间测试

-          每个小时通话12次,每次5分钟,检查待机时间

可靠性

-          呼叫异常号码

-          作为主叫,通话时间保持24小时

-          作为被叫,通话时间保持24小时

-          在充电状态下,作为主机呼叫72小时

-          在充电状态下,作为被叫保持72小时

-          通话过程中关机重启

-          通话过程中拔掉电板

-          通话过程中电池没有电了

可移植性

-          手机软件版本从1.0升级到2.0

-          在2.0版本中恢复1.0版本的内部数据库

容量

-          同时可以接听的电话数目

-          同时可以呼叫的电话数目

一致性

-          与电话呼叫相关的标准与规范一致性检查

相关链接:

软件测试类型/缺陷分类的获取

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2025-01-03 07:35:00

如何利用测试类型提高测试覆盖率?的相关文章

测试用例设计——如何提高测试覆盖率

说到测试用例的设计,我想每个有过测试经历的测试工程师都会认为很简单,不就是:按需求或概要设计,得到软件功能划分图,然后据此按每个功能,采用等价类划分.临界值.因果图等方法来设计用例就行了. 但事实上撇开测试数据的设计不谈,仅就测试项来说,我们发现,对同一个项目,有经验的测试人员,在写用例或测试时总会有更多的测试考虑点,从而发现更多的问题:而有些测试人员测试用例的撰写却只有那么三板斧,表面看好象已经把页面所有信息的测试都考虑到了,实际上却还是遗漏了大量测试覆盖点,导致其测试出来的程序总是比较脆弱.

用户调研和可用性测试:利用客户资源提高约访

文章描述:用户访谈成功约访三大秘籍. 做用户调研和可用性测试,招募到合适的用户,是有效用户研究的基础.因商业产品的特殊性,我们约访客户来源渠道也有一定的限制,且这些有限的客户也不是每一次预约都能成功.如何有效利用客户资源提高约访的成功率呢?总结了些经验供大家参考,希望在工作中有所帮助. 客户约访流程: 秘笈一 约访前的准备 1. 心态准备--在电话约访前调整好心态,不要害怕被拒绝而不敢打电话,可以想象是打给自己的朋友. 2. 话术准备--电话约访前进行充分的话术准备和练习(沟通时话术.被拒绝话术

利用Selenium自动化WEB测试

简介 Selenium 是一个健壮的工具集合,跨很多平台支持针对基于 web 的应用程序的测试自动化的敏捷开发.它是一个开源的.轻量级的自动化工具,很容易集成到各种项目中,支持多种编程语言,比如 .NET.Perl.Python.Ruby 和 Java? 编程语言. 利用 Selenium 测试 Ajax 应用程序 Asynchronous JavaScript and XML (Ajax) 是一种用于创建交互式 web 应用程序的 web 开发技术.Ajax 应用程序的一个特征是,不会导致一次

利用“GOOGLE抓取”测试Robots书写正确性

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 利用GOOGLE管理员工具测试Robots.TXT 与 页面内容抓取,GOOGLE管理员可以说是网站与GOOGLE间接沟通的工具,虽然G.cn现在已经移民.导致使用GOOGLE时会经常出现搜索错误或超时问题,但是GOOGLE目前所发布出来的工具无不是最权威的工具(Google Analytics .Google Trends.Google a

《提高转化率!网页A/B测试与多变量测试实战指南》一第1章 关于优化测试1.1 优化测试

第1章 关于优化测试 提高转化率!网页A/B测试与多变量测试实战指南 1.1 优化测试 如果我们的网站是商业运营,改善它,使它为业务与访问者带来更多的价值是我们一直以来的追求.我们可能会间或使用一些优化方法,尝试各种工具,通过指标反应猜测它是否真正产生作用.但这之中是存在问题的,非受控环境下产生的数据污染可能存在非常大的影响,也许我们看到的指标没办法解释任何真相.不过,你也许有办法确切了解哪些变更方案真正粗声了价值提升,甚至还能知道提升了多少.你会选择哪种?如果你更倾向于采用可控的度量方法而不是

利用JMeter进行Web测试(简介适合初学者)

利用JMeter进行Web测试 JMeter介绍 脚本录制 运行JMeter进行测试 JMeter主要组件介绍 参数化设置 动态数据关联 使用命令行运行JMeter脚本 利用XSLT分析JMeter结果文件 JMeter介绍 JMeter, 一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具.JMeter可以用于测试静态或者动态资源的性能 (文件.Servlets.Perl脚本.Java对象.数据库和查询.ftp服务器或者其他资源).原先Jmemer

非功能测试类型汇总

功能测试涉及了软件在功能上正反两面的测试,而非功能测试就是所有其他方面的测试.非功能测试包括性能.负载.安全.可靠性和其他很多方面.非功能测试有时也被称作行为测试或质量测试.非功能测试的众多属性的一个普遍特征是一般不能直接测量.这些属性是被间接地测量,例如用失败率来衡量可靠性或圈复杂度,用设计审议指标来评估可测性. 国际标准化组织(ISO)在ISO 9216和ISO 25000:2005中定义了几个非功能属性.这些属性包括: 可靠性 软件使用者期望软件能够无误运行.可靠性是度量软件如何在主流情形

利用spring进行简化测试(JUNIT)

下午复习了一点关于spring简化测试方面的内容,比较感兴趣,就记录下来啦,毕竟记下东西以后可以来看看的,记忆力不总是很好的,但写的东西可以当作复习资料来看看的. 利用spring的mock类进行单元测试:    spring框架提供了大量测试的mock类,包括与jndi,porlet,web应用相关的mock类.尤其是web应用相关的mock类,可以大大提高web组件测试的方便性. 打开spring的下载包的mock文件夹(路径...mock/org/springframework/mock/

对项目开发中几种测试类型的理解和实操

项目 原文: 测试一般是放在系统完成后进行测试,但今天,却常常听到资深开发人员劝导新人们:"测试是开发的第一步"这句话如何理解呢?如果从日本人发明的巴克质量管理的方式去理解,大概是指每一个环节交给下一级时都应该进行测试.有些测试对后面的操作没有太大的影响,如图片不漂亮,菜单不合理,布局很难看之类:而另一些,却直接让下一级无法开始工作,象用例不清晰:用例自相矛盾:组件内部错误:框架不合理等等.固然,一级级把关,可以把质量提高到至少一个档次以上:但就每一个环节而言,仍然是在开发的最后阶段.