常见的测试策略及方法--单元测试

单元测试

概念:单元测试又称模块测试,属于白盒测试,为最小的测试单位(模块或函数),要求对所有的局部和全局的数据结构、外部接口和程序代码的关键部分进行桌面检查和代码审查。

模块分为程序模块和功能模块,其中功能模块指实现了一个完整功能的模块(单元),一个完整的程序单元具备输入、加工和输出三个环节。每个程序单元都应该有正规的规格说明,使之对其输入、加工和输出的关系做出名明确的描述。

测试内容:模块接口、局部数据、边界条件、独立路径和出错处理。

模块接口:测试模块的数据流。如果数据不能正确地输入和输出,就谈不上进行其他测试。因此,对于模块接口需要如下的测试项目:

1.调用所测模块时的输入参数与模块的形式参数在个数、属性、顺序上是否匹配;

2.所测模块调用子模块时,输入子模块的参数与子模块的形式参数在个数、属性、顺序上是否匹配;

3.是否修改了只做输入用的形式参数;

4.输出给标准函数的参数在个数、属性、顺序上是否匹配;

5.全局变量的定义在各模块中是否一致;

6.限制是否通过形式参数来传送。

局部数据结构测试:模块的局部数据结构是最常见的错误来源,应设计测试用例以检查以下各种错误:

1.检查不正确或不一致的数据类型说明;

2.使用尚未赋值或尚未初始化的变量;

3.错误的初始值或错误的默认值;

4.变量名拼写错误或书写错误;

5.不一致的数据类型。

路径测试:对基本执行路径和循环进行测试会发现大量的错误。根据白盒测试和黑盒测试用例设计方法设计测试用例。设计测试用例查找由于错误的计算、不正确的比较或不正常的控制流而导致的错误。

常见的不正确的计算有:

1.运算的优先次序不正确或误解了运算的优先次序;

2.运算的方式错误(运算的对象彼此在类型上不相容);

3.算法错误;

4.初始化不正确;

5.运算精度不够;

6.表达式的符号表示不正确等。

 常见的比较和控制流错误有:

1.不同数据类型的比较;

2.不正确的逻辑运算符或优先次序;

3.因浮点运算精度问题而造成的两值比较不等;

4.关系表达式中不正确的变量和比较符;

5.“差1错”,即不正确地多循环或少循环一次;

6.错误的或不可能的循环终止条件;

7.当遇到发散的迭代时不能终止循环;

8.不适当地修改了循环变量等。

错误处理测试:比较完善的模块设计要求能预见出错的条件,并设置适当的出错处理对策,以便在程序出错时,能对出错程序重新做安排,保证其逻辑上的正确性。这种出错处理也是模块功能的一部分。表明出错处理模块有错误或缺陷的情况有:

1.出错的描述难以理解;

2.出错的描述不足以对错误定位和确定出错的原因;

3.显示的错误与实际的错误不符;

4.对错误条件的处理不正确;

5.在对错误进行处理之前,错误条件已经引起系统的干预;

6.如果出错情况不予考虑,那么检查恢复正常后模块可否正常工作。

边界测试:边界上出现错误上常见的。设计测试用例检查:

1.在n次循环的第0次、1次、n次是否有错误;

2.运算或判断中取最大最小值时是否有错误;

3.数据流、控制流中刚好等于、大于、小于确定的比较值时是否出现错误;

单元测试不但保证局部代码的质量,同时使开发过程自然而然地变得"敏捷"。单元测试对项目或产品的整个生命周期都具有积极的影响:

对需求分析、设计的影响:自动回归测试可以发现代码修改所引入的错误,使开发过程可以适应频繁变化的需求,减轻需求分析和架构设计的压力,轻松实现螺旋式的开发过程。

对后期测试的影响:由于代码错误已很少,大幅减少集成测试和系统测试的成本,自动回归测试也使修正错误的成本大量降低。对维护、升级的影响:高质量的产品大量降低维护费用,另一方面,升级相当于需求的增加或变化,自动回归测试也会产生重要的作用。实施或改进单元测试,是低投入、高效益的技术进步,将极大地提升软件企业和软件产品的竞争力。

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