聊一聊质量测试框架

质量测试框架的概述:

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

图片

质量测试框架相关术语:

外部性质的质量测度 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应用测试中,确保应用在不同浏览器和操作系统上的表现一致是个难题。

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

测试技术不熟练或不足:

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

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

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

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

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

测试用例设计不合理:

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

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

测试计划不完善:

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

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

质量测试框架相关的国家标准,有兴趣的可以下载了解一下,下载提取码可以关注我的公众号【漫谈测试】,发送消息“提取码”

百度网盘 请输入提取码

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决OneDrive “拒绝访问文件” 问题

问题描述: 在尝试将其他文件拖入oneDrive或是打开OneDrive中的文件时。出现如下报错: 拒绝访问文件 无法访问XXXXXXX中的文件。可能已移动或删除了此文件,或者受制于文件权限而不能访问。 ERR_ACCESS_DENIED 解决办法: 1. 找到O…

【MySQL备份】Percona XtraBackup实战篇

目录 1. 前言 2.准备工作 2.1.创建备份目录 2.2.配置/etc/my.cnf文件 2.3.授予root用户BACKUP_ADMIN权限 3.全量备份 4.准备备份 5.数据恢复 6.总结 "实战演练:利用Percona XtraBackup执行MySQL全量备份操作详解" 1. 前言 本文将继续上篇【My…

论文笔记:MobilityGPT: Enhanced Human MobilityModeling with a GPT mode

1 intro 1.1 背景 尽管对人类移动轨迹数据集的需求不断增加,但其访问和分发仍面临诸多挑战 首先,这些数据集通常由私人公司或政府机构收集,因此可能因泄露个人敏感生活模式而引发隐私问题其次,公司拥有的数据集可能会暴露专有商…

侯捷C++面向对象高级编程(上)-6-三大函数:拷贝构造、拷贝复制、析构

1. 2.三个特殊函数 3.构造函数和析构函数 4.浅拷贝(系统默认仅把指针拷贝过去) 5.拷贝构造函数(深拷贝,拷贝的内容,重写string函数) 6.拷贝赋值

遇到多语言跨境电商系统源码问题?这里有解决方案!

从手机到电脑,从线下到线上,如今,跨境电商正在打破地域界限,成为全球贸易的新引擎。在这个全球化的背景下,跨境电商平台的运营也面临着一系列的挑战,其中之一就是多语言问题。如果你遇到了多语言跨境电商系…

