好钢用在刀刃上:测试技术应用之合适设计

发表于:2011-2-10 11:39

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:肖利琼    来源:51Testing软件测试网采编

  不同行业不同业务,测试方向会不同,如测试手机产品等的嵌入式软件与测试Web互联网软件就有很大不同。面对林林总总、错综复杂的测试对象,选择什么样的测试技术,如何应用,正是测试技术的应用设计需考虑的。

  下面通过“通信的心跳在狂蹦”及“解开用例失效之迷”两个案例的分享,希望能帮助读者理解测试技术应用设计的重要性。当出现漏测后,如何分析问题、解决问题,并做如何改进以防患未然。

  1、通信的心跳在狂蹦

  通信心跳是当今通信技术应用中常采用的一种方法,指服务端每隔一段时间发一指令包到客户端,客户端收到后,再反馈应答指令包,以表示自己还处于连接状态。否则,如果间隔一定时间未收到这样的指令包,则服务器认为客户端已经断开,而进行相应的客户端断开逻辑处理。

  【案例】通信的心跳在狂蹦

  背景描述:一天,某市三甲医院检验科的医生特别忙碌,等在门外边排队取微生物检测报告的用户明显比往日多。据当班的陈医生说是

因为PC端的数据接收软件出了问题。原来与检测仪连接后,系统可一边在仪器端测量样本,一边在PC端进行数据处理,同时PC可自动打印报告单,但现在接收软件很容易报错,严重影响了检查速度。据陈医生说,前几天按仪器厂家维护人员要求,对仪器软件进行了升级,但这些天用过此仪器,也可以在PC通信软件上打印数据。今天人多,软件却出了问题。

  说明:血球仪,即血液细胞分析仪,是用于医院检验科测量病人血细胞的精密仪器。背景中描述的检测仪与PC端数据接收软件通信的物理示意图如图3-13所示。

  事故影响分析:从前面的背景描述中,可清楚看到对终端用户医院所造成的不良影响,更严重的是一些急诊病人不能及时得到检验报告单而延误了病情的诊断,更是间接造成了人的生命安危问题,影响非同小可,是一个急需解决的问题。

图3-13  微生物检测与PC数据接收软件通信物理示意图

  问题分析:该医院用的微生物检测仪与数据通信接收软件并不是同一家公司的,但它们都遵守行业的通信协议,所以双方的数据可以通信。医院先找到数据接收软件的公司,该公司分析说是由于仪器端软件快速发送心跳包,打破了原来的通信规则,把接收端的缓冲很快挤满了,而造成了内存溢出错误。于是问题很快被转到仪器软件的研发部门。

  问题进一步分析:仪器软件的开发人员接到反馈后,马上组织相关人员进行分析,发现是由于开发人员在解决通信速度慢问题时,把通信心跳的3秒延迟去掉了,导致仪器(服务器端)一旦与PC数据接收软件(客户端)建立连接后,一直不停地发心跳包给客户端,使得通信协议工作紊乱。在客户的内存处理机制欠佳的情况下,很快造成溢出,软件工作失常。问题的原因找到了,开发人员快速地通过修改代码,对编译版本进行处理,测试人员复测后,第二天对院方的仪器软件做了升级。

  漏测分析:分析当时的测试记录,通信的功能测试用例存在,用户常规使用场景测试用例也存在,采用的都是黑盒功能测试方法。而问题恰恰是出在与时间相关的通信连接上,且这种连接是在服务器端没有数据包(测量数据)传输的情况下才发生。测试为什么会遗漏这个测试点?要如何做才能发现这个问题,又要如何做才能在日后规避这个问题呢?

  改进测试方法:对通信的测试,不能仅停留在业务功能。有效可行的方法之一是通过网络抓包工具截获通信端口直接出来的数据进行分析,可以透明地发现通信双方收发数据的正确性。一旦存在丢包严重,协议工作将紊乱,在通信端口截获的数据流中可以很快反映出来,并及时发现存在的问题。

  一个人的成长过程中会遭遇很多挫折,只有从不断地跌倒中爬起来,再跌倒再爬起来,才能抵达一站又一站的成功彼岸。测试也一样,需从一次次的漏测分析中吸取教训,找到测试的盲点并进行突破。什么类型的测试,需应用哪些测试技术,并没有一个通用的标准。失败是一种财富,能否合理应用各种测试技术关键要在测试对象的深度分析上下工夫。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • dyc1012
    2013-9-23 13:24:30

    术业有专攻

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号