全面的质量保障体系之发现缺陷

2023-10-14 03:40

本文主要是介绍全面的质量保障体系之发现缺陷,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

不论对于测试人员还是测试团队,首要任务就是保证产品质量,要做到这一点除了测试人员要尽早介入测试,还有就是测试人员应尽早、尽可能多的发现缺陷。如何才能尽可能多的发现缺陷,确保上线后客户体验更好呢?通过长期测试实践发现缺陷主要分为常规缺陷、异常缺陷、注入缺陷以及随机缺陷;通过对缺陷分类更容易的根据不同缺陷类型实施不同的测试策略,以便更快、更彻底的发现缺陷。

bc8f748d0556ea9f9abd4a92d622c635.jpeg

1.常规缺陷

常规缺陷是指通过正常测试手段就可以发现的缺陷。对于常规缺陷如何更好更快的发现呢?需要从以下几个角度再次细分。

(1)根据业务需求分类

在测试中常见到的类型有:配置类需求、运营类需求、集成变更类需求、新功能类需求等等,对于这些需求我们可以采用不同的测试策略与方法。

运营类需求:这类需求一般功能简单,但具有传播范围广,用户基数大的特点。这类需求测试时应重点关注其基本功能正常,服务端性能满足活动预期要求同时也要满足不同用户使用手机或者浏览器的兼容性测试。

配置类需求:这类需求的典型特征是根据后台配置,实现前台动态展示。对于这类需求又要细分为新建配置类需求测试和变更配置类需求,对于变更配置类需求在测试时只需要考虑主流程就可以了,对于新建配置类需求的测试就相对复杂的多。

(2)业务用例分类

 测试过程本身是一个抽样检测的过程,如何用最少的用例覆盖最多的场景,发现最多的缺陷。就需要对测试需求和测试用例区分优先级,根据不同的测试要求选取对应的测试用例,实现用最少的用例覆盖最多的测试场景。测试用例分级在各个公司都有应用,在此不再详细阐述。

(3)产品运营策略

产品的运营策略不同,对质量投入的成本也有所差异。按照运营类型不同,可分为自运营产品、托管运营类产品、客户运营产品、用户运营产品等等。下面简单的用事例说明

用户运营类产品:比如Office 、ERP等产品,这类产品早期都是以光盘方式售卖,然后安装在客户的PC上或者服务器上;如果出现问题召回成本巨大,对于这类产品一般产品质量投入的就比较大,投入测试资源较多,测试较为充分,测试时间相对较长。

而对于自运营产品,比如淘宝、京东等产品,对于服务端功能,可以做到24小时随时上线,那么一般在功能测试的投入相对就较少。

2.异常缺陷

异常缺陷是指部分特殊用户使用时才能够发现的问题,比如某些特定手机机型上出现的显示问题等。异常缺陷的要做到更多的被发现,一般采用增加测试类型,或者通过缺陷库和缺陷模型,然后在测试时对照缺陷库或者缺陷模型进行测试。

outside_default.png

增加测试类型虽然能够发现一些异常类的缺陷,但如果使用不当会大大增加测试工作量,给测试工作带来灾难,具体如何增加测试类型,需要团队成员认真评估和思考。简单举例说明。

比如一个服务端测试,除了正常的功能测试、性能测试、安全性外,常常需要增加稳定性测试和伸缩性测试。

而对于移动端客户端测试,除了正常的功能测试、客户端性能测试、兼容性测试,很多情况下还需要增加对稳定性测试。

对于模型参照测试,主要是应用以前的测试经验,通过对业务分析或者对缺陷进行根因分析形成测试缺陷库或者缺陷模型库,在测试过程中通过对比缺陷库或者测试模型库中的易错点进行专项测试,尽可能发现常规手段发现不了的缺陷。如图所示

outside_default.png

3.注入缺陷

注入缺陷,指通过外界介入的方式才能发现的缺陷。要发现注入性缺陷一般成本较高,需要模拟注入难度一般来说比较大;常见的注入性测试,比如服务端性能测试、服务端伸缩性测试、数据库注入测试、安全测试等等。

比如服务端性能测试,通过模拟大量客户端像服务器端发送请求,通过模拟比现实使用时更多的请求量来预防线上不可预测的瞬时大量访问。

伸缩性测试:在业务运行过程中增加或者减少应用服务器的方式,模拟扩容和机器故障导致的异常问题。

4.随机缺陷

随机缺陷具有不确定性,缺陷在某些未知条件下才能够发生或者出现。随机缺陷一般发现的难度非常大;对于随机缺陷如果发现,建议同步给项目组所有成员留意该问题,进而继续跟踪发现该缺陷。经过长期测试与实践发现随机缺陷大多因为编码不规范造成的一种偶发缺陷;建议通过代码扫描和代码review的手段解决此类问题。静态代码扫描这个方法已经被大部分公司使用并实践证明是一种高效的测试方法。代码Review更多的是使用在开发之间,测试Review开发代码貌似是个比较新鲜的事情,但起到的效果确是让人意想不到的好。简单的聊聊我们原来上家公司的一些实践。

流程:在需求评审后,开发人员在代码完成后提交代码,开发人员先对测试人员进行代码逻辑讲解,测试人员根据测试需求分析的业务逻辑对开发人员的代码逻辑进行询问,开发人员进行基本答疑,之后测试人员进行代码Review,主要应用白盒测试的方法进行测试与验证。

好处:

