传统软件测试过程中的测试分工

最近看了点敏捷测试的东西,看得比较模糊。一方面是因为没有见真实的环境与流程,也许它跟本就没有固定的模式与流程,它就像告诉人们要“勇敢”“努力”。有的人在勇敢的面对生活,有些人在勇敢的挑战自我,有些人在勇敢的面对失败与挫折。好吧!他们都实现了“勇敢”,勇敢到底是如何去做,也许说不清楚。或者说每个人都有自己的实践方式。但是他们却同样靠着“勇敢”攻克不自己所面临的困难。当然了,敏捷并不是简单一个词语,经过前人的不探索与总结,还积累与总结相当多的经验可供我们借鉴与参考。

   按照本文的主题还是来谈谈软件测试人员的分工吧!主要来谈传统软件测试过程中的测试分工,因为敏捷测试中的测试分工我还没弄明白到底是肿么个情况。

集体测试

  也许专业测试里讲这种方式,很可能不叫“集体测试”。因为我根据的自己的理解起了大概符合意思的名词叫集体测试“集体测试”。

      就是测试模式就是,公司里所有的测试人员抱成一团儿,来一个项目,所有测试人员就集中测试一个项目。

先说这种分工方式的优点:

  1、因为测试团队的中每个成员有都有优缺,人员在工作之中相互取长补短。可以很快的找出软件中的缺陷。三个臭皮匠顶一个诸葛亮,一个经验再丰富的测试不一定有三个水平一般的测从员发现的问题多。

  2、人多的另一个好处是测试项目能可以在更快的时间内发现更多人缺陷。总结一下就是更短时间内发现更多的问题。

再来说说这种方式的缺点:

  1、一个人员一张嘴,人力成本很长(人员工资,人员平均时间投入,测试机等硬件资源投入)。

  2、当同时需要测试多个项目中时,不要意思,按顺序来,请在后面排好队。

  3、工作重复,同样一个缺陷,很可以同时被所有测试员发现,或者叫重复率很高。

  4、人员水平难以区分,在一个项目测试过程中,有的测人员可能一个缺陷也没找到,有的测试人员却发现了几乎所有的问题。也许这个项目一个缺陷也没找到的测试员在下个项目中却发现了很多缺陷。

  5、了漏测现象是整个测试团队的责任。(这也不是明确的缺点,要看团队的氛围是积极的还是消极的。)

(也许,你说想照这么个分析法是不是漏了太多东西,也许你有兴趣继续看下去话,我后面会讲解。)

好吧!集体测试缺点太多,就像国家成立初期的“吃大锅饭”,肯定是阻碍发展的。那我们来看看几种分工方式。

按测试内容分工

  一个项目的测试包括文档测试,易用性测试,逻辑功能测试,界面测试,配置和兼容等多个方面。我们可以根据人员的特点为每个人员分配不同的测试内容。

内容分工方式的优点:

  1、分工明确,每位人员都清楚自己的测试的内容重点。

  2、责任到位,通过漏测的缺陷就可明确是谁的责任。

按测试流程划分

  我们的项目测试流程一般需要,制定测试计划,编写测试用例,执行测试用例,输出测试报告等工作,我们可以根据流程中的各个阶段来进行划分。

不同的人员负责不同测试阶段的工作。

优点:

  1、流程清晰,就像瀑布试项目开发流程,不同阶段的工作由不同的人员担任。

  2、划分流程的每个阶段难易程度和所需要的技能。

编写测试计划人员需要对整个项目的工作时间、资源分配,测试内容,实施过程有整体的把控能力。

用例辨析人员,需要对项目需求,测试方法,测试点有深入的了解。

用例执行人员需要细心,使用缺陷系统,沟通,协助研发定位缺陷。

输出测试报告人员需要对项目的测试过程,缺陷数量,类型,分布。用例执行请况等进行统计。也可以由测试执行人员担任。

