聊一聊质量测试框架

news2024/11/15 19:46:38

目录

质量测试框架的概述:

质量测试框架相关术语:

质量测试框架的构成及特性:

质量测试参考模型:

质量的生存周期的QM:

测量结果的应用:

常见的质量测试框架有哪些?

质量测试框架在使用的过程中通常遇到的问题有哪些?

测试技术不熟练或不足:

缺乏有效的缺陷管理和跟踪机制:

测试用例设计不合理:

测试计划不完善:


质量测试框架的概述:

质量测试框架是一个为测试人员提供指导、工具和技术的系统,用于确保软件满足预定的质量标准和用户需求。它涵盖了测试计划、测试用例设计、测试执行、结果分析和测试报告等多个方面。

图片

质量测试框架相关术语:

外部性质的质量测度 quality measure on external property

外部性质的 QM QM on external property

在特定条件下使用时,系统或软件产品使其行为能满足系统(包括软件)的明确和隐含需要程度的测度。

注:在测试和运行期间,通过执行系统或软件产品来测量、验证和/或确认行为的属性。

示例:在测试期间发现的失效数是一种与存在于计算机系统中的故障数有关的软件质量外部测度。这两种测度不一定是相同的,因为测试不能发现所有的故障;并且在不同的情况下,某一故障会导致明显不同的失效。

内部性质的质量测度 quality measure on internal property

内部性质的 QM QM on internal property

在指定条件下使用时,软件产品的静态属性满足明确和隐含需要程度的测度。

注1:静态属性包括那些与软件架构、结构及其组件,数据结构及其格式、屏幕上图形显示的结构和外观以及用户或服务接收者的菜单有关的属性。

注2:静态属性可通过评审、审查、模拟和/或自动化工具来验证。

注3:内部性质的质量测度通常与可在需求中规定或从需求中派生的静态性质和属性的质量需求相关。

示例:在走查中发现的复杂度和故障的数量、严重程度以及失效频率,是从软件产品自身取得的软件内部质量测度。

系统与软件产品质量  system and software produet quality

系统和/或软件在规定条件下使用时满足明确和隐含需要的能力。

注:产品质量模型是指GB/T25000.10中定义的系统与软件产品质量模型。

质量测试框架的构成及特性:

图片

质量测试参考模型:

质量测量参考模型描述了质量模型和由QME构建QM 之间的关系,见下图。该关系构成了系统与软件产品质量、使用质量和数据质量测量的参考模型。

图片

系统、软件产品或数据的质量是满足各利益相关方明确和隐含需要的程度并提供量值。用户对质量的需要包括在特定使用周境中的系统质量需求。本标准通过质量模型表示这些明确和隐含的需要,质量模型将质量分为一组特性,特性在某种情况下被进一步分解为子特性。质量性质通过应用测量方法进行测量。测量方法是一种逻辑操作序列,用于量化规定标度的属性。一个应用测量方法的结果被称作一个 QME。

QM 是通过将测量函数应用于一组 QME 构建的。测量函数是用于组合 QME 的算法。一个应用测量函数的结果被称作一个 QM。因此,QM 可量化质量特性和子特性。一个质量特性和子特性可用多个 QM 进行测量。

质量的生存周期的QM:

下图描述质量生存周期为一组协同关系的QM,可用于在整个生存周期详细规定质量需求,并通过测量验证和确认所需质量的实现程度来评价质量。整个生存周期包含系统与软件产品以及数据的开发、运行和维护。从用户和/或利益相关方的角度出发,质量生存周期由三层组成:使用层,运行层和实现层。质量需求和目标实体在不同的层中相互确认和/或验证。用户和/或利益相关方对于包括系统、软件产品和数据在内的任一目标实体的质量需要,可被引出并转换为使用质量的需求,然后转换为使用外部性质的质量需求(例如行为)和使用内部性质的质量需求(例如静态属性)。同时,可根据需求设计目标实体。通过执行和迭代质量生存周期提升和改善质量。

