查看: 1989| 回复: 6
跳转到指定楼层
上一主题 下一主题
收起左侧

[其他] 求问怎么验证Test Case是对的

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
求教一个关于Software Testing的问题,比如说我现在想写一个Unit Test,去测试某个算法是不是对,例如Leetcode随便一道题目。我在写Test Case的时候,我怎么去算我Test Case给出的Solution是对的?比如说某个算法,暴力是指数级的,题目要求是N^2的,那我写大的Test Case时候该怎么办?暴力解可能对于机器都受不了?谢谢指教。

上一篇:半自学CS中几个数据结构题求解
下一篇:求大神们给一个microsoft leetcode的题目列表
推荐
stellari 2016-1-9 18:08:37 | 只看该作者
全局:
我认为有两套思路:1、用已经(经过长期使用)验证正确的其他算法B产生test case的“标准答案”;2、若没有其他已知的正确算法,或其他算法的运行时间长到不可接受,那就可以用自己的算法算出解后,回头去验证这个解是否满足题目要求。但是无论是哪条思路,除非P=NP,否则不可能存在保证对任何问题都适用的能在多项式时间内验证该implementation正确性的方案。

我个人设计test case时,会用较短的test case去测试代码的“逻辑正确性”,保证该段代码在能够给出正确的结果;而用大的test测试“物理正确性”,包括1)执行时间是否过长和2)是否会出现内存错误等在输入较短时都不容易看出来的因素。但是,短test case必须非常合理地设计,使它们能够反映出所有(至少绝大部分)可能导致出错的场景。

点评

//www.1point3acres.com/bbs/misc.php?mod=faq: 5.0
积分不够请看帮助 http://www.1point3acres.com/bbs/misc.php?mod=faq: 5
谢谢回复!!!豁然开朗!对的,除非P=NP!  发表于 2016-1-10 03:56
回复

使用道具 举报

🔗
lcl3356897 2016-1-9 02:46:24 | 只看该作者
本楼:
全局:
同问。。。。
回复

使用道具 举报

🔗
 楼主| yucheyang2 2016-1-9 02:52:18 | 只看该作者
全局:

这貌似还是一个哲学问题,How to test your test cases...
回复

使用道具 举报

🔗
 楼主| yucheyang2 2016-1-10 03:57:06 | 只看该作者
全局:
stellari 发表于 2016-1-9 18:08
我认为有两套思路:1、用已经(经过长期使用)验证正确的其他算法B产生test case的“标准答案”;2、若没有 ...

非常感谢楼主详细的回答!能再具体说下怎么设计短case吗?例如每个Branch都覆盖到?
回复

使用道具 举报

🔗
shqyking 2016-1-10 04:27:03 | 只看该作者
全局:
我写test case的时候一般就是语句覆盖+分支覆盖。 条件覆盖要求的用例太多了,所以一般就不写了。然后写点临界值的测试。不知道有没有什么需要补充的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表