首页 > 其他分享 >软件工程能力---开展开发者测试需要考虑的10个问题

软件工程能力---开展开发者测试需要考虑的10个问题

时间:2023-09-03 23:56:25浏览次数:35  
标签:10 看护 业务 --- 开发者 测试 开展 团队

开发者测试的定义:

开发者测试(DT),是指开发者所做的测试,有别于专职测试人员进行的测试活动。 DT目标是在软件交付转验收测试前,发现和解决绝大多数代码缺陷,而其理论依据是业界 研究反复揭示的“前端发现问题的代价远小于后端”。

 本文先不讨论开发者测试的优势(作用),也不展开讨论开发者测试有哪些技术,重点讨论开发者测试开展前需要考虑清楚的10个问题。众所周知,开发者测试最终需要在业务团队落地并产生正向收益,因此,除了需要考虑业务团队的诉求、业务团队开展开发者测试的驱动力之外,更重要的是考虑开发者测试本身需要面对的问题,因此,本文总结了开发者测试开展前需重点考虑清楚的10个问题。

开展开发者测试需要考虑的10个问题

1、  开发者测试开展的范围

当前业务团队内质量看护有多种手段,如:手工验证、集成验证、冒烟测试、性能测试、压力测试等,既然有这么多质量验证手段来看护质量,那么根据测试分层的原则,开发者测试看护的范围必需要明确下来

测试分层(明确开发者测试的看护范围)

开发者测试以开发为主导,有着与其他质量防护体系鲜明不同的测试对象,它以白盒测试为主,兼顾系统测试/整体测试,处理测试的最下层。那么在业务团队内,各个模块测试占比存在差异,则需要根据其具体的业务诉求,制定相应的测试策略,千万不能一刀切,所有业务团队采用同一种测试策略。基于已制定好的测试策略,则开发者测试的看护范围也就明确下来了,毕竟开发者测试不能解决所有的质量问题。比如说:模块的基本功能类问题、典型场景类问题,接口层内部逻辑问题,模块间接口交互类问题等等,这些都是属于开发者测试看护范围。

应用举例:

UT(单元测试):可看护的范围包括边界值问题、空指针或赋值错误,内部业务逻辑问题等等。

MST(模块集成测试):可看护的范围包括模块内业务功能问题,单流程异常问题,内存相关问题等等。

ST(集成测试):可看护范围包括模块间接口应用问题,典型场景类问题,特别是基本功能类问题,通过开发者测试的集成验证,确保不流入测试验证环节,更不能产生阻塞测试验收的问题。

除了这些正向制定的范围以外,还一种措施可以采用,那就是逆向分析已流出的问题,总结哪些是开发者测试环节应该看护的问题,纳入开发者测试的看护范围。

2、  开发者测试的理念与文化

在开发者测试开展前,需要让待开展的业务有足够的认识,需要他们认同开发者测试的价值,能够积极参与,而不是消极应对。如果团队不理解开发者测试的价值或方法(如:测试是测试人员的职责),一定会认为开发者测试会给团队带开额外的工作量,甚至认为是加重负担,浪费人力)。

可想而知,有些团队一定会将开发者测试的代码当前是非交付代码,尤其是在团体类交付类代码非常占用人力的背景下,开发者测试的交付一定会被当成是政治任务(应对代码覆盖率),反正测试团队也不会直接验收开发者测试的质量。这说明开发者测试还团队内还没有达成共识,没有形成开发者测试文化,团队内的代码质量看护依赖测试团队的验证或自动化流水线,在这种文化背景下,业界问题发现占比(转测试前:转测试后=7:3)是遥不可有的愿景。

3、  开发者测试的技术成熟度

当前开发者测试在业界已有比较成熟的经验,如:对于C/C++类的代码,测试框架有Gtest/Gmock/mockcpp等开源框架,对于内核代码,也有Kunit等轻量级内核自集成的框架,对于Java类的代码,也有Junit等开源框架,对于python等其他语言类的也有相应的测试基础框架。按理来说,开发人员应该可以很简单的根据自身业务选择对应的测试框架开展开发者测试。但实际上,我们事先评估下目标团队开展开发者测试,这些框架的应用成熟度是否满足了,如果还不够,需要开展赋能,增强业务团队的技术成熟度,否则,强行推行开发者测试在业务团队落地,可能会出现输出测试用例质量不高的情况。

除了框架应用的技术,还有一个重点就是业务代码的可测试性,如果业务团队的依赖不合理,代码架构不合理,甚至无法构造输入,无法检测输出等等,都会导致开发者测试无法开展下去,即使在开展,也是事倍功半。

4、  工具平台的成熟度

