从一个真实项目入手分析测试有效性

去年底做了一个Android应用的项目,代码总计2万多行,测试周期4个月,项目虽小,但涉及到手机终端适配、网络环境兼容等多个方面。项目阶段一结束后,我们简单总结了一下测试方法有效性的问题。发出来与大家共享。

  这个Android应用的主要功能很简单,附加功能较多,基本都属于锦上添花类。测试的实际情况如下:

  1、资源投入:持续时长4个月,人力6人+,测试机型30款+

  2、测试执行:23轮功能测试,7轮系统测试,8轮健全测试,3轮机型兼容测试,3轮性能测试,1轮MTBF测试,1轮PD/UI验证测试。

  但是这其中有很多不足之处,较明显的如下:

  1、前期功能测试和健全测试一天一轮,频度太快且测试费时,效果不好。

  2、初期的测试用例设计全面,但未精确定义编写粒度,描述过程过细,后期因需求变更导致维护成本较高。

  3、因项目流程和过程控制影响,无法明确划分测试阶段,且初期没有找到最佳敏捷测试方法,测试流程冗余僵化,导致大量重复性的工作,灵活性偏低。

  在测试进程中我们已发现测试策略的问题,并及时调整,在阶段二开始使用新策略——使用两阶段测试模型:

  1、阶段一<自由测试>:按照探索性测试(Exploratory Testing)模式,布置有针对性有重点的自由测试,以“把软件使用坏掉”为目的,尽可能多发现bug。

  2、阶段二<覆盖测试>:执行各项测试用例,以“全面测试”为目的

  具体的时间安排如下:

  1、先期产品开发阶段,即Alpha release之前,做功能测试、健全测试、缺陷验证+自由测试。

  2、项目中期,Alpha ~ Beta之间,执行全面的系统测试、兼容性测试、性能测试,并开展自动化脚本开发、环境搭建等工作。

  3、Beta release之后,在产品发布前的2~3周,就开始确定稳定版本Release Candidate,在此版本基础上做最后一轮全面测试、重点子模块的健全测试、缺陷主导的ET等,完成最终报告并交由项目组领导、QA审核发布。

  本次测试有效性总结我们引入了两个质量来衡量:软件质量指标和测试过程质量指标。

  软件质量指标包括:

  (一)需求功能点覆盖率:

  计算测试用例总数之和除以与之一一对应的功能点数之和,主要查看是否有功能点遗漏测试的情况。用例覆盖需求矩阵,一个需求对应多个功能点。

  需求覆盖率=∑测试用例数(个)/∑功能点(个)=1055/147=7.18

 

  (二)用例执行覆盖率:

  计算测试用例执行总数除以与之一一对应的测试数之和,主要查看是否有测试用例执行遗漏或有效的情况。

  用例执行覆盖率=∑执行的测试用例个数(个)/∑测试用例个数(个)*100%

  功能测试276条,系统测试779条,用例执行覆盖率达到99%。

  测试过程质量指标包括:

  (一)缺陷探测率:

  计算内部发现的缺陷数除以内部发现的缺陷数与用户发现的缺陷数之和,主要查看内部发现缺陷的能力。说明:缺陷探测率越高,即内部发现的bug数越多,发布后客户发现的bug数就越少,质量成本就越低。

  缺陷探测率=内部发现的缺陷数(个)/(内部发现的缺陷数(个)+用户发现的缺陷数(个))*100%

  缺陷数=636(有效),用户发现缺陷数=1(当前)

  缺陷探测率=636/637=99.84%

  (二)有效缺陷率:

  计算被开发人员确认的BUG数总和除于本人上报BUG的总和,可用于查看测试人员的个人测试质量,也可用于查看整个测试组的测试质量。

  无效BUG状态包括:问题重复、不是问题、不可复现状态。这项指标用于考察测试人员发现的、被确认为缺陷的缺陷数高低或者百分比,数和比率越高测试质量越高。

  注意:由于系统框架根本性的、初始化参数设置错误引发的、错误数据、错误环境等而开发人员因无法修正、可以通过改变环境而无需修改程序、重新导入数据、再次发布而解决的BUG为有效BUG

  有效缺陷率=测试人员发现的有效缺陷数(个)/测试人员发现的总缺陷数(个)*100%=636/689=92.31%

  (三)用例执行效率:

  计算测试人员执行的用例数除以执行测试的时间,主要查看测试人员执行测试的效率

  说明:此指标的统计需要有一定的前提条件:用例的执行步骤相对来说分布较均匀,执行时间在一个较长的时间段内

  用例执行效率=∑测试人员执行的用例数(个)/∑执行用例的时间(小时)

  (四)缺陷发现率:

  计算测试人员各自发现的缺陷数总和除于各自所花费的测试时间总和。

  缺陷发现率=∑提交缺陷数(个)/∑执行测试的有效时间(小时)

  以第18轮功能测试为例:

  用例执行效率=10.17

  缺陷发现率=36.67%

  (五)缺陷覆盖率:

  计算缺陷与测试用例的比率,用来衡量测试用例覆盖缺陷的能力。

  缺陷覆盖率=∑缺陷个数/∑测试用例条数

 

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

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

时间: 2024-10-02 19:48:20

从一个真实项目入手分析测试有效性的相关文章

《精通移动App测试实战:技术、工具和案例》一1.7 创建一个Android项目