按项目模块划分

  对中大型的项目,这种划分就非常必要了,项目的模块非常多,功能也非常多。不同的测试人员负责不同模块的功能,这样会使用测试工作变得更加清晰。

  1、人员利用率高,为什么这么说呢? 不同的人员负责的功能不一样。工作就不会存在交叉与重复。

  2、更容易挖掘深度缺陷,假如A人员今天测试这个功能,明天测试那个功能,他就不可以对被测功能内部逻辑与业务有深入有了解。找到的也只是很表面的缺陷。那么如果一个人员长期负责一个模块的功能,那么就会更容易发现更有深度的缺陷。而往往深度的缺陷是致命的。

按照测试类型分工

  我们知道软件除了功能需要测试以外,软件在编码阶段需要单元测试,接口测试等,在系统测试阶段,为提高功能测试的效率,可能对某些模块进行功能自动化,我们还要考虑软件的性能、安全性等问题。这些类型也是我项目中最常见的分类。我们可以根据这些类型为测试人员分配测试工作。当然,其专业性对测试人员的要求也比较高。

这种分工方式的特点。

  1、专业技能要求较高,在这些分类中除了手工测试要求较低外(表面看是这样的),其它分类都需要较高的专业技能。例如,安全性测试需要掌握网络协议,编程技术,脚本攻击,SQL注入,漏洞分析等方面的技能。

  2、不同分类之间交互性低,正国为不同分类需要的技能不同,虽然同为“测试”工作,但一个做单元测试的人就无法让其去做性能测试。

上面分类方式的疑问

  看了上面的几种分工方式,你是不是每一种测试人员分工方式都似曾相识,但又没有哪个公司是单一的按照上述某种分工作方式工作。

  拿笔者目前所在的公司,是一个长期的互联网产品,产品功能比较多,每位测试人员负责不同的功能模块,测试员人员从测试计划到测试报告都基本由一个人来完成。当然对于比较大和紧急的版本迭代,也会多人协作对版本进行测试(协作的方式一般更将版本功能再次细分到每个人员身上)。安全测试由专业的安全人员指导功能测试人员对自己负责的功能进行安全扫描与分析。有独立的性能测试小组,对需要进行性能的产品版本进行性能测试。在独立的功能自动化人员,对于适合自动化的功能进行自动化工作。

  笔者公司的分工作方式几乎包括了上面所有的分工方式。那么,我为什么要进行上面那么单一的分工方式划分呢?这样有助于我们理清对测试工作的各种分工方式。在实际的工作中,有大型项目,有小型项目,有客户端软件,也有互联网产品,有短到几天的项目,也有“永久”性的项目。有一次开发完成交付的,也有不段迭代更新的。根据项目的情况,我们可以可以选择合适的分工方式来应用于项目中。


投入人员与发现缺陷的关系

  在人员分工时,这也是一个必须也要考虑问题,对一个项目,投入的人员数量,投入的时间,与发现缺陷的数量有密切的关系。

投入时间与发现缺陷的关系

  在人员一定的情况下,投入的时间越多,发现的缺陷越多。但有一个规律,越到后期发现的新缺陷越少。假设软件总缺陷为100个,第一周发现50个问题,第二新发现20个,第二周可能只发现10个新缺陷。而且一个必然的结果是,测试不可能发现所有的缺陷。

投入人员数量与缺陷的关系

  在时间一定有的情况下,投入的人员越多,发现的问题越多,从图中可以看出,投入的人员越多,人员发现缺陷的重叠度越高。当然,你可以说,把每个人员要测试的内容划分清晰就不会重叠了。做为一个系统的各个功能模块,他们之间肯定存在必然的联系。有可能A人员在测试时会涉及到B人员测试的功能,并且发现了问题,不管是告诉B缺陷还是A人员直接提交缺陷(当然,你也可以装作没看到,等着B去发现),这都算不可避免的重叠。

  当然了,划分更清晰的任务有效的降低重叠度。同步也降低了发现缺陷的数量,提高项目风险。除非投入更多的时间测试。这之间的关系,需要测试管理者认真去权衡。

  在项目不紧急测试时间充分的情况下,可以投入更少的人员,延长测试时间发现更多的缺陷。 在项目紧急的情况下,需要投入更多的人员测试,以便尽快的发现更多的缺陷。在项目质量要求很高的情况下需要投入更多的人员与时间进行测试。在测试时间少,项目质量要求不高的情况下,可以投入较少的人员与时间进行测试。

