我所理解开发和测试人员的关系

概述

开发和测试,起源本没有分家。社会精细化,分工出现,两者渐行渐远。开发人员,创造世界的人,在建造高楼大厦的时候,必会埋下隐患。测试人员,世界的验证者,以挑剔的眼光,审视眼前需要验证的对象。

代码是开发人员的产出;bug是测试人员的产出

人,被人盯住挑自己辛苦创造的东西的毛病时,如芒在背,总是不喜欢这样的感觉。
      于是,开发和测试,逐渐对立起来。
      人在分工后,思维方式也变得不同(测试应当是“证坏”非“证好”),所以,开发人员看待问题的角度和测试人员诸多时候不能合轨。
      于是,矛盾必然产生。

可是,分工导致个人只不能兼顾,所以总需要其他人配合才能完整做好一个事情。
      所以,开发和测试,如同左右手,实则分不开。

幼童一起玩耍,一会打起来一会又和好,开发和测试如同幼童。
      看待问题,则如看待孩子们,或打或和,其实没有什么,只要互相促进,把事情做好,不意气用事即可。

这里,要求的是一颗平常心,合理看待矛盾,对事不对人即可。
      对事不对人,说起来容易做则难。没有包容之心,没有平淡之心,很难做到的。这需要不断修炼,不断提高自己的素养,需要因对方而异,需要悟通人生。

开发与测试关系

软件开发是生产制造软件;软件测试是验证开发出来软件的质量。类比传统加工制造企业,软件开发人员就是生产加工的工人,软件测试人员就是质检人员。
关系应该是:
1、没有软件开发就没有测试,软件开发提供软件测试的对象。
2、软件开发和软件测试都是软件生命周期中的重要组成部分
3、软件开发和软件测试都是软件过程中的重要活动。
4、软件测试是保证软件开发产物质量的重要手段。

开发与测试的分工

                                                                 图1 开发和测试人员的分工

工作内容

从图1可以看出,开发和测试是一个上下游的关系。

具体而言,开发人员主要做这几件事情:

第一,对软件需求说明书进行详细评审,弄清楚要开发一个什么样的软件。

第二,编写软件详细设计、单元测试和集成测试规程文档。软件详细设计文档是最重要的文档,在里面,要写清楚自己程序的流程、函数设计、异常保护考虑等。在动手写程序之前,一定要将软件详细设计文档写好,等评审通过了再写代码。

第三,编写代码,用程序实现软件的功能。很多人认为的软件开发就是写代码,其实这是一种很狭隘的理解,写代码在整个开发流程中,只占了很小的部分。

第四,程序写好之后,开发人员要对它进行单元测试和集成测试也叫(自测),确保程序的正确性。这里就出现了“测试”二字,但与软件测试所做的“测试”是不同的,他们做的是“系统测试”。等自测通过之后,并且相关文档也写好之后,就可以提交程序版本,供测试人员进行测试了。

相对开发,测试人员主要做这几件事情:

第一,参与软件需求说明书的评审,对软件要实现的功能有一个大致的了解。

第二,搭建测试环境。这个是很重要的,也是比较难的事情。什么是“测试环境”呢?就是说,不管什么软件,都有个运行的条件,如操作系统类型、参数设置及配套软硬件设施等,这些统称为“环境”。为了保证程序功能的正确性,要在软件发布之前,尽量模拟软件实际的运行环境,这就是搭建测试环境时要做的事情。很多软件在正式商用之后出问题,就是测试的时候没有还原现场环境所致。

第三,对软件进行系统测试并输出测试报告。所谓系统测试,就是指将配套的所有软件都运行起来,看一下所有的功能是否正常。当出现问题的时候,要及时和开发人员联系,以修正软件缺陷。

第四,指导现场人员安装软件程序,并在必要的时候亲自出差到现场去安装软件。因此,测试人员也可能会经常出差的。

“三足鼎立”

开发人员的主要任务是用程序完成软件需求,而测试人员的主要任务则是保证程序功能的正确性,他们做事的依据都是需求开发工程师编写的需求说明书。

在实际的软件开发项目中,需求开发工程师、软件开发工程师和软件测试工程师之间的交流是很频繁的,如图2所示。

图2 三类角色的“三足鼎立”

就像“三国时期”的魏蜀吴“三足鼎立”一样,需求开发工程师、软件开发工程师和软件测试工程师所站的立场不同,对软件的认识也不同。大家需要相互讨论、协商,挑选出一套最佳的软件实现方案。

时间: 2024-10-11 10:47:17

我所理解开发和测试人员的关系的相关文章

面向 Java 开发与测试人员的远程执行 Linux/UNIX 系统上任务的框架 -- sshxcu

软件开发与测试人员常常会在远程 Linux/UNIX 系统上执行命令或脚本,有时还会有批量执行任务的需求.常见的办法是通过本地工具(例如 Putty)连接远程计算机,输入命令执行,但是当遇到需要集成这些任务到代码或者开发.测试框架中时,往往就没有很好的解决方案了.sshxcute 就是这样一个框架工具集,它基于 JSCH 构建,允许工程师利用 Java 代码通过 SSH 连接远程批量执行 Linux/UNIX 系统上的命令或者脚本,同时加入了判断成功与否,取回输出等多种实用功能.sshxcute

开发人员与测试人员的那些事