1.7 创建一个Android项目 前面已经完成了Android开发环境的搭建工作,现在就让我们一起来编写一个简单的Android程序.这里我们要实现一个两个整型数字相加的程序. 1.7.1 创建一个新的Android项目 启动Eclipse,单击"File > New > Android Application Project"菜单项,如图1-42所示. 1.7.2 如何填写Android项目信息 在弹出的图1-43所示界面中,"Application Name

一个android项目代码eclipse没有提示有错误,但是真机测试时运行终止,那么是什么异常呢,如何debug呢

问题描述 一个android项目代码eclipse没有提示有错误,但是真机测试时运行终止,那么是什么异常呢,如何debug呢 一个android项目代码eclipse没有提示有错误,但是真机测试时运行终止,那么是什么异常呢,如何debug呢 解决方案 手机连接电脑,直接从eclipse运行到手机上,打开eclipse的logcat,查看手机打印log,当手机运行终止时会有异常打印.看异常就可以了,然后找出问题所在.

如何使用jQuery+PHP+MySQL来实现一个在线测试项目

  如何使用jQuery+PHP+MySQL来实现一个在线测试项目         本文将结合实例给大家介绍如何使用jQuery+PHP+MySQL来实现在线测试题,包括动态读取题目,答题完毕后台评分,并返回答题结果. 在上一篇文章中,我们介绍了使用jQuery实现的测试题效果.那么本文将结合实例给大家介绍如何使用jQuery+PHP+MySQL来实现在线测试题,包括动态读取题目,答题完毕后台评分,并返回答题结果.这是一篇WEB综合应用文章,建议阅读本文的您应该具备HTML,jQuery以及PH

ospaf-开源项目成熟度分析工具

1.概述    软件成熟度评估的最终目标是帮助软件的可持续发展,并为用户应用提供必要的技术参考.开放源代码软件成熟度评估也不例外.我们通过软件的成熟度评估,形成全面的涉及技术.应用.法律等层面的评价报告,帮助那些正在或潜在的开源软件使用者准确的了解软件的技术特性和应用特性,从而为他们选择适合自身需求的开源软件提供参考.同时报告中涉及的大量评测数据,为开源软件的开发者提供帮助,促进他们有效的改善软件在技术方面和使用方面的质量,使软件不断成熟和可持续的发展.    开放源代码软件由于开发模式和运作模

“IT列国”之“毛遂自荐”--浅谈一个优秀项目经理的基本素质

素质|项目|项目 "IT列国"之"毛遂自荐"--浅谈一个优秀项目经理的基本素质 0.前言 说起毛遂,大家可能并不清楚,可是成语"毛遂自荐",几乎没有人不知道.毛遂在关键时候自己站出来,不但自我推荐,而且解决了大问题,成就千古佳话. 在IT行业,也有很多像毛遂一样的人,他们也为了公司.为了整个IT行业,不断重演毛遂自荐的一幕. 1. 形势危急 话说三秦科技集团最近在市场上攻城略地,与冀赵高科公司几次正面竞争连连获胜.虽然换掉了精明能干的经理白起,却

三年前的一个小项目经验,分享给菜鸟兄弟们

原文地址 (公文收发小软件:前期需求调查部分) 日期:2009年1月1日  晚上 分类:项目开发经验 两年前还在宁波时,我做过宁波教育局的一个小项目,一个部门内部使用的公文收发记录软件.这个项目当时是跟他们网络中心的老师洽谈的,负责此事的老师跟我们年龄差不多,估计不到30岁,主要管理日常的硬件和网络,对开发软件了解得不多,但是也懂一些. 当时客户跟我讲,他们有一个用FoxPro做的软件,用了十年了,一直没更新,而且无法在Windows 2000等操作系统上运行,必须单独用一台装了Windows

.net下web项目中合并进一个winform项目

问题描述 .net下web项目中合并进一个winform项目 现在做了一个web的网站,后天有一些通信的程序和曾经在winform下做的一模一样,怎样将当初的winform程序搬到现在的web下呢?(这样能省不少事情)还望高人指点一二 解决方案 在现有的解决方案下面,选择添加现有项目,然后找到你需要合并的WINFORM项目,就可以了. 解决方案二: 但是这样添加进来的项目不知怎么回事,只能引用到winform项目下面的很少的以部分类和方法?访问不到所有?不是可访问性的问题! 解决方案三: 程序的

如何快速学习一个开源项目源码?

你有个任务,需要用到某个开源项目;或者老大交代你一个事情,让你去了解某个东西.怎么下手呢?如何开始呢?我的习惯是这样: 1.首先,查找和阅读该项目的博客和资料,通过google你能找到某个项目大体介绍的博客,快速阅读一下就能对项目的目的.功能.基本使用有个大概的了解. 2.阅读项目的文档,重点关注类似Getting started.Example之类的文档,从中学习如何下载.安装.甚至基本使用该项目所需要的知识. 3.如果该项目有提供现成的example工程,首先尝试按照开始文档的介绍运行exa

信息-一个crm项目运行时的报的错误,还有如何登陆上去?

问题描述 一个crm项目运行时的报的错误,还有如何登陆上去? 朋友,我下载了一个crm项目源码.然后:A我再Myeclipse下面进行测试.B用的是Tomcat 服务器.C输入地址:localhost:8088/crm后提示一个登陆页面. 问题:要输入密码和用户名.可是我不知道是多少啊?看了它的配置什么的也没有找到相关 的信息.好急啊.谢谢,指望这个项目搞懂了面试啊.谢谢好人一生平安.