软件测试之注意事项

1. 查找bug时的注意事项

(1)软件系统的实现过程就是一组控件实现自己的功能逻辑的过程。我们通过几个常用的web控件,来说明一下我们需要注意的地方。

文本框(TextBox)

文本框更多的情况下是用来输入信息的。文本框都一样,可是不同地方的文本框需要输入的信息就不会都一样了,比如说,有的是用来输入时间日期的,有的是用来输入文字的。首先我们要结合需求,确定文本框的具体作用,要是用来输入日期时间的,就要注意可以输入几种格式的日期时间,是只读的,还是可进行手动修改的,是否对汉字、特殊符号等做了输入限制(很多时候,录入不匹配的信息,系统会出现错误)。要是用来输入文字的,验证是否对录入的文字长度做了限制(如果超出数据库设置的最大值,会出错)还要注意文本框设置的可视长度,和录入的信息以及页面的整体风格是否和谐。

标签(label)

标签,基本上不用实现什么逻辑功能,只是起到显示标记的作用。对于标签,我们注意的就是不要出现错别字(当然,任何地方都不能有错别字这样低级的错误),当标签和其它控件联合使用的时候,我们要结合页面的整体风格,确认它的设置是否合适,如label与其他控件之间的距离、标签的字体样式及颜色是否合适等。

单选按钮(RadioButton)

单选按钮,顾名思义,就是只能选择一个。一般情况下,单选按钮都是以组出现的。如录入性别信息时,有“男”和“女”两个选项,我们要确认只能选择其中的一种,不允许两项都可以选择,而且提交的是选择的信息。

复选框(CheckBox)

可以这样说,复选框和单选按钮的作用是相对的。使用复选框的地方,一定是要求可以进行多选的,自然就要验证是否实现了多选功能。这里我举这样一个例子:有

A、B、C三个查询条件,是用复选框的形式实现的。当验证完每一个查询条件后,最好再进行组合验证,就是说当只选择A和C或B和C时进行查询。也许有时候bug是由后台查询语句出错导致的,并不是复选框本身的错误。我想说的是不要忘记进行这样的测试验证。

下拉列表(DropDownList)

下拉列表的作用和单选按钮的功能有些相似,从列表中选择一条自己需要的信息。很多时候,列表的选项中有一条是使用频率最多的,即使用户没有做特殊要求,系统最好把使用频率最多的那一项设置为默认选项,这样可省去用户的一次操作步骤(不仅是这里,要注意整个系统中对默认选项的设置,软件就是应该最大程度的方便用户)。而且还要注意下拉列表的宽度是否合适,列表信息是否显示完全了。

按钮(Button/Submit)

我们要注意Button和submit两种按钮的不同之处,Button主要是用来实现相应的方法函数,submit是用来提交相应的表单到相应的action处。这里有一点就是,当单击执行一个删除类的按钮时,一定要加上提示信息,而且提示信息上要有确定和取消功能,以防用户不小心删错信息。

(2) 现在的软件系统不再像以前那样单调,软件中实现了很多特效。举一个简单的例

子来说明一下,比如对一个按钮,当光标放到上面的时候,它是一种效果,当光标离开之后,它又是另一种效果。也要注意光标的变化,当光标在可输入的文本框上面时是“I”形状的,在一般的按钮上是弯曲三个手指的小手形状的。我们要注意特效的统一性,而且特效也不是用的越多越好。效果的实现使系统变得更加的多彩,用户也会更加愉快的使用软件。

(3) 每一个稍微复杂一点的系统一般都是由多个页面组成的,而不会只使用一个单调

的页面,这时我们就要注意界面显示的色调风格是否统一、字体大小从标题到具体内容是否体现出层级,同类、同层次的风格设置是否统一。虽说系统可以由多个界面组成,但是我们也不希望看到冗余的界面。也许有的需求中并没有对界面作出特殊的要求,但是我认为高质量的界面也是一款高质量的软件不可或缺的组成部分。

(4) 测试软件时,一定不要漫无目的的测来测去。这样不仅会增大工作量,而且也不

