一篇针对佳能传真机的软件测试方案

发表于:2011-03-19来源:作者:点击数: 标签:软件测试京东
一、总述 作为 软件测试 者都知道,软件测试可分为 黑盒测试 、 白盒测试 以及介于两者之间的 灰盒测试 。(这些对软件测试者而言并不陌生的概念性的东西在此就不详细介绍了。)在对佳能传真机的测试中佳能QA进行的都是不了解程序代码而直接进行数据输入求证输

  一、总述

  作为软件测试者都知道,软件测试可分为黑盒测试白盒测试以及介于两者之间的灰盒测试。(这些对软件测试者而言并不陌生的概念性的东西在此就不详细介绍了。)在对佳能传真机的测试中佳能QA进行的都是不了解程序代码而直接进行数据输入求证输出结果的黑盒测试。而黑盒测试与白盒测试的一个最大的不同在于黑盒测试比较随机、灵活,很多问题的测试、发现都是靠一些经验、感觉。

  佳能传真机Model-4是一款面向全球的传真机型,其软件相对而言也很复杂,因此在软件的测试中也先后出现了很多bug,在对这些bug分析总结的基础上结合对先前的modelA3的测试总结谈一下自己对测试的一点心得体会。

  二、测试思路

  我们知道很多软件都涉及到内存(memory)和用户界面(UI)两大部分,佳能传真机软件也都包括这两部分,而这两部分的好坏将直接影响的软件的功能、性能和用户的使用,因此这两部分的测试是一款软件产品测试中相当重要的一部分。下面首先从这两部分的测试谈起。

  1.用户界面测试(UI test)

  M4的用户界面比较简单,而modelA3用户界面相对而言就要复杂得多。在这里谈到的用户界面的测试体会很多都是基于A3的测试心得。

  产品软件界面犹如人的面孔,界面的好坏决定用户对软件产品的第一印象,好的截面能给人一种赏心悦目的感受,好的界面也能起到导向作用,同时界面的好坏将直接影响到用户的操作、使用等。

  界面测试时要注意到文字、符号(图像、logo标签等)显示是否正确、合理。如果一款软件连最基本的文字显示都不正确,可想用户看到后会有什么样的感受,同时在符号(图像、logo标签等)如果不能正确合理的显示将会影响到用户的操作使用等。比如,在A3的文字显示上必须注意好文字显示的是否正确,其大小写是否混淆(日语中的大小写有着严格的区分,大小写代表着不同的单词)等;而在一些图标信息上也是必须严格做到该显示的就要显示出来,不该显示的就不要显示,比如A3中的音量图标、色带图标还有一些multi-key(分别代表着传真发送、传真接受、精度设置、拷贝的F1、F2、F3、F4图标),如果不能正确合理的显示将会导致用户的误解、操作错误等。总之,在文字、符号(图像、logo标签等一些软件界面显示信息)上要做到正确、合理。

  事实上,想网页设计、电脑应用软件等一下在电脑上运行的软件界面测试不仅要注意到易用、合理、协调美观还要注意到一些规范性测试等。在此不便具体介绍,只是为了强调说明用户界面测试的重要性。

  2.内存测试(memory test)

  可以说每一款软件中都要涉及到内存管理,而一款软件的内存处理的好坏将直接影响到软件功能能否正常实现、运行中性能状态是否良好等。应该说在ModelA3和Model4的测试中有很大一部分都问题都有内存方面,而在这方面的测试更是花费了大量时间。下面结合实例来说明一下内存测试的思路、方法。

  在A3的测试中,举两个关于和电话记录有关的问题:1、A3电话薄最大存储容量为100条,如果注册满100条后再进行注册101条电话号码时,最早注册的那条号码将被覆盖掉;如果用户删除第8条以后的任意一条号码,则会引起内存电话记录混乱、同时也影响到来电显示问题;2、A3的来电历史最大记录为30条,当记录满30条时,如果从中随意删除一条记录,然后再来电,会出现某些来电记录被最新来电覆盖的问题,即之前的来电记录有和最新的来电记录一致的现象。

  在M4的测试中也有很多涉及到内存的问题出现,比如小数据量多页传真接收打印时,会出现数据丢失显现。

  内存管理是软件中很容易出问题的部分,我们想将这部分这好也是比较难,但我们可以从以下几个方面来把握:一、内存测试时,对内存进行增加、删除来改变内存记录看其会不会影响到其他的内存记录;二、注意内存存储时,对其进行各种断电或其他中断操作,看这些操作会不会影响到内存记录;三、让内存记录到临界状态,在存储极限状态对其进行一些操作,看在极限状态下会不会出现一些错误或混乱现象。

  总之,内存管理是软件中一项非常重要的部分,内存混乱、出错将影响到软件的功能和性能,今后,无论在哪方面的软件测试中都要注意!

  ==================================================================

  以上两点主要是从测试对象出现谈起的,主要说的是测试层面问题,下面从测试思路上介绍一些常用的且容易发现问题的测试方法.

  ==================================================================

  3.中断测试

  对用户而言,在产品的使用过程中不可避免的会出现一些无法预料到的中断,因此一款软件的设计就要考虑到这些中断的影响,而我们在测试过程中也就必须对软件进行各种中断测试。中断测试是测试中一种常用到的测试方法,中断测试是保证软件功能和性能的一个重要手段,在实际测试中中断测试都很容易找到软件中的一些问题。

  我们在进行中断测试时,要注意到对中断时间点的把握,特别是在一些关键点上很容易出问题。在对M4进行拷贝和各种打印测试时,都大量运用了中断测试,也发现了很多问题,下面举例来说明一下中断测试:

  Eg1.传真在边收边打时,以下是一些中断点:1、传真协议建立的过程中;2、传真刚开始启动接收(到内存)时;3、传真接收过程中;4、传真接收快要结束时;5传真接收完毕刚要启动打印时;6、传真吸纸(pre-feed)时;7、传真吸纸中;8、传真喜纸结束准备启动打印时;9、传真打印过程中;10、传真刚刚打印结束退纸时。通过对以上中断点的测试我们有发现在传真刚打印打印时可以中断掉,而在传真打印过程中不能手动中断打印,而在打印快结束的时候又可以手动进行中断。

  上面的例子说的是对任务本身进行的中断,而在实际测试中,我们还要注意到对一个任务由其他任务导致的中断测试。比如,我们在进行注册的时候,突然来个电话等。这些也都很容易导致一些问题的出现。

  我们在软件测试时不但要进行一些合乎逻辑的功能性测试,而且更要进行一些破坏性的中断测试。可以说,不会对软件实施一些破坏性活动的中断测试的测试者绝不是一名好的测试者!

  顺便再提一下非法测试,一般而言,我们的软件都是按照程序员设计的流程来运行,但在软件运行的过程中难免会出现一些误操,这些非法的不符合逻辑的操作也是我们在测试中必须注意把握的,我们不但要保证软件在正常情况下能够正常运行,而且还要保证使得软件在一些非法的不符合逻辑的操作面前不会出问题,这也就是我们平时所说的要保证软件的强壮性。

  4.多任务测试

  多任务测试也是软件测试过程中必须考虑到的一个方面,比如说我们在报告打印的过程中,突然来电。这时根据规格要求,传真机不但要能正常接听来电,打印动作也不被来电影响,类似于这类的测试很多,而这类问题的测试也是一些bug多发情况。

  在多任务测试时,很容易出现一些死机、某些功能无法正常实现等情形。我们在进行多任务测试时不但要把握这些功能能否正常实现还要看有没有其他一些问题出现。比如,在打印报告的时候来电,在CALL ID打开的状态看来电显示是否正确,在通话结束的时候挂机,看LCD的显示是否又恢复到打印状态时的显示等。

  在进行多任务测试时,我们还要结合一些中断测试等来进行测试,以防止出现一些异常情况。

  5.临界测试

  我们知道,日本是一个地震多发的国家,每年都会有一些或大或小的地震去骚扰一下,为此,日本人曾吃了不少苦。为什么日本会有那么多的地震?原因很简单,从地理上而言它处于亚欧版块和太平洋版块的临界位置,不稳定!所以也就容易出现一些不必要的问题。

  以上只是形象的说明一下临界位置是一个比较敏感地带,表现的不稳定性,容易出问题。我们软件也是如此。因此,对软件进行临界测试时是一个非常重要的方面!

  我们在对M4进行临界测试时,表现最为重要的还是内存方面,往往内存在达到其存储容量的临界点时会有很多问题发生,如数据丢失等。

  临界测试还有如对电话存储极限时的测试:当来电历史里的记录条数处于最大状态或者电话薄中登录的号码数目最大时,我们对其进行一些合法的、非法的、正常的以及非正常的操作来检验软件是否出现一些以外情况等。

  事实上,进行临界测试时还要更多结合一些中断测试,比如之前在传真刚发送完成显示“TRANSMITTING OK”时,我们按来进行 “蓄意”破坏,结果会出现重起情况,这就不应该了。

  三、其他问题

  1.概率性问题

  应该说概率性问题是对任何一个测试者都感到头疼的问题,尤其是那些概率性偏低的问题,很难重现。为此,我们在佳能软件测试时就饱受这方面的折磨。

  一个最为难忘的例子就是对A3进行“CLEAR ALL”操作时出现“MEMORY ERR”问题,这个问题的概率很低,出现的情况很随机,毫无规律性而言,为测这个问题几个人前后做了不下3000次的操作。好在问题最后得以解决——原来是硬件FLASH出现的问题。

  概率性问题是一个让人头疼的问题,但恰恰是这种问题的存在影响了我们产品的性能,试想,软件正在工作的过程中突然出现了死机或者重起的现象将会让用户有着怎样的感受!对于一个小的产平还好,如果大到航空航天、金融系统,如果在运行中出现了这样的问题,将会是怎样一个后果呢?灾难!

  在此,主要是想说明我们在测试时,必须把一些概率性的问题重视起来,对于一些比较严重的概率性的问题,我们的原则应该是已经出现,就要查出,最终解决!在这方面,佳能做的就十分不错,非常值得我们学习!

  2.测试流程

  对于测试流程,大家基本上都是大同小异,在此就不再介绍了。我们所要注意的一点就是在测试流程的执行上一定要严格,尤其是最后发行软件版本前的确认测试,一定要将每一个可能出现问题的地方都要测试到位。

  3.测试文档

  如何编写一个好的测试文档(precheck list)对于测试而言是很重要的一个环节,测试文档是一个测试者测试思路、方法的重要反映。一个好的测试文档所罗列的测试用例首先要全面,要能涉及到软件的各个功能部分,不能有所遗漏。如果测试出现空白,将是一件十分可怕的事情。

  有资料反映,微软在写windows操作系统的测试文档时就写下了10万个测试用例。在测试文档的编写方面,一定要做到全面、详尽,而且最好是经验丰富的测试人员来编写。

  4.测试管理

  测试管理应该说是一门很值得研究的学问,它涉及到测试执行、bug的发现提出、分析评估、分配解决、确认解决情况等很多方面,时间关系,在此不能,也很难一下子把它说的那么到位。下面仅提一下bug管理工具。

  应该说现在的bug管理工具不是太多,而一个好的bug管理工具对软件设计而言又非常重要,一个好的软件管理工具能够帮帮助人们有效的管理软件中出现的问题,提高工作效率。在测试管理管理上,canon使用的是lotus管理工具,这个管理工具相对而言比较好一些,值得我们在今后的工作中借鉴使用。

  四、小结

  一个好的测试者决不限于对一些基本功能的测试验证上,不仅是为了证明某些功能可以实现,更主要的是为了证明某些功能不能实现而进行的一些“破坏性”测试,这样的测试也是为了保证相应功能能够正常稳定的实现。基于这个指导思想我们在佳能传真机的测试时进行了大量的中断测试、掉电测试、临界测试以及其他一些异常操作测试。当然,不管如何测试,软件中的bug都无法全部发现解决,我们所做的就是按照软件测试中的good-enough原则,尽可能多的测试出用户在使用中可能碰到的bug,确保软件质量

  从宏观而言,软件测试现在还处于婴幼儿阶段,还很不成熟,在国际上也没有一个统一的测试标准,我们要做的就是不断地学习、积累、探索。

原文转自:http://www.ltesting.net