-------------------------------------------------------------------------------------- 

本文结束,但还有许多问题我没有讲清楚(或者,我目前还说不清楚)。

1、A人员发现了b功能模块的缺陷(b模块由B人员负责测试)应该如何处理? 自己提缺陷单 ,告诉B人员,让B人员提单。直接忽视,等着B测试人员去发现。

2、项目紧急情况,人员投入,时间投入,某些情况下,考虑某些模块不进行测试。

3、测试人员的发展职业发展,这与测试人员的分工有着密切的联系。

【B站最通俗易懂】Python接口自动化测试从入门到精通,超详细的进阶教程,看完这套视频就够了

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

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

相关文章

Java打怪升级路线的相关知识

第一关:JavaSE阶段 1、计算机基础 2、java入门学习 3、java基础语法 4、流程控制和方法 5、数组 6、面向对象编程 7、异常 8、常用类 9、集合框架 10、IO 11、多线程 12、GUI编程 13、网络编程 14、注解与反射 15、JUC编程 16、JVM探究 17、23种设计模式 18、数据结构与算法 1…

修复git diff正文中文乱码

Linux git diff正文中文乱码 在命令行下输入以下命令: $ git config --global core.quotepath false # 显示 status 编码 $ git config --global gui.encoding utf-8 # 图形界面编码 $ git config --global i18n.commit.encoding utf-8 # …

Kafka - AR 、ISR、OSR,以及HW和LEO之间的关系

文章目录 引子举例说明 引子 AR(Assigned Replication): 分区中的所有副本统称为AR(Assigned Replicas) ISR(In-Sync Replicas):同步副本集合 ISR是指当前与主副本保持同步的副本集合…

cancal报错 config dir not found

替换classpath中间封号两边的值

如何在Microsoft Excel中使用SORT函数

虽然 Microsoft Excel 提供了一个内置的数据排序工具,但你可能更喜欢函数和公式的灵活性。 使用 SORT 函数的好处是,你可以在不同的位置对数据进行排序。如果你想在不干扰原始数据集的情况下操作项目,你会喜欢 Excel 中的 SORT 函数。但是,如果你喜欢对项目进行原位排序,…

【C++】list的模拟实现

🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风…

数据结构(王道)——数据结构之 二叉树的存储结构

一、顺序存储 静态顺序存储 顺序存储的二叉树结构特性: 顺序存储的非完全二叉树特性 不完全二叉树的可能会浪费大量空间,所以一般顺序存储二叉树比较少用。 图示为什么很少用顺序存储来存二叉树 顺序存储的二叉树总结: 二、链式存储 二叉链表…

集群基础4——haproxy负载均衡mariadb

文章目录 一、环境说明二、安装配置mariadb三、安装配置haproxy四、验证 一、环境说明 使用haproxy对mysql多机单节点进行负载均衡。 主机IP角色安装服务192.168.161.131后端服务器1mariadb,3306端口192.168.161.132后端服务器2mariadb,3306端口192.168.…

springboot @Async 异步调用接口处理数据

Async 异步背景 新增的数据需要分发给下游业务系统,由于下游业务系统状态未知,所以需要异步发送数据给下游业务系统。 系统生效按钮--->controller新增-->异步调用servcie--->数据集成 在springboot框架中实现步骤 首先在启动类上加上Enable…

