论软件开发和软件测试的工作职责及工作关系返回>>

软件开发行业,软件开发和软件测试之间的关系一直是一个大家讨论的热点。在整个软件产品的生命周期中,软件开发和软件测试是一个上下游的关系而不是对立关系。

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

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

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

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

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

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

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

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

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

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

软件开发人员的主要任务是用程序完成软件需求,而软件测试人员的主要任务则是保证程序功能的正确性,他们做事的依据都是需求软件开发工程师编写的需求说明书。在实际的软件开发项目中,需求软件开发工程师、软件开发工程师和软件测试工程师之间就像“三国时期”的魏蜀吴“三足鼎立”一样,需求软件开发工程师、软件开发工程师和软件测试工程师所站的立场不同,对软件的认识也不同。大家需要相互讨论、协商,挑选出一套最佳的软件实现方案。

在完成软件研发的过程中,软件开发和软件测试之间的关系非常的“微妙”,时而合作如亲人,时而争论如敌人。我认为,为了做出高质量的软件产品来,软件开发和软件测试需要做到:

第一,共同参与软件需求文档的评审,对程序要实现的功能有一个清晰的认识。如果对需求有疑问,一定要当面提出来。

第二,在对需求达成共识之后,软件开发人员严格按照软件需求文档上的描述来编写程序,如果在程序实现上有困难,要提出来和大家讨论。软件测试人员严格按照需求的描述来验证程序的功能,如果发现程序实现与需求不符,要及时与软件开发人员联系,大家共同将程序问题解决掉。

第三,如果软件开发时间紧张、人手不足,那么在软件开发人员编写程序的时候,软件测试人员可以帮忙把软件测试环境搭建好。等程序编写好之后,软件开发人员便可以立即进行单元软件测试和集成软件测试。

第四,不管是需求有问题,还是程序有缺陷,大家都可以指出来。但注意要就事论事,不可将软件问题上升为对特定个人的人身攻击。

第五,虽然是各司其职,也许还身处不同的部门,但大家的共同目标是一致的:做出让客户满意的、高质量的软件产品。软件开发和软件测试人员要为了这个目标,一起努力。

一个软件产品的成功需要从各个环节上去把握,因此用人的左手和右手的关系来比喻软件开发和软件测试之间的关系更为恰当。好的软件产品需要软件开发和测两手抓,两手都要硬。

陕西弈聪软件信息技术股份有限公司
电话:13679229477    15029073577
地址:陕西西安曲江会展国际F座15层