这些所说的工具平台不是指前面提到的基础测试工具,则是指业务团队内需要使用的工具,主要分为两类:其一是业务场景测试下需要应用的工具;其二是用例执行与集成用例的工具。前一类可以是基于基础测试工具(如:gtest),开发团队可以对其进行二次封装/适配,输出一套自己业务适合的测试工具,这样测试时才会事半功倍。如果能够自行开发测试工具或复用其他团队的测试工具,也是一种不错的选择,比如说:在存储产品领域,开发一个模拟IO下发的工具,或者是DT Fuzz工具等。如果只是一味的想着拿来主义,也许其他人的工具并不适配自身团队。后一类工具,决定着用例的执行效率,如果没有好的用例集成与执行工具,开发者测试效率会迟迟提不上来。

当然,一定会有人提出异议,在没开展开发者测试之前,怎么先开发工具了?其实,磨刀不误砍柴功,在开展开发者测试前,把这些前提条件准备好,开发者测试才会顺利开展,获得正向收益。至少需要在开展开发者测试过程中,需要准备好上述工具,提升开发者测试工具平台的成熟度。

5、  开发者测试的组织

开发者测试需要长期演进,除了各业务团队输出开发者测试用例外,在落地过程中,还会涉及很多关键性的基础工作,包括但不限于:开发者测试环境部署,测试框架的搭建、维护及优化、开发者测试用例的编译、调试及运行效率的提升等等,还有一系列工程化的部署与开发者测试规范的制定等。这些都是需要组织来支撑的。

待补充

标签:10,看护,业务,---,开发者,测试,开展,团队
From: https://www.cnblogs.com/zhaozg/p/17675859.html

相关文章

  • 新人笔记-集合1.0
    importjava.util.ArrayList;publicclassDemo01{publicstaticvoidmain(String[]args){//publicArrayList()创建一个空的集合对象//ArrayList<String>a=newArrayList<>();效果和下方相同ArrayList<String>a=newArrayList&l......
  • day02-变量
    1、变量的概念在我们生活中,提到一个人或者一个物体,会有一个名字来称呼它;那我们称呼一个人,我们不会叫一个人,而是喊他的名字,比如张三是这个人的名字 同样的,在计算机语言中,也是如此,我们会有很多数据或者对象,比如年龄18和名字张三那我们就需要存储这些数据或者对象,并且还要起个......
  • ARTS打卡---第三周
    Algorithm力扣中等题:77. 组合 https://leetcode.cn/problems/combinations/解题思路:标准的DFS模版题,查看与回溯即可解决。Review未完成。Tiphttps://www.cnblogs.com/zhaozg/p/17675859.htmlShare暂无......
  • 时间格式化对照表 - yyyy-MM-dd HH:mm:ss
      时间格式化对照表-yyyy-MM-ddHH:mm:ss时间格式化对照表仅供参考标识符含义aAM/PM(上午/下午)A0~86399999(一天的第A微秒)c/cc1~7(一周的第一天,周天为1)cccSun/Mon/Tue/Wed/Thu/Fri/Sat(星期几简写)ccccSunday/Monday/Tuesday/Wednesda......
  • rocket集群环境搭建-主从集群
    1.准备环境搭建2主2从的异步刷盘的集群,使用conf/2m-2s-async下的配置文件。机器nameserver部署broker部署192.168.19.132部署192.168.19.133部署......
  • 笔记4- vivado simulation 使用
    1、创建激励测试文件输入激励代码1`timescale1ns/1ps23moduleled_sim();45regclk;6regrst_n;78wire[3-1:0]led_out;910parameterCLK_CY......
  • 天蝎软件-操作系统 课程笔记(更新中)
    Windows介绍Windows版本PC(常用)Server(常用)Windows常用命令系统命令的本质一个独立的程序,调用已经储存在目录里的程序,如果改变文件名字,将找不到这个程序环境变量Cmd通过环境变量来找到命令对应的程序。在Windows系统中,用来指定可以在Cmd中运行的命令所对应的程序所在......
  • 3、运算精度的选择(P106)
    1、fp16和fp32有什么区别?FP32(单精度浮点数)和FP16(半精度浮点数)是两种不同的浮点数表示方式,它们在精度和存储空间上有显著的区别。下面是它们的主要区别以及一个示例来说明这些区别:精度:FP32:单精度浮点数使用32位来表示一个数,其中包括1位符号位、8位指数位和23位尾数位。它具有......
  • 使用mount -t cifs 挂载windows共享目录
    <p>1.在windows10上新建共享文件夹,比如VMF,然后设置该文件夹的属性,</p><p>VMF文件夹-->属性-->共享-->设置共享-->添加用户(可以新增用户,设置密码)设置读写属性。</p><p><imgsrc="https://img2023.cnblogs.com/blog/1736150/202305/1736150-20230512141028798-1883433899......
  • 基于微信小程序的图书馆座位预约系统设计与实现-计算机毕业设计源码+LW文档
    选题意义: 该系统可以监测到图书馆座位的使用情况,便于学生查询图书馆的分布、座位多少、是否空闲等基本数据。学生可以通过手机或者计算机等终端进行座位预约,方便快捷。对于占座现象,学生可以通过系统进行反馈,方便图书馆管理人员及时处理。基于微信小程序的图书馆座位预约系统的使......