JMeter接口测试之文件上传

最近用JMeter做接口测试,频繁遇到了文件上传的接口,与其他一般接口的处理方式不一样,想着分享下,希望能给测试同学一点启发。 文章将围绕三个部分进行展开: 一、用户场景 二、接口请求参数 三、JMeter脚本编写步骤 …

leetcode 216. 组合总和 III

2023.7.18 做了这道题 组合 之后&#xff0c;本题就很容易了&#xff0c;依旧是使用回溯。 其中需要统计一下总和sum值&#xff0c;以此来判断能否加入到最终数组中。下面上代码&#xff1a; class Solution { public:vector<vector<int>> ans;vector<int> …

linux查看ipynb文件

linux查看ipynb文件 使用jupyter查看 使用jupyter查看 安装 pip install jupyter添加配置好的环境到jupyter notebook的kernel中&#xff1a; python -m ipykernel install --user --name mmdet --display-name "mmdet"运行jupyter notebook &#xff08;在ipynb…

MQTT 订阅选项的使用

在 MQTT 发布/订阅模式介绍这篇博客中&#xff0c;我们已经了解到&#xff0c;我们需要先向服务端发起订阅&#xff0c;才能从服务端接收对应的消息。如果说订阅时指定的主题过滤器决定了服务端将向我们转发哪些主题下的消息&#xff0c;那么订阅选项则是允许我们进一步定制服务…

从零搭建vue+electron桌面应用

从零搭建vueelectron桌面应用 一、准备工作1.全局下载electron2.全局下载vue脚手架3.创建vue项目&#xff08;这里用的是vue2版本&#xff09;4.安装打包插件5.安装electron-builder&#xff0c;安装后可以直接生成主进程的配置文件6.在vue.config.js中添加以下配置 二、运行项…

idea 自定义类注释模板和方法模板,无警告

背景&#xff1a;idea&#xff1a;IntelliJ IDEA 2023.1.3 (Ultimate Edition) 效果&#xff1a;&#xff08;主要是没无参&#xff0c;不会换行&#xff09; 类&#xff1a; /** * author sss* date ${DATE} on ${TIME}* desc $NAME*/# 完全复制上面的&#xff0c;删除这一行…

Git #01 操作记录

本篇内容 0. 前期配置1. 仓库1.1 上传本地代码到远程仓库 0. 前期配置 请提前配置好 git 的全局用户名&#xff1a; # xin&#xff1a;账号名 $ git config --global user.name "xin" # xin163.com&#xff1a;账号绑定的邮箱地址 $ git config --global user.emai…

vue注意点:$attrs、$slots!插槽

$attrs 当父组件给子组件传值&#xff0c;子组件并没有接收数据时&#xff0c;此时数据在$attrs中可以拿到&#xff0c;并且如果子组件不需要使用数据&#xff0c;而孙组件需要&#xff0c;则可以直接v-bind"$attrs"传给孙。 <-- 父组件 --> <div><…

目标检测算法:FPN思想解读

目标检测算法&#xff1a;FPN思想解读 说明 ​ FPN算法一种方法/思想&#xff0c;在许多的模型架构中都经常采用&#xff0c;也是提高模型精度的重要方法。 免责申明 ​ 有误写/错写/错误观点/错误解读&#xff0c;或者大家有其它见解&#xff0c;都可以在评论区指出&#xff0…

0719_rasa网站的一些介绍

it’s not a bot, it’s your brand rasa is the leading open generative conversational ai platform for creating and managing ai assistants at scale. learn more talk with sales top enterprises trust rasa american express adobe dell accenture report ho…

scrapy---爬虫界的django

1介绍 scrapy架构 引擎(EGINE)&#xff1a;引擎负责控制系统所有组件之间的数据流&#xff0c;并在某些动作发生时触发事件。大总管&#xff0c;负责整个爬虫数据的流动 调度器(SCHEDULER)用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个U…