能对系统作出彻底的测试,。我们要有计划有目的的进行测试工作。要是担心忘记某些功能点,“地毯式”测试也是行得通的,从页面的第一个功能点到最后一个进行地毯式的搜索测试。

(5) 注意界面上的分页和滚动条等小问题,有的地方信息很少,一页足可以显示完,

就不需要分页功能了;有的窗口会看到滚动条,如果再把窗口设置的大一点,就可以全部显示了,那就最好把滚动条去掉,我想每个用户都希望一眼就看到所有的信息,而不想拉来拉去的。还有就是该有时间的地方,一定要有时间信息,尤其是涉及到打印报表的地方。

(6) 一般的系统都需要使用用户名和密码登陆,而且会为不同的用户分配不同的权限。

不要总是使用正确的用户和密码在相应的权限范围内进行测试工作,从打开登陆窗口的那一刻就要意识到测试工作已经开始了。在测试过程中不要按部就班的操作程序,你也不知道用户在使用过程中会怎样操作程序,有时候就要反其道而行之,要知道测试是具有破坏性的。

(7) 用户使用软件的环境和软件开发时的环境不可能完全一样。我们可以考虑并验证

以下这几个问题:

其他的浏览器是否有相同的问题?

其他的软硬件配置是否有相同的问题?

不同的安排设置是否有相同的问题?

以前的版本否有相同的问题?

2. 提交bug时的注意事项

(1) 发现一个问题时,不必急着提交,可以先做验证(包括复现、对比测试等)进行证实,

看是概率性问题还是每次必现的问题,需要时也应使用不同版本不同机器做对比验证,当然,如果已经很确信是一个bug了,也就不用浪费时间去对比验证了。

(2) 描述要清晰、准确,不要使用含糊的词语(例如,好像,似乎)来描述发现的现象。

关于这点,如测试某款软件时,提交一个bug描述为“软件帮助说明中好像有错别字”,并没有说出哪一页哪一行以及具体哪个字错了,应该修改成什么样的。因此就不能说是个好的描述。

(3) 要考虑开发人员的感受,有些问题尤其是有些主观性比较强的问题,在问题描述

中一般不要出现带强烈感情色彩的词语标点符号,如“要求”、“必须”和感叹号等(特殊情况除外)。在提交此类问题时可以使用一些诸如“建议……”、“希望……”、“请……”之类比较委婉些的词语。

(4) 不能确认一个现象是不是一个bug的时候可以向其他人或者开发人员进行确认,

然后再去提交。

(5) 概率性的问题,测试过程中难免遇到一些概率性问题,很难找出其产生的规律,

甚至该问题在测试过程中只出现一次,对于此类问题也一定要提交,并补充说明无法复现或者无规律。

(6) 描述问题时,要实事求是,不要夸大,比如概率性问题,本来出现的概率只有10%,

你把它写成50%都是不应该的。

(7) 提交bug时,应该在描述清楚问题点的时候把正确的预期输出结果写明,即正确

的结果应该是什么样的,这点很重要。现在我们提交的bug中有些测试和开发双方都知道该修改成什么样子了,而在bug描述中未写出修改成什么样子的,如“来电时按挂机键不能拒接来电”这样描述一个bug,并没有写明该如何修改,一般这样描述大家一看就知道该如何修改,所以写不写预期正确结果大家都可以接受。但对于有些bug的描述一定要把预期的正确结果给写进去,否则开发人员会无所适从,不知道该修改成什么样子的。

(8) 很多时候,提交的bug都需要重现,而有的bug是在测试过程中偶然间发现的,

时间一长,会对发现bug时的特定数据或环境模糊,导致不能重现bug。所以提交bug时描述的越详细越好。如果语言文字难以清楚的描述出发现的问题,最好能附件图片或者log记录等做辅助说明。

(9) 提交测试bug的时候,如果该问题在某一特定环境下才能出现,一定要将该问题

产生的环境(硬件、软件)描述清楚。

(10) 提交问题前要清楚的知道软件需求、规格定义。相信很多人都遇到过这样的尴尬

情况,提交了一个重要问题后,却被告知其实那并不是一个问题,软件就是那样设计的或者需求就要求那样处理的。

(11) 有些问题出现了,不一定就是我们测试软件本身的问题,也可能是其他一些问题

