首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么时候我应该感觉到我的单元测试已经完成了?

什么时候我应该感觉到我的单元测试已经完成了?
EN

Stack Overflow用户
提问于 2018-08-29 19:48:32
回答 1查看 28关注 0票数 0

我最近就被这个问题给打击了。什么时候我应该感觉到我的单元测试已经完成了?也就是说,在进行单元测试时,您对完成的定义是什么?代码覆盖率(函数覆盖率、语句覆盖率、分支覆盖率、条件覆盖率)是否相同?

你不能测试所有可能的场景,但考虑到这是一个哲学问题,我想我应该把它贴在这里。

EN

回答 1

Stack Overflow用户

发布于 2018-10-19 08:16:50

我的方法是牢记单元测试是为了发现某些类型的bug。一旦您充分确信您的单元测试捕获了所有这些bug,您就完成了。根据被测系统的不同,您需要的置信度可能会有所不同,甚至可能需要其他技术,如正式证明等。

有一些系统的方法可以帮助您派生测试用例,特别是为了找到可能存在的错误,比如边界测试(它有助于找到许多不一致的错误),或者等价分区。

覆盖率分析可以帮助您识别您遗漏的运行时场景(及其相应的潜在错误)-但是达到一定的覆盖率级别可能不是一个有帮助的目标,原因如下:

  • 不是所有的bug都可以或者应该在单元测试中被发现。例如,对于内存泄漏,您宁愿使用内存检查器。对于越界访问,可以使用静态分析,也可以使用内存检查器。为了测试与其他组件或硬件的交互,您更愿意进行集成测试:只处理交互的代码应该包含在集成测试中,但不一定涉及unit-testing.
  • It。可以确定,某些but不太可能花费您的时间来为它们创建测试。请记住,你每小时只能花一次时间,并且你应该做最有可能发现bug的事情。因此,运行静态分析并处理结果可能比为琐碎的getter和setter编写测试用例更好地利用时间-尽管这是增加测试覆盖率的一种简单方法……
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52076724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档