两个多星期没有写博客了,这个月都在做项目模块的开发,现已进入尾声,今天刷话题偶然看到了关于测试的文章,恍然想起我毕业的第一份工作是做软件测试,依稀怀念起刚刚毕业时的憧憬和冲劲,在谈技巧前先说说我看到的文章,题目是一道有关榨汁机的面试题的思考。
题目:对于一台榨汁机的需求阶段,需求未整理出,测试人员先行介入,测试人员应该从哪些方面考虑测试用例?
答:在需求还不明确的前提下,测试人员可以做的事情有两个:一是学习和项目有关的基础知识,剩下的就是等待。
可以看出这题给了陷阱,在开发人员都无法做high level design的情况,更谈不上让测试人员参与design的讨论。
扩展:若题目换成该榨汁机就是一台普通的榨汁机,那需要如歌考虑测试用例?
答:1.考虑90%以上用户的使用习惯,确保最基本的功能-榨汁能够正常运作,如果有按钮或调节开关,测速按钮或开关的可用性和有效性 2.易用性测试:榨汁机外观是否美观,电源线长度是否足够 3.force error 测试:空转、放入异物,中途停电、高温等情况能否正常工作 4.Security 测试: 是否有保护措施,如小孩子的手指 5.耐用性测试:刀片耐用度测试,按钮开关耐用度,电源线耐用度等。
从上面还是可以看出,做测试是要考虑很多方面的因素的。无论是网页,电脑软件,手机软件还是实物测试,下面说说我的经历。
1.入行准备:了解工作目的,这很重要。
2.知道什么是bug: 即缺陷,我的理解是破坏程序正常运行能力的错误或是功能缺失和界面显示问题等。
3.着手:学习要测试产品的相关业务知识,有缺陷跟踪库的试着多看看里面的bug,看看别人是如何发现问题的,学会执行测试用例和写bug(这是最基础的)
4.深入:测试用例设计,一般刚刚开始工作都不会接触到测试用例设计,都是执行别人写好的测试用例,当你熟练到一定程度就有机会自己为负责的项目编写测试用例了。
测试最多的就是黑盒测试和自动化测试了,这里说黑盒测试相关:
1.测试流程:
(1)了解需求或原型,出思维导图和测试大纲
(2)开评审会议,通过后编写详细的测试用例,写完进行用例评审会议,继续修改完善,最后定下用例和设置用例的优先级
(3)有需要配置环境的要时间进行测试环境的配置
(4)软件在开发完成后做开发人员做准出测试,测试人员做准入测试,最后通过后进行真正的测试,有问题的提bug
(5)测试完成后出测试报告,做统计和优先级处理,给开发人员做bug修复参考
2.如何设计测试用例:
(1)尽可能的覆盖有效等价类,直到所有有效等价类都被覆盖为止
(2)覆盖无效等价类,直到无效等价类都被覆盖为止
(3)保证基本功能的前提下,多做用力扩展,安全性能,压力性能等
(4)注意细节,重视用户体验,不要放过潜在的小问题
3.缺陷编写要点:
测试环境、软硬件条件、测试步骤、预期结果、实际结果,有必要可以提供log信息或者抓包信息等有效信息
4.缺陷等级:
致命、严重、主要、微小、建议
5.缺陷解决状态:
不是问题、下版修复、无法解决、解决、遗留参考(作为一个以后要注意或者可考虑是否需要修复的问题)。
6.软件缺陷的定义及主要类型 :
(1)设计不合理
(2)功能、特性没有实现或部分实现
(3)运行出错,包括运行中断、系统崩溃、界面混乱等
(4)与需求不一致,在执行TestCase时则为实际结果和预期结果不一致
(5)用户不能接受的其他问题,如存取时间过长、界面不美观
(6)软件实现了需求未提到的功能。
7.提高软件测试能力的方法和建议:
(1)多读别人写的好的缺陷,多想客户之所想
(2)认真的写每一个bug,确保其合理并提供恰到好处的细节
(3)不仅限于关注你测试的部分,试着了解整个产品
(4)不断学习,爱你所做的事
最后说说测试工具,网页数据抓包可用wireShark, 手机App抓包可用fiddler(http://www.tuicool.com/articles/aUBBnaa),压力测试用loadrunner等,可以多多学习扩展自己的能力,有助你更上一层楼。