软件测试人员易遗漏的一些隐藏缺陷

通常软件测试会暴露软件中的缺陷,经过修正后可以保证软件系统的功能满足需求并正确运行。但是,在系统测试和 确认测试中,测试人员容易遗漏一些隐藏的缺陷。众所周知,软件测试不可能发现所有的缺陷,而软件开发周期各个阶段仍然存在注入缺陷的可能,但是,有一些缺 陷是测试中容易忽略的,也就是说,通过测试方法和用例可以充分暴露这些缺陷,遗憾的是,它们往往被忽略或者某种原因忘记测试了,这就给软件留下了隐患或者 危机。这些容易被忽略的缺陷包括:

  1、安装缺陷

  通常项目组完成代码后,发布时候安装打包是最后一个环节,而软件测试人员通常在测试的时候,没有仔细的测试这一部分,而把用例集中在其他功能上。安装时候的缺陷通常通过拷贝而不是运行安装程序方式给测试人员安装软件,结果正式安装时候出现问题,引起例如控件没有注册,注册表没有导入等。删除时候没有注意安装文件夹是否存在用户文件,造成数据丢失;使用绝对路径;安装顺序没有说明书。

  2、配置文件

  有些文件在ini等配置文件中写出了管理员口令密码等信息,而且是明文的!这是一个安全隐患。另外,有些安装文件的 XML 文件,为了方便在数据库和中间层连接文件中写入了Admin 口令和密码。作为一个合格的软件测试人员,必须检查这些可以用记事本打开的文件。因为,一个稍有常识而且喜欢探索的用户,可能从中获取信息而成为不自觉的黑客。所以,配置文件可能成为软件安全方面的一个缺陷。

  3、网页安全缺陷

  现在网站开发已经注意到:登陆网站进入其内部网页后,直接拷贝网址,然后粘贴到另一IE 窗口输入,可以绕过登陆直接访问。也许商业网站很关注这个问题,但是很多行业软件却很容易忽略。

  网页安全缺陷还可能存在于 IE 弹出的子窗口。有些设计不严格的软件,在主页面关闭的时候子页面还可以运行,这是一个明显的漏洞,而且还大大增加了错误发生的几率。

  4、判断顺序/逻辑缺陷

   对界面进行多个输入判断的时候,非常容易出现这种问题。例如判断年月顺序,判断长度,判断非空等。假如操作员仅仅满足单个条件,保存不能成功;而按界面 从上之下顺序一一满足条件之后,保存是没有问题的。但是,改变一下输入的次序,校验失效。例如,一一满足条件之后,不保存,倒过来将上面的输入改成非法输 入,然后保存,结果居然也能成功,这是因为原先的判断由于发生过,或者根据语句顺序只检查最后一个判断,所以没有报错。这种错误尤其在 Java scrīpt 脚本的页面中要注意。能够保存不能保证数据正确,有可能引起系统崩溃或者后续数据错误。所以,在测试的时候,不要按照正常的顺序输入,而是要打乱步骤,看 看代码是否强健,是否在判断逻辑上没有错误。良好的代码应该经得起折腾,至少保存时会再此全部进行判断,而不只是简简单单走到判断的最后一行。

  5、调试语句和冗余信息

   维护项目和升级改造的推广系统最容易潜伏这类缺陷。典型表现在没有删除或者屏蔽调试语句。弹出一个界面不友好的提示信息,会使不明真相的用户产生误以为 系统发生了严重故障,从而引起对软件的不信任感。页面中某个角落存在当前客户不需要的冗余按钮和功能也是一种缺陷。多余的功能会使用户以为是额外附加部分 而去使用,其结果可想而知;而多余的按钮会误导好奇心强的用户操作,产生不必要的错误。

  同样值得关注的还有参数设置,由于没有实际数据,开发人员在调试或者单元测试的时候,习惯性的进行自我设定而忘了删除,软件测试人员可能会忽略掉了这部分测试,也可能导致在客户现场发生错误而影响系统发布和验收。

  6、不可重现的故障

  新参加软件测试的人员或者新来的开发人员总是要问,不可重现的缺陷是否需要记录,有必要吗?回答是肯定的。测试必须如实的记录发生的问题,也许不能重现,或者使非软件系统本身问题,但是,可能这些偶然性背后是有规律的,不记录这些,就不可能发现这些规律。

  7、多节点的逆向流转缺陷

  当前软件不少喜欢使用工作流来驱动。工作流的问题,就是可能出现多个流向分支。测试容易忽略的部分,就是工作流多节点的逆向流转。例如,通过不 通过涉及两个分支,但是流程逆转的时候,有可能不是回到上一节点而是平级的另一个节点去了。软件测试要格外注意这类用例的设计。另外,有些时候默认分支在 向前的时候是有默认值的,例如默认通过,那么保存的时候要提示用户是否通过,否则可能由于操作疲劳而走错了节点,引起回退。

  8、输入框缺陷

  试过往输入框粘贴数据而不是直接输入吗?可能这里会出现问题。按 Ctrl+V 的时候,输入框会根据长度大小自动截断输入长度。但是用鼠标,截断可能会失效。有一次测试人员就是用这种方法把一篇 Word 文档输入进去了,保存的时候,数据库崩溃。有些网站登陆的口令****可以拷贝下来的,只要放在剪贴板里面马上明文显示。

  输入框可以说是问题最多的部分,能够引起的麻烦也很多。日期、数字、文本等等,都需要耐心的测试一下。

  9、界面布局缺陷

  曾经有一次,项目经理回来向测试部反映一个问题,客户对界面不满意。原因很简单,因为界面上删除按钮和保存按钮挨得很近。结果有些操作不熟练的 业务人员,很容易误按。这个问题是测试人员没有意料到的,因此注意关闭、删除、退出按钮与保存、下一步等按钮的距离。类似的按钮应按此规则排列分布。

  界面布局还可能发生在窗口最大化和最小化上,有可能窗口缩小的时候没有下拉框或不匹配分辨率,对用户来讲,这个错误实在很低级。有些用户由于操 作习惯,非常不喜欢腾出手使用鼠标,尤其是大量输入的界面,因此,要注意设置键盘的快捷方式。还有,按 Tab定位到下一焦点时要注意顺序,避免跳转太灵活而让操作人员感到无从适应,在界面进行维护或者修改的时候,不要忘了软件测试开发人员是否无意改变了这 些快捷方式和跳转顺序。

  10、版本和补丁包的环境问题

  理论上讲,这属于兼容性测试应该覆盖的问题。有些客户很喜欢更新最新的软件版本或者微软时不时打些补丁包,问题就出现了。有时候升级不一定是好 事。这些问题最好在测试的时候增加几个用例,多用不同软件版本的机器跑一跑。软件测试有个定律是:你没跑过的地方,就一定会出事。经常听到开发人员抱怨, 怎么我的机器没问题,你的机器就有事了呢?这不能完全靠配置管理员解决问题,环境配置项是大家最容易忽略的。

  11、用户管理缺陷

  用户管理的角色和授权需要好好研究一下,作过测试的人员都知道,有时候为了测试的方便,测试用户都是具有超级权限的用户。而且,比较容易忽略用户管理这一部分的测试。往往发往客户的时候,很多测试用户都没有删除。

  另外,有些接口的用户和口令,到软件使用寿命结束都没有更改过。在一次测试中,软件测试人员发现,给一个用户授超级用户权限,之后更改这个用户 为受限权限。使用中发现,用户居然没有真正回收权限,用户管理界面上没有任何不对。及早准备用户管理用例,不要等到测试快结束时候才想起。

  12、常识缺陷

  从逻辑或者统计学上讲,计算机是允许如此处理的,但是从常识上来讲,这些情况不可能发生。例如电话号码不可能出现小数点,终止时间不能大于开始 时间等等。除此之外,常识还要结合业务特点来进行判断,因此,开发和测试人员要格外注意对自己知识的培养以及增加对需求细节的了解。不能因为一味追求进度 而采用最简单的代码来实现,对用户来说,这些错误可能是很荒谬的。

  尽管我们不可能完美的测试一个软件,但是我们仍然可以改进我们的软件测试。每次测试结束,及时总结测试中的不足,进一步完善用例。思考一下那些容易忽略的软件缺陷,能提高对软件测试的认识,提高所在组织软件的质量。

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-23 03:53:30

