调测工具VcTester攻略之快速定位问题.docx

调测工具VcTester攻略之快速定位问题.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

调测工具VcTester

调测工具VcTester攻略之快速定位问题

密级:公开

Page

PagePAGE1of6

调测工具VcTester攻略之

快速定位问题

作者:网际游民,成稿于2010年2月

关于本系列文章

本系列文章罗列如下:

《调测工具VcTester攻略之:搭建敏捷开发环境》

《调测工具VcTester攻略之:使用快捷编辑功能》

《调测工具VcTester攻略之:快速定位问题》

《调测工具VcTester攻略之:敏捷开发方式下调测组织过程》

《调测工具VcTester攻略之:脚本驱动API测试》

《调测工具VcTester攻略之:使用脚本桩构造数据驱动测试》

撰写本系列文章时得到ezTester技术专家Sundy多次帮助,在此谨表感谢!

敏捷开发模式下调测习惯的变化

这个问题我专门拎出来讲,大家可能在网上看到过一些资料介绍敏捷开发很少开调试器,不少开发人员3个月甚至半年都不做单步跟踪。很少开调试器是敏捷开发的必然现象,大家知道为什么吗?答案与敏捷开发模式下调测习惯发生了重大变化有关。

初级的敏捷开发要求持续交付,深度的敏捷开发则是以个体为单位的高频度迭代,每次迭代都有测试跟进。如果有人问:我们走的是敏捷流程呀,但产品质量怎么下降了呢?只一种可能,你尚在敏捷初级阶段,持续交付做到了,但进度与质量下降了,为什么呢?因为开展敏捷是有损耗的,目标工作量是限定的,如果目标进度定死,你只能损失软件质量了。深度敏捷则不然,你可能会损失一点进度(或者进度限定,损失一点工作量),但研发质量绝不会下降,下降了的绝不能叫深度敏捷。

上面提到敏捷模式下调测习惯发生变化,指的是深度敏捷,如果是初级敏捷,你的调测习惯很可能几乎不变,原先该怎么开发现在还怎么开发,无非出版本频度加快而己。

根据笔者经验,开发者个体的功能迭代要达到10多分钟(或更短)就完成一轮,深度敏捷才发挥功效,如果是半天或一天才完成一轮迭代,测试设计无论如何是难以跟进的(或免强跟进了但付出重大代价)。

好了,现在我就介绍每10多分钟就迭代一轮情况下,调测习惯有什么变化。首先,你不专为测试写脚本,当敏捷机器快速转动时,每轮迭代你的产品都是可运行、可展示的,驱动运

行、驱动展示的是什么?手工操作吗?如果是手工操作,多半意味着你的深度敏捷到了难以为继的程度。在深度敏捷下,你写脚本首先是为了展示功能,用脚本生成配置数据、用脚本发起功能展示,然后,当你还有余力时,把这样的脚本转化测试用例。这里,根据本人的体验,而非教科书上说辞,随时展现功能在敏捷实践中要优先于正规的测试设计,在某些情况下,比如被测对象比较简单,即使你没编写正式测试用例,但有一堆用于展示功能的脚本,其实并不妨碍敏捷开发目标达成,因为形成正规用例的价值在于重用,如果被测对象很简单,调测过程是否重用已不再重要。

其次,深度敏捷开发中,大部分问题是由脚本驱动的调测行为发现的,而且多数是通过阅读代码方式定位的。因为产品质量始终处于准发布状态,新冒出一个问题你首先回顾最近更改是否导致问题,如果每次迭代添加(或修改)的代码量很小,完全不必依赖单步调试方式定位问题。敏捷开发深度越深,迭代步幅越小,你就越不依赖调试器去定位问题。事实上,单步调试非常耗时耗力,每冒出一个问题都在源码直接看出来,立即解决,那效率有多高!

由于上述调测习惯变化,日常调测中我们每遇到一个问题,首先会简单分析其原因,调测脚本写错了也是可能的,看看被测源码,尝试立即定位问题,如果问题比较复杂,一下子难以定位,你也不必急于开调试器,而应增加若干用例,试着缩小问题范围,将复杂问题分割、简化,让它变成简单问题。

让被测系统受控退出

在《调测工具VcTester攻略之:搭建敏捷开发环境》中已介绍一个被测系统,main函数如下:

intmain(intargc,char*argv[])

intmain(intargc,char*argv[])

{

charbuff[256];

printf(Pleaseinputexittoquit\n);scanf(%s,buff);

return0;

}

现在优化一下,让这个控制台程序是否退出受CSE脚本控制。改成:

intIWantExit=0;

intIWantExit=0;

intmain(intargc,char*argv[])

{

while(!IWantExit)Sleep(1000);

//checkandfreeresourcereturn0;

}

只要IWantExit值为0,主线程就一直循环Sleep,在VcTester集成界面,我们只需运行脚本“vd.

文档评论(0)

hao187 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地湖北
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档