QM 包括使用质量的QM、外部性质的QM 和内部性质的QM。在使用周境中对利益相关方的影响可通过使用质量的 QM 进行测量。外部性质的 QM 是行为属性的测度,内部性质的 QM 被用于测量软件和/或系统的技术或结构属性。目标实体的质量性质包括外部质量性质和内部质量性质。当软件和/或系统处于运行状态时,内部质量性质会影响外部质量性质,而软件和/或系统在某一使用周境中的结果或后果受外部质量性质影响。

图片

测量结果的应用:

测量结果可根据质量需求进行解释,包括系统与软件产品质量需求、使用质量需求和数据质量需求。质量需求是通过质量模型和 QM 来定义的。在 GB/T 25000.30 中分别提供了关于质量模型之间的关系和质量需求之间的关系的详细信息。

测量结果为质量评价提供了依据。需要严格的测量实现在系统之间、软件产品之间和数据之间进行可靠的比较。此外,还需要将测量结果与标准值进行比较。测量程序宜以足够的精度测量他们声称要测量的质量特性(或子特性)。质量评价要求宜分配给与其相关的适当组件,以便能够定义用于评价质量的每个适当的 QM。宜为选定的单个测度确定判定准则。宜根据评价计划将选定的 QM 应用于评价对象,从而得出测量标度值。GB/T 25000.40提供了软件质量规格说明和评价的通用要求。

常见的质量测试框架有哪些?

XCTest:为Swift开发者量身定制的单元测试框架,支持iOS、macOS、watchOS和tvOS平台。

Selenium:广泛使用的开源自动化测试框架,支持多种浏览器和操作系统。

JUnit:Java编程语言中最常用的单元测试框架之一。

TestNG:Java编程语言的测试框架,支持参数化测试、数据驱动测试等高级功能。

TDD(测试驱动开发, Test-Driven Development):强调在编写具体功能代码之前先编写测试用例,通过红绿重构的循环确保代码质量。

DDT(数据驱动测试, Data-Driven Testing):以数据来驱动测试逻辑,将测试数据与测试逻辑分离,便于处理大量输入输出的情况。

Pytest:在Python领域特别流行,是一个灵活且强大的单元测试框架,同时也支持简单的集成测试。它支持参数化测试、插件系统等高级功能。

Appium:适用于移动应用的自动化测试框架,支持iOS和Android平台,能够使用WebDriver协议进行跨平台测试。

Cucumber:BDD框架,支持多种编程语言,通过Gherkin语言编写人类可读的测试场景,便于非技术团队成员参与。

Mocha / Jest:在JavaScript领域广泛使用的测试框架,Mocha是一个灵活的基础框架,而Jest则由Facebook开发,集成了断言库、测试覆盖率报告等更多特性。

质量测试框架在使用的过程中通常遇到的问题有哪些?

质量测试框架在实际应用中可能会遇到一系列挑战和问题,这些问题跨越了技术、策略和管理等多个层面,以下是一些常见的问题及其简述:

依赖管理问题:单元测试可能依赖于外部服务或组件,这些依赖项可能不稳定、不可用或难以在测试环境中重现,导致测试失败或难以实施。解决方法包括使用模拟(mocking)和存根(stubbing)技术,或者设置隔离的测试环境。

测试覆盖率不足:确保测试覆盖到代码的所有关键部分是一大挑战。目标是达到一个合理的覆盖率(如80%),但这需要精心设计测试用例,并可能需要工具来测量代码覆盖率。

私有方法测试:尽管最佳实践通常建议仅测试公有接口,但在某些情况下可能需要验证私有方法的行为。这可以通过反射等技术间接实现,但过度测试私有方法可能导致维护负担增加。

测试颗粒度过大或过小:测试应足够细粒度以精确定位问题,但又不能过于琐碎,导致测试维护成本过高。平衡测试的大小和复杂度是关键。

测试执行速度慢:大量或复杂的测试套件可能会消耗很长时间运行,影响开发效率。并行测试、优化测试代码、减少不必要的测试数据可以提升测试速度。

测试稳定性问题:不稳定的测试(如因环境变化或随机失败)会降低团队对测试结果的信任度。使用mocks、固定测试数据和适当的测试隔离可以提高稳定性。

测试环境配置:准备和维护一个与生产环境相似的测试环境可能很困难,尤其是资源受限或配置复杂的情况下。提前规划和持续监控测试环境是必要的。

