我们暂且不去评析软件测试在当今it公司中的地位,只说大家对软件测试的认识。基于我短暂的经验,我总结出软件测试几个最常见的误区,供大家研究:

测试简单,对技术要求不高

这是对测试最通常的评价,如果一个开发人员转做测试,那么别人通常认为,他是不是开发能力不够,或者是他是不是不愿意吃苦之类。我们先引用Google的 Patrick Copeland对一个卓越的测试员所应有品质的评论:

“那是心态与激情。从我所做过的100个访问来看, “卓越”可以被提炼为:1)一种发现问题的独特敏感性;以及2) 伴随这种敏感性产生的对于测试的激情。换句话说,他们喜欢测试而且善于做这件事。他们也明白测试带来的挑战往往等于或者大于编程所带来的挑战。一个拥有测试基因与正确态度的测试员总能找到工作。他们是金子。”

很多人都认为软件测试就是安装和运行程序,点点鼠标,按按键盘的工作。这是由于不了解软件测试的具体技术和方法造成的。随之软件工程学的发展和软件项目管理经验的提高,软件测试已经形成了一个独立的技术学科,演变成一个具有巨大市场需求的行业。软件测试技术不断更新和完善,新工具,新流程,新测试设计方法都在不断更新,需要掌握和学习很多测试知识。所以,具有编程经验的程序员不一定是一名优秀的测试工程师。软件测试包括测试技术和管理两个方面,完全掌握这两个方面的内容,需要很多测试实践经验和不断学习精神。

在我个人理解中,测试反而对技术要求更高。这里的"高"不是说一定多么精于某一门技术,而是需要更广的技术能力。比如简单的功能测试,我们需要需求分析能力和业务能力,当然还有相应的测试技术;进行白盒测试,我们需要拥有一定的代码阅读能力和编写能力;安全性测试,我们需要一定的网络安全知识和数据库分析能力等等。

测试无聊

一件单调且无聊的事,作为测试的一个传闻,频繁见诸于主流媒体文章中,这些文章把测试者比作软件产业的装配线工人。而事实上,测试工作每天都呈现给我们新的令人兴奋的挑战。Michael Bolton(注:DevelopSense校长,Rapid Software Testing的作者之一)的一段精彩摘引很好的概括了这一点:

“测试是一件我们以寻找新信息为动机所做的事。测试是一个探索、发现、调查、学习的过程。当我们以评估,或者认知预料之外的问题为目的地配置、操作、和观察一个产品的时候,那么我们在测试。当我们尽力去寻找产品及其设计的程度和限制的时候,当我们被那些尚未回答甚至尚未问过的问题所驱使着的时候,我们在测试。”

测试人员与开发人员很难相处

这个论调的提出貌似很有普遍性,而实际上就我这几年的经验,无论做开发还是做测试,都没有与任何的同事产生难于相处的问题,反而都成了很要好的朋友。尽管测试与开发在工作性质上有着“形”的区别:开发人员是在构造项目,而测试人员是在破坏开发人员已构建好的项目;而实际上,本质并不冲突,都是为了项目的“成”和质量服务的。至少我认为在大部分公司中,这个论调是不成立的。

总有一天,机器自动化将代替手工测试

这是业界很多人所津津乐道的话题,记得曾经去某个外包公司谈合作,其经理很得意的告诉我们他们的目标就是未来以自动化取代手工测试,每个项目只需要一两个自动化测试工程师就ok了。

当然,我不否认自动化测试的作用,甚至我自己也在津津乐道于测试框架开发等工作,但是自动化代替人工测试?恐怕我得说“NO”。不是难于实现,而是根本不可能。

软件的最终使用者永远是人,所以只有人才能真正了解人的需求。例如用户体验,common sense等等,这是机器永远不能代替的。

测试自动化常被用来解决庞大的问题。因为要做的太多, 这庞大的范围使得自动化脆弱而不可靠。有些特定的事情自动化擅长而有些特定的事情人更擅长,这样看上去一个结合二者的方法也许更好. 我想要的是自动化使我的,作为一个人的,工作更加简单。自动化更擅长分析数据与注意模式。 它并不善于确定相关性和判断调用。 幸运的是人类擅长判断。

软件开发完成后进行软件测试

