`

为什么软件开发者不适合测试他们自己编写的软件

阅读更多
为什么软件开发者不适合测试他们自己编写的软件

软件测试不是一个简单的流程,它特立独行,并贯穿于整个软件开发过程。我们常常听到这样的问题:“为什么软件的开发者们不适合测试他们自己开发的软件?”事实上,软件开发人员测试自己所开发软件的行为就如同学生在完成考试试卷后再对自己的成绩进行评估。这种做法毫无意义,为了加深此认识,让我们来深层次的分析这背后隐藏的问题。

开发人员对其所写代码有主观认同感

人们通常会对自己所犯错误视而不见或者拒绝承认。同样的,在软件开发领域,程序员们在耗费大量心血编写代码,完成工作之后,他们会固执的认为自己编写的代码会运行良好。他们对待其开发的应用程序就像对待自己的孩子一样,拒绝承认自己的孩子有什么不好的地方。这就是为什么软件开发人员难于发现和改正自己的错误。

开发人员对软件过于乐观的心态

开发人员进行开发的目标是将软件所需的功能完美的展现出来。当程序的功能运转正常的时候他们会自我感觉良好,因为他们的主要目标就是功能二字。而测试人员与他们想的却不一样。测试人员通常会从不同的角度切入进软件内部,打破程序员们惯有的思维方式。他们的目标是通过各种不同的测试用例把软件潜在的不足之处引发出来。

开发人员对需求易产生偏差与混淆

开发人员专注于程序的功能,并在现有需求目标的指引下开展工作,当新的需求目标出现之后,他们会与现有的需求目标混淆并产生业务逻辑层或者功能性上的bug。需求作为程序员考虑功能的唯一标准,因此如果当他们在需求的理解上出现了偏差的话,他们在测试应用程序上就会不得要领了。而软件测试人员会从业务的角度来看待需求,他们能够辨别哪些需要的东西完成了,而哪些还没有。

开发人员擅长修复但不擅长拆解

开发人员只擅长代码的功能测试和代码修复,如果程序运行正常,那么他们的测试就结束了。而事实上,测试人员的主要工作是将应用程序拆解,从每个小块之中找寻那些不易发现的bug,并帮助开发人员了解那些特定的功能应当是怎么样的。

开发人员缺乏对软件后续开发的展望

大多数开发人员专注于特定的任务或功能,他们从需求所选择的那个点来完成功能的设计,因此在测试的时候他们也只会从这个点来进行考量而不会考虑功能设计的灵活度。而测试人员会在功能设计方面考虑得更宽,在一个或者多个目标完成时,他们都会在大脑里呈现心目中应用程序的完整样子,这有助于在更早的时间更轻松的完成后续功能的设计。

开发人员缺乏测试经验和方法

软件测试人员通过平时接触的常见错误和应用程序逻辑积累了丰富的知识和经验。由于在测试上的长期锻炼,测试人员对于找寻bug和程序测试更加得心应手,而开发人员只擅长修复已拆解的应用程序而不擅长拆解。测试需要通过有专业的测试能力的软件测试人员才能完成,因为他们具备了掌握软件测试要领、思想的能力以及对软件测试工具、方法使用的理解,而这些是需要长时间实践才能熟悉的。

这就是为什么我们需要一个测试团队,我并不是说开发人员做测试会很糟糕,我只是为了说明对比真正的测试人员还不够熟练和有经验。术业有专攻,每个人都有自己擅长的领域。许多开发人员认为测试人员是在故意给他们找碴挑刺,而事实上,这些bug都是在开发过程中所遗留的不易察觉的问题。请记住,测试人员永远是开发人员身边最好的朋友!

本文翻译自c-sharpcorner.com,原文地址

1
1
分享到:
评论
1 楼 windlike 2015-08-05  
所以才要有测试的说,可是目前国内软件测试人员的水平真是。。。哎。。。

相关推荐

    网上商城软件系统—软件测试

    通过软件测试的实践训练,深刻理解和掌握软件测试和软件测试过程的基本方法和基本技术,熟练掌握黑盒测试、白盒测试的测试用例的设计,同时进一步提高对于复杂程序的编写能力,为将来从事实际软件测试工作和进一步...

    软件系统压力测试报告文档

    报告目录中,引言部分对软件系统压力测试报告文档的编写目的和系统概述进行了介绍。其中,项目名称、总体目标和技术目标等信息对软件系统的整体理解和评价具有重要意义。 系统概述中,项目名称是软件系统的基本信息...

    软件测试网络文章集合

    软件测试的前途不可估量的,学习掌握软件测试方法与测试技术并能应用到测试过程中是非常重要的,应用好的测试方法与测试技术进行测试对于一个测试人员来说是十分重要的,制定好的测试计划、测试大纲与测试用例同样 ...

    软件测试用例范文

    软件测试用例设计与实施 软件测试用例是软件测试中最重要的一步,为了确保软件的质量和稳定性,测试用例的设计...本文提供了测试用例设计和实施的详细步骤和示例,旨在帮助开发者和测试人员更好地理解和实施软件测试。

    6_软件系统测试模板.doc

    本文将详细介绍软件系统测试模板的各个组件和要素,以帮助开发者和测试者更好地理解和实施软件测试。 1. 操作手册编写规范 操作手册编写规范是软件系统测试模板的基本组件之一。它规定了软件测试的基本原则和要求...

    软件测试的类型方法

    单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。 单元测试工具: 白盒测试: 白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过...

    软件工程-软件测试报告.doc

    测试工具:个人笔记本电脑 2 项目背景 软件系统名称:客户消费积分管理系统 项目任务提出者:1203BJ五组 项目开发者:1203BJ五组 测试概要 1 测试用例设计 本次测试用例设计主要采用黑盒测试方法,功能模块及集成...

    非常实用的软件测试综合资料库

    事实上,在许多机构并不鼓励其程序员为代码编写文档,也不鼓励程序员将代码写得清晰和容易理解,相反他们认为少写文档可以更快的进行编码,无法理解的代码更易于工作的保密(“写得艰难必定读的痛苦”)。 ⑧、软件...

    软件测试 第一章

    在开发大型软件系统的过程中,面对着极其错综复杂的问题,软件开发者的主观认识不可能完全符合客观事实,而且与工程密切相关的各类人员之间的沟通和配合也不可能完美无缺,因此,在软件生命周期的每个阶段不可避免地...

    软件测试入门教程知识点以及测试技巧知识点总结.docx

    开发者编写针对这些小块代码的测试用例,确保它们在隔离状态下按预期运行。单元测试的目标是快速发现问题,促进模块级别的重构,并支持持续集成过程。单元测试通常由开发人员自己完成,使用自动化测试框架进行。 ...

    Junit单元测试Junit单元测试Junit单元测试Junit单元测试

    2. 提高测试覆盖率:Junit提供了一个统一的测试框架,允许开发者测试所有的类和方法,从而提高测试覆盖率。 3. 提高代码质量:Junit提供了一个自动化的测试框架,允许开发者快速发现和修复代码中的错误,从而提高...

    软件设计文档SDS.pdf

    6. 软件设计文档的作用:软件设计文档可以作为软件开发和维护的参考依据,帮助软件开发者和维护者更好地理解软件系统的结构和行为。同时,它也可以作为软件项目的文档记录,提供软件项目的开发和维护历史。 7. 软件...

    软件需求规格说明编写指南.rar_编写要求和方法_航空产品项目_软件需求_软件需求文档_软件需求说明

    它是用户和开发者相互理解的基础,是软件设计和编码的依据,也是软件测试和系统综合的基准。 软件需求规格说明要从以下各方面规定软件产品的所有外部特性: —— 功能,即该软件产品能做什么; —— 外部接口,即该...

    测试分析报告(GB8567——88)1.doc

    测试分析报告的编写目的在于提供详细的测试结果和发现,以便软件开发者、用户和其他相关人员了解软件系统的性能和缺陷,并对软件系统的开发和实施提供有价值的信息。 1.2 背景说明 测试分析报告是根据软件系统的...

    《暗战亮剑-软件漏洞发掘与安全防范实战》┊王继刚[.PDF]

    建立软件漏洞发掘环境2.1 虚拟机的安装2.1.1 虚拟机的概念2.1.2 为什么选择虚拟机2.1.3 VMware的基本使用2.2 IIS的安装2.3 用XAMPP建立网站环境2.4 软件漏洞发掘的基本步骤2.4.1 提供源代码的情况2.4.2 没有源代码的...

    2020一线大厂测试工程师面试题(吐血推荐).doc

    首先,为什么需要在团队中开展软件测试工作?这是因为没有经过测试的软件很难在发布之前知道该软件的质量,就像ISO质量认证一样,测试同样需要质量的保证。在测试过程中,发现软件中的问题,及时让开发人员知道并...

    图书管理系统下载需求的编写是为了研究图书管理系统软件的开发途径和应用方法。同时它也是进行项目策划、概要设计和详细设计的基础,是维护人员进行内部维护,信息更新,验收和测试的依据。本需求的预期读者是与图书管理系统软件开发有联系的决策人,开发组成人员,扶助开发者,支持本项目的领导和公司人员,软件验证者。

    需求的编写是为了研究图书管理系统软件的开发途径和应用方法。同时它也是进行项目策划、概要设计和详细设计的基础,是维护人员进行内部维护,信息更新,验收和测试的依据。本需求的预期读者是与图书管理系统软件开发...

    一个专为android 开发者制作的tcpdump 抓包工具.zip

    测试框架和工具则协助开发者编写和运行单元测试、集成测试及性能测试,确保软件质量。 版本控制与协作: 通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化...

    在软件测试中软件特征功能测试过程分析

    功能测试通常使用某种自动化测试框架编写,这样开发者可以从自动化的功能测试中获得快速反馈,为下阶段新在软件测试中软件特征功能测试过程分析 功能测试之乐: 功能测试定义了产品的业务需求,通过它业务人员可以...

    编写软件测试用例的一点小体会

    用例一般是由软件开发者和最终 编写软件测试用例的一点小体会 软件测试 每个用例提供了一个或多个场景,该场景揭示了系统是如何同最终用户或其它系统交互的,从而获得一个明确的业务目标。用例要避免技术术语,...

Global site tag (gtag.js) - Google Analytics