一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 495|回复: 6
收起左侧

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

[复制链接] |试试Instant~ |关注本帖
yucheyang2 发表于 2016-1-8 16:35:36 | 显示全部楼层 |阅读模式

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
求教一个关于Software Testing的问题,比如说我现在想写一个Unit Test,去测试某个算法是不是对,例如Leetcode随便一道题目。我在写Test Case的时候,我怎么去算我Test Case给出的Solution是对的?比如说某个算法,暴力是指数级的,题目要求是N^2的,那我写大的Test Case时候该怎么办?暴力解可能对于机器都受不了?谢谢指教。
stellari 发表于 2016-1-9 18:08:37 | 显示全部楼层
我认为有两套思路:1、用已经(经过长期使用)验证正确的其他算法B产生test case的“标准答案”;2、若没有其他已知的正确算法,或其他算法的运行时间长到不可接受,那就可以用自己的算法算出解后,回头去验证这个解是否满足题目要求。但是无论是哪条思路,除非P=NP,否则不可能存在保证对任何问题都适用的能在多项式时间内验证该implementation正确性的方案。

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

使用道具 举报

 楼主| 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 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-9 08:18

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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