AndroidStudio测试(三)单元测试

这篇文章本来想写技术贴,但是思来想去还是给大家呈上总结贴。

一:什么是单元测试?


官方定义:单元测试是开发人员编写的、用于检测特定条件下目标代码正确性的代码。

二:为什么要做单元测试?


1.便于后期重构。单元测试可以尽可能的覆盖每一项功能的正确性,这样就算后期开发也可以有保障的增加功能或者更改程序结构。

2.优化设计。编写单元测试将我们从调用者的角度观察和思考,迫使我们的设计易于调用和测试,并且解除软件中的耦合。

3.文档记录。单元测试是一种无价的文档,他是函数或类如何使用的最佳解读文档,并且可编译,永远与代码同步。

4.测试方便。相对于手动去测试每个临界值来说这个更加便捷更加省时省事。

三:不写单元测试的接口!!!!

1.单元测试太花时间

软件开发工作那么忙,哪有时间再去写测试,这可能是我们程序员最多的借口。但是真的是这样么?你有没有想过,导致你加班的原因就是你花了太多的时间在手动测试、调试程序上。从而没有考虑到灵活性与设计,当发生需求变更时需要花很多的时间在复杂的代码中完成特定的功能。而这些修改又有可能引发新的BUG。又需要你进行手动的测试,调试、、、、如此的反复。

2.测试不是我的工作

测试的确不是开发人员的工作,但是单元测试确实是开发人员的工作,单元测试是保证单吗正确下的白盒测试。

3.代码编译都通过了还测什么

代码编译通过并不表示你的代码没有错误,比如临界值等等。

4代码原来就没有单元测试,且难以测试

这些基本是接受 别人的项目,而原来的代码没有编写单元测试,再加上之前的代码比较混乱,此时正是需要单元测试的时候,你需要详细的分析降低代码的耦合度,一块块的去拆解。

四:什么是正确的单元测试?

一:边界条件

边界条件是单元测试的重点测试,因为很多Bug都出现在临界值。

①一致性:值是否和预期值一致。

②有序性:值是否像预期那样有序或者无序。

③区间性:值是否位于合理的最小值和最大值之间。

④依赖性:代码是否引用了一些不在控制范围内的外部资源。

⑤存在性:值是否存在。

⑥基数性:是否恰好有足够的值。

⑦时间性:所有的事情发生是否是有序的,是否在正确的时间。

二:覆盖执行路径

该处重点是对多条件的判定,必须覆盖所有可行路径。

看完这些大家是否觉得我们的开发流程有缺陷呢?

欢迎大家关注我的文集,会持续更新。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,342评论 25 707
  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 9,185评论 2 126
  • newrelic是一个非常好用的监控平台。请求分析,数据事务,机器运行状况,错误报警等功能,并且切分的力度足够细,...
    人世间阅读 2,616评论 3 8
  • 先放一张考研时画的幼稚画。 从小我就喜欢画画。可能也画的还不错,幼儿园时还曾经和两个男生被老师叫去她家里练习,后来...
    昵称空白阅读 333评论 6 4
  • [toc] 道路 填土路基 填土路基坡度陡于1.5, 需修成 台阶形式, 每层台阶高度不大于300mm, 宽度不小...
    hi句身阅读 662评论 0 2