模块测试

软件测试的流程

上一篇文章针对软件的人工测试做了简单的讲解,本次内容主要是分享构建大型程序测试的额第一个步骤:模块测试,也叫做单元测试。

顾名思义,模块测试是对程序中的单个子程序、子程序或过程进行测试的过程。之所以详见注意力集中在小模块的测试上,主要有三个原因,首先,模块测试是一种管理组合的测试元素手段。其次,模块测试减轻了调试的难度。再次,模块测试为同时测试多个模块提供了可能,这将并行工程引入软件测试中。

下面,主要从三个方面来讨论模块测试:

1.      测试用例的设计方式

模块测试中测试用例的设计过程如下,使用一种或多种白盒测试方法分析模块的逻辑结构,然后使用黑盒测试方法对照模块的规格说明以补充测试用例。

无论采用哪一种逻辑覆盖方法,第一步都是要列举出程序中所有的条件判断。如对象中所有的IF和DO语句。得到数量较少的判断后,我们可能会选择多重条件覆盖,但应该检查所有的逻辑覆盖准则,看他们的效果如何。例如,我们需要设计充足的测试用例来触发上面的判断并输出结果。实际上,任何逻辑覆盖准则尚不足以胜任为生成模块测试用例的唯一手段,因此,后面还需要用一组黑盒测试用例来补充上面缺失的测试用例。

2.      模块测试及集成的顺序

上一节是讨论如何设计一个有效的测试用例集,那么作为模块测试环节中,模块组装成工作程序的方式也很重要。可以将它分成两类,增量测试和非增量测试。

简言之,非增量测试是指软件测试线单独地测试每个模块,然后在将这些模块组装成完整的测试。增量测试是先将下一步要测试的模块先组装到测试完成的模块集合中。

正常进行测试时,非增量测试所需的工作量要多一些,而所占用机器的时间显得少一些,并且会有更多的机会进行并行操作,对大型软件来讲,十分重要。

如果使用增量测试,可以较早的发现模块中与不匹配的借口,不正确假设相关的编程错误,因此,调试进行的容易一些。增量模式使用先前测试过的模块,取代了非增量测试中使用的桩模块或驱动模块,因此测试会更加彻底。

从计算机行业趋势、人工劳动成本,综合上面的优缺点,增量测试要更好一些。

3.      对执行模块测试的建议

当测试用例造成模块输出的实际结果与预期结果不匹配时,要么该模块存在错误,要么预期的结果不正确。为了降低这种混乱,应在测试执行之前对测试用例集中进行审核或检查。其中流程分析工具可以列举出程序中的路径、找出从未被执行的语句。

小结

单元测试是开发者编写可靠程序的重要技术,尤其是那些面向对象语言的开发者。单元测试是大规模的白盒测试,但这只不过是刚刚开了一个头,后面还讨论更高级别的测试。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容

  • 一、 软件测试基本概念 1 bug的概念 bug类型:defect、fault、problem、error… pr...
    三口一个瓜阅读 3,672评论 0 12
  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 9,192评论 2 126
  • 1****、问:你在测试中发现了一个bug****,但是开发经理认为这不是一个bug****,你应该怎样解决? 首...
    蛋炒饭_By阅读 5,294评论 1 94
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    宇文臭臭阅读 6,723评论 5 100
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    Mr希灵阅读 21,957评论 7 278