【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
嵌入式产品做好了,下面就是测试和量产了。以按键+屏幕的开发模式为例,如果仅仅是简单的功能测试,那还比较好解决,只需要安排专门的测试人员,按照使用手册去做就可以了。但是如果是复杂测试,特别是压力测试,这个时候再靠人去测试,其实是不太现实的。所以,我们得依靠方法论、依靠工具去完成更复杂的测试,这样才能发现更深层次的问题。
1、压力测试需要工具
简单的测试、日常的测试,测试人员是可以自己搞定的。但是一旦面临复杂的测试,特别是压力测试,人其实是搞不定的。一方面这种测试枯燥乏味,另外一方面人需要休息,是没有办法做到几千、上万次的反复测试。
2、用脚本来模拟人的操作
前面我们说过,对于按键的输入,尽量归集到一个地方,集中送给状态机。等到业务处理好之后,再完成各个ui的更新。这里面,其实按键的输入,只是整个系统的一个环节。这个输入,是真的按键输入,还是仿真输入,其实一点都不重要。只要有这个输入即可。
所以,一种比较简单的办法就是通过编写脚本,来实现按键的输入。这个脚本理论上不仅仅是配置,最好还能编程。
3、引入lua
和python相比较,lua是一个比较轻的脚本语言。使用lua,有很多好处。一方面是它集成比较简单,可以比较容易地集成到我们已有的项目当中。对于脚本当中需要的函数,也可以通过c语言快速地实现,比如像这样,
lua_register(L, "press_mode", (lua_CFunction)&press_mode_Function);
lua_register(L, "release_mode", (lua_CFunction)&release_mode_function);
对应的实现就是这样的,
static int press_mode_function() // press_mode
{
::receive_key_event(KEY_MODEONE, KEY_DOWN_EVENT);
return 0;
}
static int release_mode_function() // release mode
{
::receive_key_event(KEY_MODEONE, KEY_UP_EVENT);
return 0;
}
这样在脚本里面直接调用函数,就可以实现和真实按键一样的效果。另外一方面,lua脚本语法简单,写起来很容易,哪怕是没有学过的人,只要通过几个demo,也可以短时间之内快速上手,类似于这样,
--for linux, cygwin or mingw
function sleep(n)
os.execute("sleep " .. tonumber(n))
end
--sleep for a while
sleep(10)
i = 1
while i < 50 do
press_mode() --press mode key
sleep(0.5)
release_mode()
i+=1
sleep(3)
end
4、其他要注意的方面
一般测试人员要求都不会太高,所以测试的时候,尽量把重复、单调的工作,用工具来实现。这样不仅可以减轻测试的负担,也可以促使测试人员把精力转到测试用例的设计上面来。并且越到后期,简单的测试越不能发现问题,这个时候只能靠脚本、靠方法论,才能让产品越可靠,这靠人本身是没有办法做到的。