当前位置: 首页 > news >正文

对软件测试的认识误区

随着软件测试对提高软件质量重要性的不断提高,软件测试也不断受到重视。但是,国内软件测试过程的不规范,重视开发和轻视测试的现象依旧存在。因此,对于软件测试的重要性、测试方法和测试过程等方面都存在很多不恰当的认识,这将会进一步的影响软件测试活动的开展,并且阻碍软件测试质量的提高。下面简单列举了几种有代表性的对软件测试的认识误区,并作了相应的分析和解释。

误区之一:软件开发完成后进行软件测试

软件测试是一个系列过程活动,包括软件测试需求分析,测试计划设计,测试用例设计,执行测试。因此,软件测试贯穿于软件项目的整个生命过程。

软件测试的对象不仅仅是软件代码,还包括软件需求文档和设计文档。

软件开发与软件测试应该是交互进行的,如果等到软件编码结束后才进行测试,那么测试的时间将会很短,测试的覆盖面将很不全面,测试的效果也将大打折扣。更严重的是如果此时发现了软件需求阶段或概要设计阶段的错误,如果要修复该类错误,将会耗费大量的时间和人力。

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

软件中的错误可能来自软件项目中的各个过程,软件测试只能确认软件存在错误,不能保证软件没有错误,因为从根本上讲,软件测试不可能发现全部的错误。

从软件开发的角度看,软件的高质量不是软件测试人员测出来的,是靠软件生命周期的各个过程中设计出来的。出现软件错误,不能简单地归结为某一个人的责任,有些错误的产生可能不是技术原因,可能来自于混乱的项目管理。应该分析软件项目的各个过程,从过程改进方面寻找产生错误的原因和改进的措施。

误区之三:软件测试要求不高,随便找个人都行

很多人都认为软件测试就是安装和运行程序,点点鼠标,按按键盘的工作。这是由于不了解软件测试的具体技术和方法造成的。随着软件工程学的发展和软件项目管理经验的提高,软件测试已经形成了一个独立的技术学科,演变成一个具有巨大市场需求的行业。软件测试技术不断更新和完善,新工具、新流程、新测试设计方法都在不断更新,需要掌握和学习很多测试知识。

误区之四:软件测试是测试人员的事情,与程序员无关

开发和测试是相辅相成的过程,需要软件测试人员、程序员和系统分析师等保持密切联系,需要更多的交流和协调,以便提高测试效率。

另外,对于单元测试主要应该由程序员完成,必要时测试人员可以帮助设计测试样例。对于测试中发现的软件错误,很多需要程序员通过修改编码才能修复。程序员可以通过有目的地分析软件错误的类型、数量,找出产生错误的位置和原因,以便在今后的编程中避免同样的错误,积累编程经验,提高编程能力。

误区之五:项目进度吃紧时少做些测试,时间富裕时多做测试

一个软件项目的顺利实现需要有合理的项目进度计划,其中包括合理的测试计划。不要因为开发进度的延期而简单地缩短测试时间、人力和资源,因为缩短测试时间带来的测试不完整,对项目质量的下降引起的潜在风险,往往造成更大的浪费。

误区之六:软件测试发现缺陷越多,正式使用后缺陷越少

软件测试的目的是尽可能多的找出软件的缺陷,但是发现的缺陷越多,只能说明软件的缺陷多,并无法证明软件还遗留的缺陷有多少。假设缺陷在一定数量的情况下,测试人员业务非常精通,测试极其认真,发现越多的缺陷 ,说明还遗留的缺陷就越少。那么,我也可以假设随便这么一测,就发现了这么多缺陷,那这个软件应该还有很多。

当然,也并不是完全无法评估软件遗留缺陷的多少,我们可以根据开人员的工作经验与技术能力,测试人员的工作经验、测试技能、对业务的熟悉程度以及以往完成的项目质量进行评估。

相关文章:

  • 看不见的战斗——阿里云护航世界杯直播容灾实践
  • Docker实战-编写Dockerfile
  • fabric8 API操作ConfigMap
  • iview Table组件渲染操作按钮, render 渲染icon图标更改方法
  • Day4Linux命令规则
  • 大聊Python----IO口多路复用
  • Odoo 自定义Widgets 基础教程(章节2)
  • 线程、对称多处理和微内核(OS 笔记三)
  • js中写文档write和innerHTML的区别
  • React 16 Jest ES6 Class Mocks(使用ES6语法类的模拟) 实例二
  • 拉格朗日乘子
  • FE协同中流程无法提交
  • 《大道至简》读后感
  • mui集成微信H5支付(返回白屏问题已经解决)
  • JVM学习笔记二:内存结构规范
  • 【笔记】你不知道的JS读书笔记——Promise
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • bootstrap创建登录注册页面
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • fetch 从初识到应用
  • HTTP中GET与POST的区别 99%的错误认识
  • leetcode386. Lexicographical Numbers
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Rancher如何对接Ceph-RBD块存储
  • Shell编程
  • Twitter赢在开放,三年创造奇迹
  • Vue官网教程学习过程中值得记录的一些事情
  • 包装类对象
  • 初探 Vue 生命周期和钩子函数
  • 翻译--Thinking in React
  • 分布式任务队列Celery
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 微服务入门【系列视频课程】
  • 写给高年级小学生看的《Bash 指南》
  • 异常机制详解
  • 从如何停掉 Promise 链说起
  • # 数论-逆元
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #vue3 实现前端下载excel文件模板功能
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #考研#计算机文化知识1(局域网及网络互联)
  • (1) caustics\
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (办公)springboot配置aop处理请求.
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)计算机毕业设计ssm电影分享网站
  • (万字长文)Spring的核心知识尽揽其中
  • (五)MySQL的备份及恢复
  • (转)3D模板阴影原理
  • (转)负载均衡,回话保持,cookie
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET CORE Aws S3 使用