关于开发人员和测试人员的关系,人们阐述了很多,讨论了很多,争论了很多.而貌似一旦这两者坐在一起,对峙便开始了,两者间的争论多于相互认同.显然,这不利于实现两者合作的目标——向用户提供价值.(推荐学习零基础学习软件测试基础篇) 下面我们来分析一下其中的原因: 史前时期 在最开始,不存在测试人员, 只有开发人员.软件开发人员和软件项目的其他人员比起来并没有特别大的不同.从经济角度考虑,专门成立测试人员是行不通的:开发软件的时间如此昂贵,为测试人员分配时间显得很浪费. 没有专门人员检查工作,软件开发人

漫谈测试人员和开发人员关系

此文已由作者夏君授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 从事软件测试已有多年,参与过很多项目,合作开发不少,谈起测试和开发的关系,说起来比较微妙,有时候能和睦相处,有时候矛盾重重.其实矛盾的根源,无非就是BUG,但起源于BUG,也终止于BUG. 首先,来看看在整个软件产品的生命周期中,开发和测试人员对应不同的阶段对应不同的工作职责,如图所示: 从上图可以看出,测试和开发的工作范畴不一样,对于流程及业务多少会有理解偏差,所以合作上存在矛盾是无可避免的.相信即使针对

测试人员在敏捷团队中扮演的角色

对于开发模式,现在大部分互联网公司都完成了从传统瀑布开发模式到敏捷开发模式的转型,这种转型相对传统的测试人员来说,不论是在角色定位还是在技能栈方面都提出了更大的挑战,那么测试人员应该如何应对呢?下面根据我平时工作的一些总结体会来说说测试人员应该发力的方向,供大家参考: 角色 1: 培训人员 在转型初期,测试人员应该针对开发人员的薄弱环节(即业务技能)进行培训和指导.由于工作任务的差别,开发人员对负责的模块业务和具体实现细节非常了解,但是对周边模块或者业务并不是非常清楚,主要体现在配置和使用方面.

为什么开发与测试老掐架呢

让我们思考几个常见的问题: 软件测试的目的是什么? 开发人员能否构建出没有Bug的完美软件? 测人人员和开发人员是什么关系? 软件测试能否保证软件质量? 先闭目冥想五分钟吧,然后可以尝试着回答上面的问题. 计算机先驱 Maurice Wikes 回忆起 1949 年他在英国剑桥工作的情形,在拖着打孔纸带上楼给雏形计算机 EDASC 装载程序时,他看到了自己的未来: 我强烈的意识到,生命中剩下的好日子,都将耗费在给自己的程序找错误上头. Maurice Wikes告诉我们,没有完美的软件. 我在我

我眼中的开发和测试

在IT行业,开发和测试之间的关系一直是一个大家津津乐道的话题.在整个软件产品的生命周期中,开发和测试人员所做的工作分别对应不同的阶段,如图1所示. 图1 开发和测试人员的分工          工作内容 从图1可以看出,开发和测试大致是一个上下游的关系. 具体而言,开发人员主要做这几件事情: 第一,对软件需求说明书进行详细评审,弄清楚要开发一个什么样的软件. 第二,编写软件详细设计.单元测试和集成测试规程文档.软件详细设计文档是最重要的文档,在里面,要写清楚自己程序的流程.函数设计.异常保护考虑

答读者问(7):有关实习、毕业论文及软件开发和测试的关系等问题

最近收到一位研究生朋友的邮件,让我想到自己研究生毕业之前,也曾有过很多的疑惑,希望得到过来人的解答.互联网不仅是我们最好的老师,同时也是最好的桥梁.我们都要感谢并善于利用它. 闲话不说,言归正传.邮件原文如下: 周前辈,您好 我是XXX研究生,我叫XXX.专业是信息与通信工程.现在研二,过了暑假马上就研三了.我在CSDN上无意间看到您的一些文章,写的很好,感触很多.所以就一直在关注您! 下面我简单说下我的情况,我本科和研究生到目前,还没有工作过,也没有实习过.这个暑假,我找了一个实习,是XXX公

测试未来发展,测试人员的发展方向,测试趋势

最近在脉脉上看到某某公司斩掉测试团队啊,某某开发嘲讽测试人员啊╮(╯▽╰)╭,转个测试行业看法聊以自慰,至少现在还有碗饭吃. 测试行业的趋势有这么些: 功能测试依然存在,但是会变得越来越难找工作 功能测试不可能消失,即使Google这种高技术的公司,也依然存在功能测试,所以功能测试肯定不会消失,但是工作一定会越来越难找.国内的企业招聘都是从众心理,大家都觉得BAT的招聘是业界的方向,所以现在都开始要求测试人员必须会各种编程语言,实际上他们也不知道自己要什么,入职后也可能还是点点点,但是由于他们都

【敏捷测试】一个测试人员在参与敏捷测试的经验分享(2)

一个迭代开启时,PO划分完本次上线的功能模块,让相关开发测试等人员参加需求评审前的步骤: 1.PO和需求人员确定好本迭代需要完成的功能模块: 2.根据功能模块划分story: 3.每个story编写相关的AC条件: 4.以邮件的形式发送给开发和测试人员进行需求评审: 5.需求评审结束之后,PO再以邮件的形式通知到开发和测试人员参加PO讲story会议,此时敏捷小组的SM负责领取本次sprint可以完成的stroy. 名词解释: PO:Product Owner 产品负责人 AC:Acceptan