软件工程之美学习笔记三十三 32 | 软件测试:什么样的公司需要专职测试?

《软件工作之美》材料地址: https://time.geekbang.org/column/article/94941

软件测试的主要工作是什么?

发现 Bug,报告 Bug,跟踪 Bug。

软件测试怎么发现 Bug?

专业测试人员和开发人员的测试用例会差很多
开发人员的重点,是放在如何实现功能上;对于测试人员来说,重点是在检测,也就是会考虑所有可能的用户使用场景,正常的、异常的,甚至各种极端情况。
测试人员通过有限的测试用例,保证尽可能多的测试覆盖。推荐阅读《微软的软件测试之道》

  • 等价类划分
  • 边界值分析
  • 探索性测试
  • 场景设计
  • 因果图
  • 错误推测法

软件测试怎么报告 Bug?

测试人员要做的就是创建一个新的 Ticket,在 Ticket 的描述中,详细说明 Bug 是什么,具体的重现步骤,必要的话还要附上截图、日志等辅助信息。这样开发人员在收到 Bug后就能快速定位问题,按照优先级对 Bug 进行修复。

软件测试怎么跟踪 Bug?

Bug 的跟踪,并不仅仅是要跟踪开发人员什么时候修复了这个Bug,通常还包括对 Bug 修复的验证。
回归测试是指修改了旧代码后重新进行测试,以确认修改没有引入新的错误或导致其他代码产生错误。

什么样的公司需要专职测试?

完全由开发人员兼职测试,还是很有难度的,不仅对开发人员要求非常高,而且需要开发人员承担所有的开发和测试的压力。

为什么 Facebook 可以做到没有专职测试呢?

  • 大量优秀的工程师,可以同时兼任开发和测试;
  • 有大量的自动化测试代码覆盖;
  • 强大的发布和监控系统;
  • 时间进度比较宽松;
  • 用户对 Bug 容忍度较高。
    对于不能满足上面条件的公司,有专职的测试是更有利于软件项目开发和质量保障的。

大厂不设专职测试的启示

  • 用自动化测试代替重复性的手工测试是必然趋势
  • 测试设计是软件测试人员的核心竞争力
  • 开发人员和测试人员的更多融合是一种双赢。

精选留言

邢爱明
谁来做测试工作,这也是我一直比较疑惑的地方,和大家探讨一下。
我现在是甲方,主要做的是企业管理软件,业务逻辑和流程控制都比较复杂,部分系统是需要一些领域的专业知识。
软件开发的时候,基本采用的是瀑布模式。首先由专门的人员做需求澄清,分析和设计,一般我们称为业务分析师,他们这些人会输出软件的需求规格说明书,包括软件原型、详细说明word文件,然后交给开发团队进行功能设计、开发和交付。
在这种模式下,是否需要专职的软件测试人员,有两种意见。
第一种意见认为不需要测试人员,原因是业务逻辑复杂性,找一个普通的外部测试人员进来,还需要花较长的时间去了解需求,学习如何操作一些专业的应用软件,还需业务分析师花费宝贵的时间去做辅导学习。如果不让测试人员学习,就只能测试一些很简单的功能,对把控整个软件交付的质量作用非常小。解决方案就是让业务分析师兼职做测试工作,因为对需求本身非常清楚,学一点测试基础知识,在付出点加班时间,也是能完成功能测试工作的。
第二种观点是认为需要专职的测试人员,因为上一种方案中,需求分析师大部分做的还是正向测试,即按照自己设计的功能和流程,判断软件交付是否合格。但是对异常场景的测试还是比较少的,会导致软件上线后,在用户实际操作过程和设想的不同的时候,往往会出现一些功能异常,给用户的直接感受就是软件不稳定。所以说希望通过专业的测试人员,多采用一些探索式的测试方法,尽量多地发现软件中存在的缺陷,提升交付质量。

请老师帮忙分析一下,哪种方案更加合理一点?
我现在的做法比较折中,如果项目级别低、时间紧,预算也不充分,就采用第一种方案。
但如果项目重要度比较高,出了质量问题大家都接受不了,就想办法让项目经理多争取预算,保证有充分的外部测试资源投入。
老师回复:
我的观点是这种情况下需要专职测试的,业务分析师的重点应该是把需求文档写清楚。

业务复杂不能成为一个借口,想想看开发人员是怎么理解需求的,难道也是业务分析师代劳?肯定也是由业务分析师写成需求文档,然后开发人员基于文档开发,当然中间少不了很多确认环节。

测试也是类似,应该专业的人来做比较好,可以有更好的测试覆盖。一开始肯定是难一点,但是一段时间业务熟悉后,会极大提升整个团队的测试效率,而你也不需要再为这个问题纠结了。

kirogiyi
个人认为专职测试是必须的,但他们的主要职责不是测试软件Bug的存在,而是提供系统化的测试解决方案,指导构建完善的自动化测试系统,去引导和培训开发人员完成一系列的测试工作,去监督软件测试的过程和结果,随时提出建设性的意见和建议。最终目标是实现:谁污染谁治理的策略,也就是开发人员要对自己的产出负责,不对测试人员产生心理上的依赖,最大化的从源头上解决问题,以减少问题的传递链路。
(我赞同这个观点,但这个不叫专职测试,而是测试架构师,包括平台搭建,流程建立和引导执行等)

推荐测试用例管理工具testrail https://www.gurock.com/testrail

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值