课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
通过不停的测试我们可以对软件的运行情况以及后续的改进有更全面的了解,而许多企业也将测试覆盖率列入了考核指标之中,下面我们就通过案例分析来了解一下,测试覆盖率的意义都有哪些。
如果项目中指定要求一定的测试覆盖率,开发者会尽力去达成。不过问题是,开发者很容易达成覆盖率这个数字,用低质量的测试用例,差的情况你会发现项目中的测试用例都是assert(true)(我们称之为空用例)的。但是即使你有很多非空用例,你也会发现这些用例很难发现代码中的问题。
从编写代码的角度来说,编写测试用例是一件很费脑精的事情(不会比写功能代码轻松)。测试驱动开发是一个很好的工具,但是仅仅测试启动开发不能帮助你写出高质量的测试用例。如果你写测试代码时候,考虑比较周全,你会期望测试覆盖率达到80%或90%,但是我很怀疑全部测试,全部测试只能让对测试覆盖率这个数字感兴趣的人们开心,而完全不知道全部测试的内容。
人们关注测试覆盖率这个数字的原因是他们想知道项目测试是否充分。很低的测试覆盖率,如低于50%,很确定是有问题的;但是很高的测试覆盖率并不表示代码测试很充分。是否充分测试这个问题很复杂,并不是一个测试覆盖率数字就能回答的。我的观点是,如果下面两点成立,你项目的测试覆盖率就比较充分:
发布的版本中bug很少。
你非常反感改某些代码因为你害怕改动会引入bug
为了测试覆盖率,有时候你会写很多测试用例,过多的测试用例不仅对提高测试质量没有用并且还会提高维护成本。当你删除一些测试用例后发现测试还是充分的,就说明你的测试用例过量了。但是这个很难衡量。测试用例过量的一个比较明显的特征是测试用例执行很慢。还有就是当你改动一处代码,需要改动很多处测试代码的时候,可能你的测试用例过量且重复了。
因此又回到初始的问题:测试覆盖率的意义是什么?它能帮你找到项目中未测试到的代码,每天执行测试用例来发现项目中未测试的代码,是很有价值的。你是否会感到忧虑如果又代码未被测试?
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。