每日一题-字符串相加

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std;class Solution { public:string addStrings(string num1, string num2) {//11123//从个位开…

基于偏微分方程模型的一维信号降噪(MATLAB)

自然界很多领域如天文、物理、生物、化学等的运动和状态的变化受多个因素影响&#xff0c;而偏微分方程恰好可以描述这种多变量问题&#xff0c;因此被引入科学研究是一种必然。偏微分方程早期的时侯用来描述机械物体和流体的自然运动和物理规律&#xff0c;且其应用领域不断拓…

【收藏】SaaS运营方法论:寻找合适的合作伙伴的四大方法

一、使用关键字研究工具查找您所在行业的相关博客、频道和网站 但是&#xff0c;根据你的业务规模和性质&#xff0c;如果你需要主动出击寻找合适的推广伙伴&#xff0c;而不仅限于让潜在合作伙伴找你&#xff0c;你可以使用关键字研究工具。 实话实说&#xff0c;最好的联盟营…

告别手工录入,企业财务凭证同步迈入智能新时代!

一、客户介绍 某金融租赁股份有限公司作为一家领先的金融租赁企业&#xff0c;一直秉持着创新驱动、服务至上的经营理念。随着业务的快速发展&#xff0c;该公司在财务管理和凭证管理方面遇到了新的挑战。为了更好地提升工作效率&#xff0c;降低运营成本&#xff0c;该公司决…

vue+js实现鼠标右键页面时在鼠标位置出现弹窗

首先是弹窗元素 <div class"tanchuang move-win1"id"tanchuang1"><el-button>111</el-button></div>然后在需要弹窗的地方监听点击事件&#xff0c;可以将这个方法写在页面载入事件中 // 获取弹窗元素 var tanchuang document.…

Open3D Ransac点云配准算法(粗配准)

目录 一、概述 1.1简介 1.2RANSAC在点云粗配准中的应用步骤 二、代码实现 2.1关键函数 2.2完整代码 2.3代码解析 2.3.1计算FPFH 1. 法线估计 2. 计算FPFH特征 2.3.2 全局配准 1.函数&#xff1a;execute_global_registration 2.距离阈值 3.registration_ransac_b…

二维码中的文件如何列表排列?轻松在线做文件活码的简单技巧

现在二维码是常用来展示文件的手段之一&#xff0c;将文件生成二维码之后扫码就能够快速在手机上查看文件内容&#xff0c;减少了下载内存占用及传输的时间&#xff0c;通过这种方式可以更加方便快捷的获取文件内容。怎么把多个文件用列表的方式来扫码展示呢&#xff1f; 多个…

汽车电子行业知识:什么是电子后视镜

文章目录 1.什么是电子后视镜2.有哪些汽车用到了电子后视镜3.电子后视镜的原理及算法4.电子后视镜的优点5.电子后视镜的未来市场将继续增长 1.什么是电子后视镜 电子后视镜是一种集成了电子元件和显示屏的汽车后视镜&#xff0c;用于替代传统的机械后视镜。它通过内置的摄像头捕…

[吃瓜教程]南瓜书第4章决策树

1.决策树的算法原理 从逻辑角度&#xff0c;条件判断语句的组合&#xff1b;从几何角度&#xff0c;根据某种准则划分特征空间&#xff1b; 是一种分治的思想&#xff0c;其最终目的是将样本约分约纯&#xff0c;而划分的核心是在条件的选择或者说是**特征空间的划分标准 ** …

编写一个程序,实现字符串大小写的转换并倒序输出。

编写一个程序,实现字符串大小写的转换并倒序输出。要求如下: &#xff08;1&#xff09;使用for循环将字符串“ITcastHeiMa”从最后一个字符开始遍历。 &#xff08;2&#xff09;遍历的当前字符如果是大写字符&#xff0c;就使用toLowerCase()方法将其转换为小写字符&#xff…

2024-07-01_外语学习

文章目录 前言1、Los Angeles至于单个los 是什么意思&#xff1f;我们可以逐词翻译这个西班牙语句子 2. Extraneous non-props attributes (style) were passed to component but could not be automatically inherited because component renders fragment or text root nodes…

鸿蒙3.0WebView网络错误问题

背景&#xff0c;荣耀9x&#xff0c;混淆才会出这个问题。 [ERROR:ssl_client_socket_impl.cc(981)] handshake failed; returned -1, SSL error code 1, net_error -2 NetError.java int SSLClientSocketImpl::DoHandshake() {crypto::OpenSSLErrStackTracer err_tracer(FRO…

【深入浅出 】——【Python 字典】——【详解】

目录 1. 什么是 Python 字典&#xff1f; 1.1 字典的基本概念 1.2 字典的用途 1.3 字典的优势 2. 字典的基本特点 2.1 键的唯一性 2.2 可变性 2.3 无序性 3. 如何创建字典&#xff1f; 3.1 使用 {} 符号 3.2 使用 dict() 工厂方法 3.3 使用 fromkeys() 方法 4. 字…

优盘有盘符显示0字节:故障解析与数据恢复策略

一、优盘有盘符显示0字节现象描述 在使用优盘的过程中&#xff0c;我们有时会遇到一种令人困惑的情况&#xff1a;插入优盘后&#xff0c;电脑能正常识别到优盘的盘符&#xff0c;但当我们尝试访问其中的数据时&#xff0c;却发现优盘的容量显示为0字节&#xff0c;无法读取或…