软件测试人员易遗漏的一些隐藏缺陷的相关文章

软件测试人员分工

最近看了点敏捷测试的东西,看得比较模糊.一方面是因 为没有见真实的环境与流程,也许它跟本就没有固定的模式与流程,它就像告诉人们要"勇敢""努力".有的人在勇敢的面对生活,有些人在勇敢的挑战自我,有 些人在勇敢的面对失败与挫折.好吧!他们都实现了"勇敢",勇敢到底是如何去做,也许说不清楚.或者说每个人都有自己的实践方式.但是他们却同样靠着"勇 敢"攻克不自己所面临的困难.当然了,敏捷并不是简单一个词语,经过前人的不探索与总结,还

软件测试人员的分工

最近看了点敏捷测试的东西,看得比较模糊.一方面是因为没有见真实的环境与流程,也许它跟本就没有固定的模式与流程,它就像告诉人们要"勇敢""努力".有的人在勇敢的面对生活,有些人在勇敢的挑战自我,有些人在勇敢的面对失败与挫折.好吧!他们都实现了"勇敢",勇敢到底是如何去做,也许说不清楚.或者说每个人都有自己的实践方式.但是他们却同样靠着"勇敢"攻克不自己所面临的困难.当然了,敏捷并不是简单一个词语,经过前人的不探索与总结,还积累与