导致的,如“手机通话时自动掉线”问题,这有可能是信道切换失败导致的,是网络的问题,不是我们手机软件本身的问题。类似情况还会很多,这都我们有着丰富的产品背景知识。

(12) 编写bug report没有什么定式,没有绝对的范本,最基本的是能够让客户或目标修

改,浏览bug report人员看懂,而且在短时间内,而不需反复思考的。其他有时要考虑目标读者的一些喜欢。例如有些类似的bug到底是合并还是单独提交,bug的步骤划分(到底是每一步都为一点,还是有些点可以合并)。在这一点上我觉得“灵活和适应”是很关键的。

(13) 在发现一个Bug并填写完bug report之后,在review的时候,需要特别注意的一

点是:这个bug report会不会让其他人还有联想或发挥的空间。一个好的bug report是不可以细分的, 换句话说就是这个bug是不会让他人觉得你还有些地方需要在测试一下,或许还有其他的问题。例如,有个测试人员发现在输入16这个数字(允许范围内)且提交时系统会返回一个错误:不能输入48以下的数字。这确实是一个错误,但是如果就只按现在的步骤提交,另一个可能会有这样的想法:是不是输入48以下的数字都会有这样的问题呢?这样他有可能要求你在测试其他的数据。这样就延长了这个bug的生命期,而且浪费了大家的时间。

(14) Bug提交完毕后,并不是就万事大吉了,后续跟踪验证等还多着呢。

3. Bug提交之后需要注意的事项

(1) 如果编程人员需要问题重现,应尽量减少重现的步骤以达到用最少的步骤来重现

问题;这对编程人员来说是很有帮助发现问题根源的。因为最少的步骤可以开发人员迅速、准确的锁定问题的根源。

(2) 最好由报bug的人验证bug是否可以关闭。任何人都可以修复bug,但只有那个发

现bug的人才能够确信bug是否真正的已被修复。

(3) 当你的bug报告以“not repro(不可重现)”打回给你时,先检查一个步骤是否有遗漏

或清晰,再去找编程人员。编程人员通常是在无法用bug报告中的步骤重现bug时才选择这个选项。

(4) 要对提交的bug时刻进行跟踪,要保持和编程人员的沟通交流,是bug及时得到

解决,以免影响项目的整体进度。

我想,作为一名软件测试人员,即便再优秀、再喜欢这份工作,也会感觉到测试过程的枯燥乏味。有时候改掉一个bug,又会导致另一个或更多bug的出现,面对这种似乎无休止的进行下去的测试工作,心里难免有些烦躁。但是烦躁归烦躁,切不可让自己的情绪过多的影响到自己的工作,时刻都要做到认真负责、脚踏实地,希望我自己也能够这样努力下去。

时间: 2024-11-08 09:37:06

软件测试之注意事项的相关文章

全程软件测试之测试需求分析与计划

全程软件测试之测试需求分析与计划 在项目启动之后,就要着手软件项目的计划,包括软件测试计划.软件测试计划是整个开发计划的组成部分,同时,它又依赖于软件组织过程.项目的总体计划.质量文化和方针.在测试计划活动中,首先要确认测试目标.范围和需求,其中"测试需求分析"是关键任务,然后在测试需求基础上制定测试策略,并对测试任务.时间.资源.成本和风险等进行估算或评估. 无论何时进行估算,我们都是在预测未来,并会接受某种程度的不确定性.软件项目计划的目标是提供一个框架,不断收集信息,对不确定性进

《Google软件测试之道》测试开发工程师

拖延了将近半年的草稿,断断续续的写完了.之前草草翻看完这本书,关注点主要在TE上,而关于SET的部分则只是浏览,最近后知后觉,又翻出了这本书,重新看了一遍,又有新收获. 就说说Google的SET是如何做的,以及个人的一些思考和收获吧,寥有慰藉... Google的测试流程可以简练的概括为:让每个工程师都注重质量.而在工作流程引入过程中也伴随着一些致命的缺陷,下面简述下Google是如何解决以及其测试流程的是如何进化的. ①.测试并不能保证产品质量.需要一直谨记的一点:质量是内建的,而不是外加的

