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

简介:

去年底做了一个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/

目录
相关文章
|
11天前
|
测试技术 数据安全/隐私保护
深入理解与应用软件测试中的边界值分析法
【4月更文挑战第23天】在软件测试的诸多技术中,边界值分析法因其简洁性和高效性而备受青睐。本文旨在探讨边界值分析法的核心原理及其在实际测试场景中的应用。通过对边界条件进行系统的识别、分类和测试,该方法能够有效地发现软件缺陷。我们将详细讨论如何确定边界值,设计测试用例,以及如何处理复杂数据类型的边界情况。此外,文章还将展示通过案例研究来验证边界值分析法在提升测试覆盖率和发现潜在错误方面的实际效益。
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率与准确性的策略分析
【4月更文挑战第30天】在快速发展的数字时代,软件已成为支撑现代社会运行的核心。随着软件系统的日益复杂化,确保其质量与稳定性显得尤为重要。软件测试作为保障软件质量的关键步骤,它的效率和准确性直接影响着产品的上市时间和用户体验。本文将探讨如何通过采用自动化测试工具、实施持续集成(CI)与持续交付(CD)流程、利用人工智能(AI)技术以及加强测试人员的专业培训等策略来提升软件测试的效率与准确性。
|
1天前
|
XML Java 测试技术
Maven 构建 & 项目测试
该文介绍了如何使用Maven进行Java应用的构建与测试。在`C:/MVN/consumerBanking`项目中,`pom.xml`配置了JUnit依赖。Maven默认创建了源码和测试文件,通过命令`mvn clean package`进行构建,生成`consumerBanking-1.0-SNAPSHOT.jar`。测试报告在`surefire-reports`文件夹。新增`Util`类并更新`App`后,执行`mvn clean compile`编译,然后运行`java -cp . com.companyname.bank.App`显示&quot;Hello World!&quot;。
|
2天前
|
测试技术
深入理解软件测试中的边界值分析法
【5月更文挑战第2天】 在软件测试领域,边界值分析是一种高效且实用的测试设计技术。本文将探讨边界值分析法的原理、实施步骤以及其在各种测试场景中的应用。通过对边界条件进行精确的测试,可以揭示那些可能被忽视的错误,从而提高软件产品的质量。文中还将讨论如何结合其他测试方法来优化边界值分析,确保测试过程更加全面和高效。
|
2天前
|
算法 异构计算
基于直方图的图像曝光量分析FPGA实现,包含tb测试文件和MATLAB辅助验证
该内容包括了算法的运行效果展示、软件版本信息、理论概述和核心程序代码。在正常图像中,`checkb`位于`f192b`和`f250b`之间,而多度曝光图像中`checkb`超出此范围,判断为曝光过度。使用的软件为Vivado 2019.2和MATLAB 2022a。理论依据未详细给出,但提及主要方法。提供的Verilog代码段用于处理图像数据,包括读取文件、时钟控制及图像histogram计算等,其中模块`im_hist`似乎是关键部分。
|
5天前
|
前端开发 JavaScript 测试技术
深入探索自动化测试框架:Selenium与Appium的对比分析
【4月更文挑战第29天】 在快速迭代的软件发展环境中,自动化测试已成为确保软件质量和加速产品上市的关键步骤。本文将重点探讨两种广泛使用的自动化测试框架——Selenium和Appium,通过对比它们的核心特性、适用场景及执行效率,为软件开发和测试团队提供选择指南。文章不仅分析了各自的技术架构和脚本语言支持,还讨论了它们在处理Web应用和移动应用测试时的优缺点,旨在帮助读者根据项目需求做出更加明智的选择。
|
5天前
|
机器学习/深度学习 人工智能 算法
深入分析自动化测试中AI驱动的测试用例生成技术
【4月更文挑战第29天】随着人工智能技术的不断发展,其在软件测试领域的应用也越来越广泛。本文主要探讨了AI驱动的测试用例生成技术在自动化测试中的应用,以及其对提高测试效率和质量的影响。通过对现有技术的深入分析和实例演示,我们展示了AI如何通过学习和理解软件行为来自动生成有效的测试用例,从而减少人工编写测试用例的工作量,提高测试覆盖率,降低错误检测的成本。
|
6天前
|
测试技术 项目管理
深入理解软件测试中的自动化边界值分析
【4月更文挑战第28天】 在追求效率和准确性的软件测试领域,自动化测试已经成为不可或缺的一环。本文专注于探讨自动化测试中一个特定的测试方法——边界值分析,并详细阐述其在提高测试效率和有效性方面的重要性。通过将理论与实践相结合,本文不仅解释了边界值分析的概念和重要性,还展示了如何利用自动化工具执行边界值测试,以及如何根据不同项目需求定制边界值分析策略。文章的目的在于为软件测试工程师提供一种高效的自动化测试策略,帮助他们系统地识别和处理潜在的边界问题,确保软件产品的质量。
|
6天前
|
数据可视化 测试技术 持续交付
python分析测试结果
【4月更文挑战第21天】
16 3
|
8天前
|
安全 IDE 测试技术
python集成测试分析和修复问题
【4月更文挑战第20天】
21 8

热门文章

最新文章