1.提高质量意识,开发人员需要和测试人员进行讲解和沟通,无形中会重视代码质量与代码逻辑的正确性;

2.开发人员在讲解代码和测试人员代码询问期间,很容易发现其开发代码的逻辑问题;

3.提高测试人员代码能力,在Review开发代码过程中,学习开发相关知识,提升其技能;

4.提高整体测试效率和代码质量,该方法是结对编程的一个变种。

以上通过对缺陷分类,然后给出不同的测试策略,进而进行实践发现更多的缺陷,从而提高产品质量。

注:本文测试缺陷分类思想参照杨晓慧老师大作《软件测试价值提升之路》

这篇关于全面的质量保障体系之发现缺陷的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/207889

相关文章

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

STL经典案例(四)——实验室预约综合管理系统(项目涉及知识点很全面,内容有点多,耐心看完会有收获的!)

项目干货满满,内容有点过多,看起来可能会有点卡。系统提示读完超过俩小时,建议分多篇发布,我觉得分篇就不完整了,失去了这个项目的灵魂 一、需求分析 高校实验室预约管理系统包括三种不同身份:管理员、实验室教师、学生 管理员:给学生和实验室教师创建账号并分发 实验室教师:审核学生的预约申请 学生:申请使用实验室 高校实验室包括:超景深实验室(可容纳10人)、大数据实验室(可容纳20人)、物联网实验

如何掌握面向对象编程的四大特性、Lambda 表达式及 I/O 流:全面指南

这里写目录标题 OOP语言的四大特性lambda输入/输出流(I/O流) OOP语言的四大特性 面向对象编程(OOP)是一种编程范式,它通过使用“对象”来组织代码。OOP 的四大特性是封装、继承、多态和抽象。这些特性帮助程序员更好地管理复杂的代码,使程序更易于理解和维护。 类-》实体的抽象类型 实体(属性,行为) -》 ADT(abstract data type) 属性-》成

C++第四十七弹---深入理解异常机制:try, catch, throw全面解析

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C++详解】 目录 1.C语言传统的处理错误的方式 2.C++异常概念 3. 异常的使用 3.1 异常的抛出和捕获 3.2 异常的重新抛出 3.3 异常安全 3.4 异常规范 4.自定义异常体系 5.C++标准库的异常体系 1.C语言传统的处理错误的方式 传统的错误处理机制:

【微服务】Ribbon(负载均衡,服务调用)+ OpenFeign(服务发现,远程调用)【详解】

文章目录 1.Ribbon(负载均衡,服务调用)1.1问题引出1.2 Ribbon负载均衡1.3 RestTemplate整合Ribbon1.4 指定Ribbon负载均衡策略1.4.1 配置文件1.4.2 配置类1.4.3 定义Ribbon客户端配置1.4.4 自定义负载均衡策略 2.OpenFeign面向接口的服务调用(服务发现,远程调用)2.1 OpenFeign的使用2.1 .1创建

分布式事务 全面解析

1 面试题 分布式事务了解吗?你们如何解决分布式事务问题的? 2 考点分析 只要聊到做了分布式系统,必问分布式事务,若你对分布式事务一无所知的话,确实很坑,起码得知道有哪些方案,一般怎么来做,每个方案的优缺点是什么。 现在面试,分布式系统成了标配,而分布式系统带来的分布式事务也成了标配. 你做系统肯定要用事务,那你用事务的话,分布式系统之后肯定要用分布式事务. 先不说你搞过没有,起码你

从零开始构建大语言模型并进行微调:全面指南

要从0开始搭建并训练一个大语言模型(LLM),涉及到多个步骤和资源,包括理论理解、工具使用、数据准备、模型训练与微调。以下是一个从基础到应用的指南,帮助你理解并逐步实现这一目标。 1. 理解基础概念 在开始搭建大语言模型之前,了解以下基本概念至关重要: 生成式AI:通过大语言模型生成自然语言文本,例如GPT、BERT等。机器学习:通过数据训练模型,使其具备从数据中学习规律的能力。深度学习:机

【无线通信发展史⑧】测量地球质量?重力加速度g的测量?如何推导单摆周期公式?地球半径R是怎么测量出来的?

前言:用这几个问答形式来解读下我这个系列的来龙去脉。如果大家觉得本篇文章不水的话希望帮忙点赞收藏加关注,你们的鼓舞是我继续更新的动力。 我为什么会写这个系列呢? 首先肯定是因为我本身就是一名从业通信者,想着更加了解自己专业的知识,所以更想着从头开始了解通信的来源以及在每一个时代的发展进程。 为什么会从头开始写通信? 我最早是学习了中华上下五千年,应该说朝代史,这个算个人兴趣,从夏

【Oracle篇】全面理解优化器和SQL语句的解析步骤(含执行计划的详细分析和四种查看方式)(第二篇,总共七篇)

💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨ 💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️ 💖💖💖大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注💖💖💖 SQL优化续新篇,第二篇章启幕时。 优化器内藏奥秘,解析SQL步

1.1 Avtivity的生命周期全面分析

本文将Activity的生命周期分为两部分内容,一部分是典型情况下的生命周期,另一部分是异常情况下的生命周期。所谓典型情况下的生命周期,是指在有用户参与的情况下,Activity所经过的生命周期的改变;而异常情况下的生命周期是指在Activity被系统回收或者由于当前设备的Configuration发生改变从而导致Activity被销毁重建,异常情况下的生命周期的关注点和典型情况下略有不同。 1