测试数据管理:生成或获取代表性的测试数据,同时保护生产数据的隐私和安全,是一项挑战。

自动化测试框架的配置和维护:自动化测试框架如Selenium、TestNG等的配置可能复杂,且容易出错,需要专业知识来设置和维护。

跨平台/跨浏览器兼容性问题:特别是在Web应用测试中,确保应用在不同浏览器和操作系统上的表现一致是个难题。

测试结果报告与分析:清晰、准确地报告测试结果,并从中分析出有价值的反馈信息,对于改进产品质量至关重要,但不恰当的报告机制可能导致信息丢失或误解。

测试技术不熟练或不足:

问题描述:测试团队的测试技术和知识水平不够,可能导致测试效果不佳。

解决方案:加强测试人员的培训和学习,提升测试技术和知识水平。

缺乏有效的缺陷管理和跟踪机制:

问题描述:在测试过程中,会发现各种缺陷,如果缺乏有效的缺陷管理和跟踪机制,将导致缺陷无法及时修复和验证。

解决方案:建立一个完善的缺陷管理和跟踪机制。可以使用缺陷管理工具来记录和跟踪缺陷,确保缺陷的提交、分配、修复和验证过程的可追踪性。同时,需要对缺陷进行优先级和严重性的评估,确保缺陷修复的及时性和有效性。

测试用例设计不合理:

问题描述:测试用例是测试活动的核心,如果测试用例设计不合理,将无法覆盖系统的各个功能和场景,从而无法有效发现潜在的问题。

解决方案:通过分析需求和系统架构,设计出全面、有效的测试用例。可以采用不同的测试方法,如黑盒测试、白盒测试、灰盒测试等,结合各种测试技术来设计测试用例。

测试计划不完善:

问题描述:测试计划是测试活动的指导文档,如果测试计划不完善,将导致测试活动无法有序进行。

解决方案:编写一个全面、详细的测试计划,包括测试目标、测试范围、测试资源、测试进度、测试方法和技术等。同时,需要考虑到项目的特定需求和约束条件,并与项目团队共同制定测试计划。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2091091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot启动很慢,加载xml时卡住 或者 {dataSource-1} inited卡住 或者 primary数据库配置错误,很久启动不起来

springboot启动很慢,加载xml时卡住 或者 {dataSource-1} inited卡住 或者 primary数据库配置错误,很久启动不起来 1.第一步先rebuild一下2.如果还是很慢,可能是你debug启动的同时加了很多断点,需要把断点去掉。3.如果还是不行&…

设计模式-结构型模式-享元模式

1.享元模式定义 摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,从而让我们能在有限的内存容量中载入更多对象; 1.1 享元模式优缺点 优点 极大减少内存中相似或相同对象数量,节约系统资源&#xff0c…

Ascend C算子开发(入门)—— 算子开发初体验

文章目录 Ascend C算子开发(入门)—— 算子开发初体验Host与Device核函数什么是核函数如何编写核函数? 核函数实现例子——Hello World完整核函数泛讲 Ascend C算子开发(入门)—— 算子开发初体验 Host与Device Host…

从零开始学cv-9:图像滤波

文章目录 前言一、简介:二、图像滤波实现:2.1 均值滤波:2.2 高斯滤波:2.3 中值滤波:2.4 锐化滤波: 前言 在信息化时代,图像已成为人们获取信息、沟通交流的重要载体。随着科技的飞速发展&#…

《高等代数》范德蒙德行列式的证明

说明:此文章用于本人复习巩固,如果也能帮助到大家那就更加有意义了。 注:1)利用数学归纳法证明范德蒙德行列式。 2)将范德蒙德行列式最后一列除了“1”以外都化为“0”,再按照最后一列展开。 3&#xff09…

Python编码系列—Python项目架构的艺术:最佳实践与实战应用

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

线段树解决区间合并类问题

如果只维持一段区间连续1的最长字串长度是无法被线段树维护的:所以可以增加信息来共同维护 1.维护三个信息:连续1的最长字串长度、连续1的最长前缀长度、连续1的最长后缀长度 2.如果一段区域连续1的长度小于区域的总长度: 3.如果一段区域连续…

