测试需要一颗发现美的心灵,更重要的是需要发现邪恶的火眼金睛。。。

发布新日志

  • 软件测试人员应具备的几种思维方式

    2008-12-10 11:45:04

    1、逆向思维方式

      ● 逆向思维在测试中用的很多,比如将根据结果逆推条件,从而得出输入条件的等价类划分

      ● 其实逆向思维在调试当中用到的也比较多,当发现缺陷时,进一步定位问题的所在,往往就是逆流而上,进行分析

      ● 逆向思维是相对的,就是按照与常规思路相反的方向进行思考,测试人员往往能够运用它发现开发人员思维的漏洞

      2、组合思维方式

      ● 很多东西单一的思考都没有问题,当将相关的事物组合在一起却能发现很多问题;如多进程并发,让程序的复杂度上了一个台阶,也让程序的缺陷率随之而增长

      ● 按照是否排序组合可以分为:排列(有序)和组合(无序);针对不同的应用,可以酌情考虑使用“排列”或者“组合”

      ● 为了充分利用组合思维而不致于让自己的思维混乱,要注意“分维”,将相关的因素划分到不同的维度上,然后再考虑其相关性

      3、全局思维方式

      ● 事物往往存在多面性,当我们掌握了越多的层面,我们对它的认识就越清楚,越有利于我们掌握其本质,全局思维方式就是让我们从多角度分析待测的系统;试着以不同角色去看系统,分析其是否能够满足需求

      ● 其实平常我们在软件开发过程中,进行的各种评审,就是借助全局思维的方式,让更多的人参与思考,脑力激荡,尽可能的实现全方位审查某个解决方案的正确性以及其他特性

      4、两极思维方式

      ● 边界值分析是两极思维方式的典范

      ● 为了看系统的稳定性,我们采用了压力测试

      ● 两极思维方式,是在极端的情况下,看是否存在缺陷?

      ● 注意是两极,不是一极

      ● 测试人员做久了,往往容易走极端——职业病,不利于与人沟通51Testing软件测试网

      5、简单思维方式

      ● 剥离一些非关键特征,追逐事物的本质,让事物简单的只剩下“根本”

      ● 针对事物本质(解决问题的本质)的测试,让我们不至于偏离方向

      6、比较思维方式

      ● 认识事物时,人们往往都是通过和头脑中的某些概念进行比较,找出相同、相异之处,或者归类,从而将其加入大脑中的知识体系,可能的话,再建立好的搜索方式,以便以后使用

      ● 应用模式是“比较思维”很常见的例子,现在模式很火,有设计模式、体系结构模式、测试模式、等等,一些专家针对一些相关问题的共性找出来的解决方法,取完名字后,可以让大家方便的复用

      ● 让经验在这里发挥作用,测试中经验很重要,比较思维是使用经验的方式

      7、动起来,更精彩

      ● 关注程序的运行时状态

      ● 传统的基于结构的程序可以更多的在代码中反映将来程序的运行方式;而面向对象将代码和运行时显著分离

      ● 让我们在关注代码静态结构(如类结构)的同时,也要谨慎关注其动态(对象交互网)表现

      其实这些思维方式,大家都在有意识或者无意识的使用着,它们各自都有自己的妙处,将我们的思维发散,有意识的将他们用在问题的思考上,有时可以给我们一种“柳暗花明又一村”的感觉。

      最后想说,只是知道这些原则意义不是很大,如果真能让它们成为思考的血液,才能发挥它的真正价值。那真的需要很多的历练,其实成为一名出色的测试人员,远没有那么简单,需要简单,需要(不断的学习+不断的经历+不断的思考)。

  • 编写有效的软件测试报告

    2008-12-02 16:13:34

    在51testing上看到的,觉得会有帮助,于是便记录下来:

      1、必须说清楚测试报告的操作系统环境:

      比如说XX软件运行的操作系统是什么?是Windows 98、Windows2000、WindowsXP, 还是Linux操作系统等等。很多时候,大多数的软件只能够在某个系统上存在缺陷,而在其它版本的系统上可能不存在缺陷。

      2、测试报告结果只对发布的版本和配置库的SVN号负责:

      也许同行们都有这种尴尬,很多测试的时候,发现了Bug,并将Bug记录到Bug跟踪系统上,结果开发人员说,自己的机器上不存在这个Bug。要求测试人员重新验证Bug是否存在。一种可能是开发人员发现测试人员递交缺陷后,修改了该缺陷,还有一种情况是版本的发布不规范,开发人员忘了递交代码到配置库,结果就发布了。所以,测试报告只对特定的版本和环境负责。

      3、指出测试的浏览器:

      特别是Web类似的软件,不同的浏览器,测试出来的问题不一样。同样的一种浏览器,不同的版本,测试结果报告也有时候不一样,我们部门以前碰到过IE6.0和IE7.0同样的一个功能,页面显示不太一样的现象。故,Web类似软件的测试报告,最好是说明出现问题的浏览器。

      4、测试结论和测试建议,对于一个有效的测试报告非常关键:

      测试结论和测试建议要求简短和准确,甚至有时候决定该版本是否可以发布,特别是测试的负责人,对被测试软件的报告一定要仔细斟酌,小心为佳。

      5、测试用例的执行情况:

      针对软件测试报告的几种类型,如:单元测试、集成测试、功能测试性能测试和压力测试分别编写测试报告。编写报告时,已经执行或未执行的的用例数目。用例通过的百分比,未执行的测试用例,必须说明不能执行的原因。对于测试阻塞的测试用例,必须加以说明,最好用粗体字表明,让人一看就比较清楚。

      6、一般都要附上缺陷列表(Buglist):

      某个软件的测试版本,测试中共发现了多少问题,缺陷的严重等级和优先级如何,已经关闭和Fix掉的Bug有哪些?哪些问题是该版本遗留的问题?哪些是下一个版本解决的问题?哪些是重复打开的缺陷?有了Buglist,一看就一目了然,简单并且很清晰。

      7、测试结果的图形和数据分析情况:

      测试报告递交一定要分清递交对象,不同类型的人,递交不同版本的测试报告。如果是递交给研发部的人员,最好要附上缺陷隔离等相关方面的解释,方便开发人员迅速定位缺陷,解决问题。如果递交对象是客户,你就详细说明客户关心的功能和常用模块是否已经实现,是否存在问题即可。如果递交的对象是公司领导和客户领导,他们根本就没有很多时间来看你的文字,主要看看测试图表,最好用缺陷管理工具,如:TestDerector和QAcenter自动生成不同的图表,并且附带上各个功能模块的缺陷情况,就可以应付了,呵呵!!

      8、测试报告也可以附带缺陷度量的相关分析:

      如缺陷密度呀等等之类的,增加缺陷报告的技术含量,哈哈。

Open Toolbar