博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开发团队里是否需要测试人员?
阅读量:2118 次
发布时间:2019-04-30

本文共 1335 字,大约阅读时间需要 4 分钟。

最近在看“”,里面有个非常有名的“”,其中有一个问题是“你的团队里面是否有测试人员”,如果有的话就加分,表明团队对产品质量比较重视。

但是在现在的软件开发团队中是否真的需要测试人员呢?

如何替代测试人员的工作

我们先来看一下测试人员的工作是什么?测试人员的工作是尽可能的找出bug,然后提交给开发人员进行修复。如果团队里面没有测试人员,开发人员要如何找bug呢?

首先我们来看测试人员做的最多的测试——功能测试,对于功能测试我们有什么办法可以来替代呢?

单元测试

单元测试是开发人员找出代码中潜在bug的自我救赎行为,相比手工测试功能,开发人员一般更倾向于写代码来测试功能代码,即所谓的单元测试。只要能想到相应的测试案例,就能写出单元测试,可以测试包括正常,异常,分支,边界等情况下的问题。

集成测试

单元测试虽然可以找到一些bug,但还不能完全替代测试人员的工作,单元测试只能测试细粒度级别的功能,比如某个方法的功能,如果需要对几个功能点一起测试的话,单元测试就满足不了了。但没有关系,开发同样可以用代码来写测试,这种粒度稍大的测试就是集成测试,比如测试一个后端的api,验证输入参数和输出结果,这个api的真正功能可能是后端调用数据库等一系列的操作,你一个测试方法就可以把这个api的各个功能点串起来一起验证。

UI测试

还有粒度更大的测试,一个页面上的按钮的点击可以看成是UI测试,相对于集成测试,这个测试的范围涉及了前端和后端,测试包括验证前端的页面是否正确,到点击按钮后触发的后端功能是否正确。现在市面上有很多端到端的测试框架,涵盖各种语言和浏览器。

性能测试

除了功能测试,测试人员还会做一些性能测试,同样地,开发可以通过代码或者脚本来调用性能测试工具来对系统进行性能测试。

持续集成

如果不想像测试人员一样每天做重复性的劳动,就可以将以上那些测试代码放到持续集成上面,让机器帮你运行,想象一下,几百上千个测试,如果手工跑的话可能要花不止一天的时间,而通过持续集成,可能在一天就能跑完好几轮所有测试。

不能替代的测试工作

如果我们做到了以上这些,是否就可以完全代替测试人员了呢?其实有些测试是机器无法测试的,比如网页的样式,机器只能判断是否有显示,但无法判断显示的是否好看。还有一些交互效果,也只有通过人工才能识别效果是否正确,还有其他各个领域的测试,目前是不能通过代码或者机器来替代的。

高级测试工程师

可能有人会说上面提到的用代码来执行测试的工作,高级测试工程师也能做。其实我觉得软件开发和软件测试到了越高的位置,技能重合的领域就越大,两者都同时会写代码,做测试,可能还会部署,会运维,这个时候我觉得不如就叫高级工程师好了,或者全栈工程师。

结论

说了这么多,所以结论是什么呢?

具体情况要具体分析,不能一概而论说完全不需要测试人员,团队不需要测试人员的条件是:

  • 团队的开发人员可以写的单元测试,集成测试和UI测试
  • 没有太多需要人工测试的功能,比如团队开发的是常规的web系统或者纯后端应用等
from:http://zhaozhiming.github.io/blog/2016/06/12/do-we-need-tester-in-our-team/

转载地址:http://hqeef.baihongyu.com/

你可能感兴趣的文章
Ubuntu解决gcc编译报错/usr/bin/ld: cannot find -lstdc++
查看>>
解决Ubuntu14.04 - 16.10版本 cheese摄像头灯亮却黑屏问题
查看>>
解决Ubuntu 64bit下使用交叉编译链提示error while loading shared libraries: libz.so.1
查看>>
VS生成DLL文件供第三方调用
查看>>
Android Studio color和font设置
查看>>
Python 格式化打印json数据(展开状态)
查看>>
Centos7 安装curl(openssl)和libxml2
查看>>
Centos7 离线安装RabbitMQ,并配置集群
查看>>
Centos7 or Other Linux RPM包查询下载
查看>>
运行springboot项目出现:Type javax.xml.bind.JAXBContext not present
查看>>
Java中多线程向mysql插入同一条数据冲突问题
查看>>
Idea Maven项目使用jar包,添加到本地库使用
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>