力扣376-摆动序列(java详细题解)

题目链接:https://leetcode.cn/problems/wiggle-subsequence/ 前情提要: 因为本人最近都来刷贪心类的题目所以该题就默认用贪心方法来做。 贪心方法:局部最优推出全局最优。 如果一个题你觉得可以用局部最优推出全局最优,并且…

最新时光邮局系统,给未来写封信系统PHP源码美化版

源码介绍 最新时光邮局系统,给未来写封信系统PHP源码美化版视频教程。 给未来写封信开源源码,本源码支持用户给未来某个人发送一封信。前端采用MDUI框架后端对于定时发信采用screenphp的方式,未来将会增加其稳定性,寄出的信是可以在数据库查…

绝区零苹果电脑能玩吗,如何在Mac上玩绝区零?绝区零MacBook 下载安装保姆级教程

《绝区零》是一款由米哈游开发的都市动作冒险游戏,游戏的故事背景设定在一个名为「新艾利都」的现代化大都市中,玩家将扮演一对「绳匠」兄妹展开冒险。很多玩家都在问苹果电脑笔记本Mac怎么玩绝区零,今天就给大家介绍一下《绝区零》是一款什么…

信息打点-CDN绕过篇漏洞回链接口探针全网扫描反向邮件

知识点: 0、CDN知识-工作原理及阻碍 1、CDN配置-域名&区域&类型 2、CDN绕过-靠谱十余种技战法 3、CDN绑定-HOSTS绑定指向访问 CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和…

小程序列表滚动加载下一页数据功能实现指南

在前端小程序开发中,列表页是用户交互的核心部分之一。为了提高用户体验和页面响应速度,实现列表的滚动加载(也称为“无限滚动”或“懒加载”)功能显得尤为重要。本篇文章将详细介绍如何在小程序中实现这一功能,并提供…

基于vue框架的畅饮水站业务管理系统0wf4k(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:员工,会员,矿泉水,订单信息,派送任务,派送进度,评价记录,空桶回收,员工考勤,员工工资 开题报告内容 基于Vue框架的畅饮水站业务管理系统开题报告 一、研究背景与意义 随着健康意识的不断提升,直饮水、纯净水等健康饮水方式…

关于Seata的AT模式以及XA模式的理解

AT 模式 (最终一致性)的特点是性能较高,因为它只在第一阶段获取锁,在第一阶段提交后释放锁。相比之下,XA 模式(强一致性)需要在整个事务过程中占用数据库锁,因此性能相对较低。但是&…

为什么在JDBC中使用PreparedStatement?

为什么在JDBC中使用PreparedStatement? 💖The Begin💖点点关注,收藏不迷路💖 在JDBC编程中,PreparedStatement 因其以下优势而备受推崇: 性能提升:预编译的SQL语句可快速执行&#…

【C++11及其特性】explicit关键字

explicit关键字目录 一.explicit的含义1.中文含义2.用法 二.显示构造和隐式构造1.源码2.显示构造---()3.隐式构造---4.加上关键字 三.explicit作用 一.explicit的含义 1.中文含义 2.用法 写在构造函数前,那么在创建对象时就只能显示构造了,默认情况下是显示构造和隐式构造都可…

ctfshow之web55~web57(无字母的rce)

目录 web55 思路一: 思路二: web56 web57 本系列主要针对无字母rce或无字母无数字rce 声明:本章内容是引荐几位师傅的博客,然后根据自己的理解编写而成。 web55 if(isset($_GET[c])){$c$_GET[c];if(!preg_match("/\…

.net dataexcel winform控件 更新 日志

增加 列宽度调整时动态显示列象素大小 更改列的宽度可以使用 column.Width属性进行修改

文章解读与仿真程序复现思路——电网技术@EI\CSCD\北大核心《基于双缓冲区生成对抗模仿学习的电力系统实时安全约束经济调度》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

线段树维护更多类型的信息

P3870 [TJOI2009] 开关 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) sum维护一段区域的和&#xff1b;revers记录翻转懒信息&#xff1b; lazy&#xff1a;灯泡翻转后个数就是之前不亮的个数&#xff0c;revers变为原来的反 #include <iostream> using namespace s…