编者按:这篇文章是应某些手机测试的朋友要求而写。总结的也是一点自己以前手机测试的经验。希望对不知道的人有所帮助,也希望大家们可以完善补充。

手机测试,我做了3年,主要涉及的模块是entertainment.j2me的程序测试。它的测试主要包括,基本功能测试。包括了测试自带程序(pre-installed)和后期通过模拟网或者实网下载而来的程序的生命周期。结合测试,一般指在java group这边指两个条件并存的情况下一些测试,但是这两个条件一般不发生冲突。兢合测试,一般指两个冲突的事件相兢合的情况下的测试。重点在于看系统是否基于既定的优先级进行妥善的处理。此外还有网络测试,指网络上获得程序时的一些测试,包括了对jar,jad的一些属性的改变来测试,还有状态报告的测试等等。当然,在这之外,程序上还分若干种类,不同的种类都有不同的测试。

举个例子来说,j2me程序运行的时候,一个电话和一条短信进来,如何处理?正常来说,第一步是要看冲突事件之间的优先级别,这个一般会在document里面有。比如电话和短信,电话的级别高于短信的级别。体现在这个冲突事件中是电话在没有其他设置的情况下,是可以打断程序的,而短信是不可以的。而在冲突事件之后,每个时间都应该有很好的处理,比如被打断的程序可以在断点继续运行而不是关闭或者起不来了(这个跟设计有关系,不是每个手机的处理方式都一样),电话在冲突的情况下可以打进来,通话质量不受到影响。通话后,结束程序,可以找到相应的通话记录。短信可以正常接收等等。。

一般来说,兢合点是很容易出现问题的。很多人在测试的时候却没有办法测试出来,为什么呢?是因为兢合点没有把握好。

比如,用例这样设计:Start a java app,during the java logo is displayed,incoming a call. check point: System can deal them normally or call can be received and after the call, java app can be continued to running.

有些人会这样做,启动一个程序,然后拨打一个电话,运行5次或者十次,没有异常,ok.

但是有些人会发现问题。差异在哪里呢?冲突点。是java logo出现的那一瞬间需要incoming a call.这个冲突点之前的人没有把握到。

有人会说,java logo出现的时间可能只有1秒不到,我怎么测试阿?总是很难碰上这个点,所在之之前或者之后连续测试,没有问题可以了。

实际的测试中的确有人这么做的。但是其实测试人员也会很清楚,这样的测试,真的是对应了这个测试用例吗?这样得出的ok的结果真的是ok了吗?不是的。这是不能等价交换的。这样的处理,是没有对应这个测试用例,或者说这个测试是一个失败的测试。

怎么做呢?

很简单,你先测试一下,从你选择启动到java logo出现 需要几秒,然后 java logo可以持续多久,然后你测试一下,一个电话从拨完号码到它响应在手机上,需要几秒。取一个交集可以了。

比如,接到一个电话需要6s,java 程序启动包括logo的时间需要3s.那么你可以再拨号后3秒再去启动java app.基本上电话进来和logo出现兢合到了一个点上。这样几次下来,如果没有问题,基本可以心安理得的写上“ok”了。