转《Google软件测试之道》

<Google软件测试之道>,一直听朋友讲起这本书,出于琐事太多,一直没机会拜读,最近部门架构觉得我们IT部门的技术太low,就给我们挑选了一些书籍,让我们多看看... 个人的一种学习习惯吧,就做了笔记,将自己的学习理解感触写下来... 预计会分为五部分写这些学习笔记,分别是Google软件测试基础介绍.软件测试开发工程师.软件测试工程师.测试经理以及附录其他部分... 快乐阅读,快乐测试,祝愿你总能发现(并修复)BUG... ----James Whittaker.Jason Arbon.J

小白的软件测试之路

从笔记本代工企业跳出来做软件测试到今天为止整三个月了,一个人从手工测试摸索到现在尝试自动化,做一下总结吧. 第一阶段:依照上一个测试人员的惯例在qc中写用例并执行,发现写的非常的糟糕,无体系且混乱.基本只涉及一些功能测试方面,而且书写非常混乱. 第二阶段:开始查找资料,梳理测试流程,将系统测试各方面重新组织规划,并尽量在有新测试对象时使用这个规范测试,并使用到书中讲到的一些测试用例设计的方法. 第三阶段:寻找自动化测试之路(公司产品分为android端和web端,重点先放在web上),这里的自动

软件测试之loadrunner学习笔记-02集合点

loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行随着时间的推移,并不能完全达到同步.这个时候需要手工的方式让用户在同一时间点上进行操作来测试系统并发处理的能力,而集合点函数就能实现这个功能. 可通过将集合点插入到 Vuser 脚本来指定会合位置.在 Vuser 执行脚本并遇到集合点时,脚本将暂停执行,Vuser 将等待 Controller 或控

软件测试之Web实战测试

课程概述:本课程系北风产品总监协同众一线讲师历时近一年准备的.NET巨献,主要是针对 .NET Web 开发方向,包括了.NET Web开发所需全部技能,享受QQ 群答疑,赠送价值近百万的商业源码,适合各不同层次的学员学习. 零基础学软件测试之Web实战测试 学习地址:http://edu.ibeifeng.com/view-index-id-539.html

《微软的软件测试之道》读书笔记 之 结构测试技术

<微软的软件测试之道>读书笔记 之 结构测试技术 2014-07-18 我们需要结构测试吗? 微软的一项试验说明了结构测试的在代码覆盖中起到的效果: 超过3000名测试员参与了这项实验,每25人一组,实验结果在所有组中都是一致的.在这项研究中, 脚本化测试:根据样式书设计的脚本化测试在被测程序上达到了标称83%的代码覆盖率. 探索性测试:然后,实验参与者允许进行每人15分钟,累计5小时的探索性测试.令人惊讶的是,代码覆盖率平均只增加了3个百分点. 结构测试:但是,当实验参与者能够分析探测过的(

读《微软的软件测试之道》有感(上)

在这个电子书漫天飞的年代,我居然仍然喜欢读纸书,喜欢一边读一遍闻书的味道,就像品尝一顿美味的大餐一样.最近得了一本<微软的软件测试之道>,啃了一段时间了,每次重新拿起来看就觉得里面的内容忘得一干二净了,想起之前有位领导总是教导我们:“要不断总结,要累积,这样才会进步!”之前每次听这话都觉得烦,后来工作久了才知道总结有多重要,如今为了记住这本书的内容,我决定写个读后感,想到哪里写到哪里. 第一部分: 第一章<微软的软件工程> 第二章<微软的软件测试工程师> 第三章<

[转载]软件测试之Web测试经典总结

转载自:软件测试之Web测试经典总结   基于Web的系统测试在基于Web的系统开发中,如果缺乏严格的过程,我们在开发.发布.实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大.而且,随着基于Web的系统变得越来越复杂,一个项目的失败将可能导致很多问题.当这种情况发生时,我们对Web和Internet的信心可能会无法挽救地动摇,从而引起Web危机.并且,Web危机可能会比软件开发人员所面对的软件危机更加严重.更加广泛. 在Web工程过程中,基于Web系统的测试.确认和验收是一