首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >初学者的代码测试-该怎么办?

初学者的代码测试-该怎么办?
EN

Stack Overflow用户
提问于 2012-07-31 07:19:31
回答 5查看 272关注 0票数 1

假设我在一个java方法中有很多嵌套的循环(3-4层),并且每个循环都可以有一些if-else块。我如何检查所有这些东西是否都正常工作?我正在寻找一种逻辑的方法来测试这一点,而不是使用暴力方法,比如替换非法的值。

编辑:你能为初学者推荐一些好的测试书吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-31 07:27:44

我一直被教导的基本测试方法是尽可能多地处理边缘情况。

例如,如果您正在检查变量i在0和10 if(i>0 &&i<10)之间的条件,我自然会测试一些使测试条件为真的值,最好是在边缘附近,然后是真和假的组合的边缘上的一些值,最后是超出界限的情况。使用上述条件,我将测试1,5 ,9,0,10,-1,11,最后测试一个非常大的整数,包括正和负。

这一类与“不替换非法值”相违背,但我觉得你必须这样做,以确保你的条件正确地失效。

票数 3
EN

Stack Overflow用户

发布于 2012-07-31 07:26:14

EMMA是一个代码覆盖工具。您在EMMA下运行您的单元测试,它将生成一个HTML报告,其中包含彩色源代码,显示哪些行已经到达,哪些行没有到达。在此基础上,您可以添加测试,以确保您正在测试所有不同的分支。

代码中的每个if/then都包含一个布尔子表达式,就像循环中用来决定是否进入/重新运行循环的子表达式一样。谓词复盖应该告诉你,你的测试有多彻底。

Wikipedia解释谓词覆盖

条件覆盖(或谓词覆盖)-是否每个布尔子表达式都计算为true和false?这并不一定意味着决策覆盖率。

票数 1
EN

Stack Overflow用户

发布于 2012-07-31 18:27:18

我相信使用debug是发现错误的最简单的方法。您可以在以下链接中找到有关调试的完整解释:http://www.ibm.com/developerworks/library/os-ecbug/

你也可以使用这个链接:http://webster.cs.washington.edu:8080/practiceit/来练习。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11731053

复制
相关文章

相似问题

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