软件项目要经过以下几个阶段:需求分析,概要设计,详细设计,软件编码,软件测试,软件发布。据此,认为软件测试只是软件编码后的一个过程。这是不了解软件测试周期的错误认识。软件测试是一个系列过程活动,包括软件测试需求分析,测试计划设计,测试用例设计,执行测试。因此,软件测试贯穿于软件项目的整个生命过程。在软件项目的每一个阶段都要进行不同目的和内容的测试活动,以保证各个阶段的正确性。软件测试的对象不仅仅是软件代码,还包括软件需求文档和设计文档。软件开发与软件测试应该是交互进行的,例如,单元编码需要单元测试,模块组合阶段需要集成测试。如果等到软件编码结束后才进行测试,那么,测试的时间将会很短,测试的覆盖面将很不全面,测试的效果也将大打折扣。更严重的是如果此时发现了软件需求阶段或概要设计阶段的错误,如果要修复该类错误,将会耗费大量的时间和人力。

软件发布后如果发现质量问题,那是软件测试人员的错

这种认识很打击软件测试人员的积极性。软件中的错误可能来自软件项目中的各个过程,软件测试只能确认软件存在错误,不能保证软件没有错误,因为从根本上讲,软件测试不可能发现全部的错误。从软件开发的角度看,软件的高质量不是软件测试人员测出来的,是靠软件生命周期的各个过程中设计出来的。出现软件错误,不能简单地归结为某一个人的责任,有些错误的产生可能不是技术原因,可能来自于混乱的项目管理。应该分析软件项目的各个过程,从过程改进方面寻找产生错误的原因和改进的措施。

项目进度吃紧时少做些测试,时间富裕时多做测试

这是不重视软件测试的表现,也是软件项目过程管理混乱的表现,必然会降低软件测试的质量。一个软件项目的顺利实现需要有合理的项目进度计划,其中包括合理的测试计划,对项目实施过程中的任何问题,都要有风险分析和相应的对策,不要因为开发进度的延期而简单的缩短测试时间、人力和资源。因为缩短测试时间带来的测试不完整,对项目质量的下降引起的潜在风险,往往造成更大的浪费。克服这种现象的最好办法是加强软件过程的计划和控制,包括软件测试计划、测试设计、测试执行、测试度量和测试控制。

软件测试是没有前途的工作,只有程序员才是软件高手

由于我国软件整体开发能力比较低,软件过程很不规范,很多软件项目的开发都还停留在“作坊式”和“垒鸡窝”阶段。项目的成功往往靠个别全能程序员决定,他们负责总体设计和程序详细设计,认为软件开发就是编写代码,给人的印象往往是程序员是真正的牛人,具有很高的地位和待遇。因此,在这种环境下,软件测试很不受重视,软件测试人员的地位和待遇自然就很低了,甚至软件测试变得可有可无。随着市场对软件质量的不断提高,软件测试将变得越来越重要,相应的软件测试人员的地位和待遇将会逐渐提高。在微软等软件过程比较规范的大公司,软件测试人员的数量和待遇与程序员没有多大差别,优秀测试人员的待遇甚至比程序员还要高。软件测试将会成为一个具有很大发展前景的行业,软件测试大有前途,市场需要更多具有丰富测试技术和管理经验的测试人员,他们同样是软件专家。这两年来国内软件测试人员的需求不断增大,越来越多的IT企业认识到了软件测试的重要性,这种可喜的现状与发展趋势让笔者对我国软件业的发展重新抱有较大的希望。

不要 “动” 之前的业务逻辑,因为会 “牵一发而动全身”

要 “遵守” 之前的业务逻辑,现有的业务逻辑尽量不要和之前的冲突,为啥呢?

因为啊,一旦按照现在业务逻辑的话,就得把之前的改了,改之前的业务逻辑会非常的复杂,不仅开发需要改代码,而且我们测试要重新再测,所以,不要动之前的业务逻辑。

总结

如果对软件测试有兴趣,想了解更多的测试知识,解决测试问题,以及入门指导,帮你解决测试中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己测试方面学的不够精想要继续学习的,想转行怕学不会的,都可以加入我们

644956177。群内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!

最后让我们每天努力一点点,期待属于你的一飞冲天! 以上是我总结的几个误区,如果你还有其他补充的,那么欢迎留言讨论。