谷歌眼镜被用于测试宝马 可帮助发现隐藏缺陷

谷歌眼镜被用于测试宝马 可帮助发现隐藏缺陷最近不少媒体报道了 GoogleGlass的负面消息,有些用户给它取了不雅的外号,还有些行业分析师把它比作是江河日下的Segway.不过宝马公司似乎对这款可穿戴设备情有独钟,他们正在美国南卡罗纳州运行一个试点项目,希望探索Google Glass是如何提升汽车小批量生产过程中的质量控制,帮助公司更好地从原型开发过渡到正式定型量产阶段.在现代汽车制造过程中,小批量生产是非常重要的一个环节.一开始,汽车会有一个吸引眼球的设计概念,然后 它们会进入原型制造阶段

如何成为一名优秀的软件测试人员

Ryan Yackel分享了一套三步走战略,旨在帮助测试人员巩固知识并在团队中扮演关键性角色. 如果您身为一名软件测试人员,那么肯定对"我们公司正在朝着敏捷软件开发方向努力"的说法不会陌生.事实上,众多已经采纳敏捷开发思路的团队开始将测试工作分配给每位成员,那么未来我们软件测试人员又将迎来怎样的挑战? 好消息来了:软件测试人员仍将不可或缺,甚至在敏捷测试中发挥更大的作用. 但大家也需要适应新的时代要求. 了解业务领域--而非局限于测试 软件测试人员要如何在企业朝着敏捷方向迈进时,证明自

软件测试人员的烦恼

软件测试人员在软件开发过程中的作用越来越重要,基本上是一个把关的地位.我们来快速浏览一下主要影响软件测试人员的工作质量的几个方面. 一.软件发布周期的不断加速 为 了应对今天需求的快速性和连续性,软件交付变得越来越快.大多人都认为软件测试在软件交付过程中是一个相当棘手的问题.妄想通过简单的加快开发过程来达到 预期的结果,而且开发过程本身存在问题,这显然是不切实际的.如果没有给软件测试分配足够的时间,那么该公司可能需要重新来审视下自己对于软件开发和测试 的态度.大多数企业都非常在意软件的质量,但是

专业软件测试人员发展的未来

专业软件测试人员发展的未来 根据Google/微软一些大公司开发和测试融合分工新的趋势,未来的IT世界有可能会发展出一种新的场景和分工: 基本的功能测试设计执行和白盒测试技能应该让所有开发人员都所具备,然后才能解放出专业的测试人员去做复杂的测试工作(非功能测试.beta测试.测试执行平台打造等),有时间去研究如何提高整个研发团队的测试质量与测试效率,更好地辅导开发人员掌握基本测试技能,当然开发人员依然要通过交叉测试来解决测试心理学的问题(不能自己测试自己).开发将对自己的局部代码质量负责,测试专

谈软件测试人员定位---三年软件测试总结

因为一直从事web产品的测试,我的观点并不一定适合所有的类型项目.   工作已将近三年了,虽然这三个年头里我都在积极的学习着与测试相关的技术:但是能沉淀的东西很少.相信测试同学都有类似的感觉.     不要为了测试而测试 前几天做了一个测试的PPT ,就是讲项目中要用到的测试技术,总结了半天其实实际的产品中没什么技术,熟悉需求,转化成用例,待项目上线后验证功能就OK 了:对一个自身质量要求不高的项目,我们有时候为了体现自己价值,非要在一些不痛不养的问题上揪着不放. 举个不恰当例子,某钢琴高手开了

如何才能成为一名优秀的软件测试人员

     最近在和一些公司的软件工程师和管理人员交流时,发现他们经常发出这样的感慨:寻找一名优秀的测试人员这是太难了.那么,具备哪些要素才成成就一名优秀的测试人员,下面是我认为比较重要的几点:     1.对分析和测试的激情:任何事情的成功的关键在于你是否对它怀有真正的激情.     2.专业技术:要想成为一个伟大的测试者,必须要具备非常出色的编程能力,这样你才能很好的理解你要测试的系统,才能和开发人员进行更加有效的沟通,才能写出高效的自动化测试程序.     3.良好的分析能力:需具备很强的分

如何弱化因不同软件测试人员测试而引发的BUG率上涨的现象?

问题描述: 如何弱化因不同测试人员测试而引发的BUG率上涨的现象? 精彩答案: 会员 livexmm: 想了想,如果测试人员变更导致BUG数量增加主要也就2个原因: 1.提交了重复的BUG报告. 这主要和任务分配,缺陷管理等有关系. 任务分配出现的问题一般是测试用例审核不严格,导致用例有效性下降,从而测试部门本身对自己的用例没有信心,最终导致换个人测试就要换用例.最后结果么就是测试了重复的模块,如果缺陷管理也不过关么就会出现提交重复BUG的情况. 解决办法: ● 增加用例的审核力度,加强用例的可