软件测试的几大误区(带你踩坑)相关推荐

  1. 【seata系列】centos服务器带你踩坑搭建seata以及解决MySQL8.0无法启动问题

    目录 准备 配置 registry.conf file.conf 创建相关表和数据库 启动 踩坑 运行 准备 通过github下载安装包:https://github.com/seata/seata/ ...

  2. 快速上手docker-java,示例全网最全,带你踩坑,带你飞

    提前踩坑 刚入项目组,就开始用dokcer-java去干活了,由于之前没接触过,所以就开始全网找资料,于是乎,找了一堆博客,好像都差不多,虽然都能跑起来,但是我的需求并没有得以实现: ​ 无法连接远程 ...

  3. 前端工程不了解?带你踩坑加爬坑。

    文中许多步骤会在运行时报错,从错误中分析需要添加的配置,加深印象以及对所添加的每一行配置的理解. 本文将以 React 为例,带你走一次. 创建目录 mkdir demo && cd ...

  4. .net Core发布至IIS完全手册带各种踩坑

    服务器环境配置 和各位大爷报告一下我的服务器环境 : Windows Server 2012 iis 8 小插曲开始: 运维大哥在昨天给了我一台新的server 0环境开始搭建 . 并且没有安装任何的 ...

  5. Egret 生成 自带EUI 的微信小游戏 踩坑!

    1. 首先,再次被网上一大堆屎一样的资料搞得浪费了我一天时间.各种坑. 2. 本文先讲一种正确的方式,然后再列举坑. 去www.egret.com下载最新的引擎,我的最新版本是5.2.2. 然后就会被 ...

  6. osx php7 imagick,[PHP] MacOS 自带php环境安装imagick扩展踩坑记录 | 码农部落

    前言 最近学习yii2,在搭建环境后,发现在访问contact页面时报错,如下: "Either GD PHP extension with FreeType support or Imag ...

  7. otter 带表情包同步踩坑及解决方案

    otter 带表情包同步踩坑及解决方案 一.事情发生 ​ 在年末22点44分突然收到微信告警otter同步异常告警,channel_id为6的同步channel挂起,而且一直没有恢复,一直在告警 微信 ...

  8. 一口气带你踩完五个 List 的大坑,真的是处处坑啊!

    来自:程序通事 List 可谓是我们经常使用的集合类之一,几乎所有业务代码都离不开 List.既然天天在用,那就没准就会踩中这几个 List 常见坑. 今天我们就来总结这些常见的坑在哪里,捞自己一手, ...

  9. 通过踩坑带你读透虚拟机的“锁粗化”

    之前在学习volatile时,踩过一些坑.通过这些坑,学习了一些jvm的锁优化机制.后来在面试的过程中,被问到的概率还挺高.于是,我整理了这篇踩坑记录. 1. java多线程内存模型 在聊踩坑记录前, ...

最新文章

  1. Javascript 基础-------this关键字
  2. yolo v3学习笔记
  3. dll文件:关于MFC程序不能定位输入点
  4. ubunu安装软件的一个错误
  5. C语言指针学习(续)
  6. html5中的css特性,浅谈HTML5 CSS3的新交互特性
  7. python学习中软件开发知识点_Python 学习知识点总结归纳
  8. 计算机专业简历自我评价,计算机专业毕业生简历自我评价
  9. 记录并练习Markdown的基本语法
  10. mysql curd语句_MySQL常用SQL语句(CURD,建表,加字段,查改参数)
  11. 怎么做应力应变曲线_做了这么多年材料,这些力学性能测试你做对了吗?
  12. 【管理心得之三】管理者们扪心自问一下 “你们杀了几个属下”
  13. Java 多线程 面试题
  14. 运用for循环计算100以内奇数的和
  15. 一键生成ai伪原创文章的方法
  16. adb 静默安装_android 非root实现静默安装
  17. 江城子/乙卯正月二十日夜记梦——苏轼
  18. 系统架构设计师与系统分析师历年实体分析与解答下载_【系统分析师】07-系统设计...
  19. 教师资格综合素质知识要点记录
  20. 谷歌浏览器调试时页面的刷新与强制刷新+清空缓存的操作

热门文章

  1. java代码继承------多层继承
  2. Java团队+.NET团队==足球队+篮球队;我们能否同时培养好2个优秀的精英团队?
  3. mysql全套基础知识_mysql系列--基础知识
  4. 安卓系统校园招聘平台APP答辩PPT免费下载
  5. 潘多拉_最新Pandora潘多拉美国官网海淘攻略
  6. php怎么写编辑页面,怎样编辑小程序页面内容?
  7. linux下查询汇编指令手册,Linux命令大全
  8. SQL Server 2014各个版本区别
  9. C++面试题-指针-动态内存指针
  10. 何时、何地应用何种窗函数?