不会设计测试用例,头疼

2020-10-10 17:56:06 +08:00
 Orenoid

现在需要给项目里的一个功能写测试代码,这个功能会执行一个比较复杂的流程,输入一批数据后进行一个统计,最后算出几个数字,现在我需要校验这个统计逻辑是否正确。
首先我在测试用例里会把这个流程也执行一遍,拿到它的计算结果(记为 A )。而我的疑问是,我要怎么去校验这个结果的正确性,我目前有两个思路:

  1. 因为测试用的数据源都是我写死的,我可以根据相应业务逻辑单独算一遍,算出正确结果(记为 B ),然后直接拿 A 、B 去比对,但是这样好像会导致测试用例的可读性和可维护性很差,因为结果 B 被我写死在测试用例里了。
  2. 或者在测试用例里,模拟这个业务流程重写一遍统计的逻辑,通过代码算出结果 C,然后再对比 A 、C,但这样大概率还是会按照原代码去实现,似乎又达不到测试的目的。

请教下哪个比较合理,或者是否有更好的设计思路。

2547 次点击
所在节点    程序员
7 条回复
lewis89
2020-10-10 18:04:12 +08:00
DIP
renmu123
2020-10-10 18:13:13 +08:00
我倾向于 2,可能你刚写完代码测试没什么问题,但是十个月后谁也不知道哪里会被改动,导致结果错误。可以每次测试的时候取一定数量的随机数计算对比 a 和 c,也可以将一些边界值以 1 的方法进行测试
xuhai951753
2020-10-10 18:14:42 +08:00
一般都是方案 1 吧。。多设置几组测试数据。然后提高测试行覆盖和分支覆盖就好了。
可读性的话参考下 bdd 那种框架。
zqz19941106
2020-10-10 18:18:18 +08:00
都做 测试不怕多测
chenluo0429
2020-10-10 18:21:04 +08:00
在我看来测试用例主要还是检测在相关代码修改之后,功能是否还能满足原设计,确定算法写的没问题,最开始的测试用例都是直接相关的逻辑生成的。
如果一定要验证新写的功能,那就只能额外去设计数据了。
balabalaguguji
2020-10-10 18:38:40 +08:00
我最近才做了一个测试用例的视频教程: https://www.bilibili.com/video/BV1nh411974p?p=8
如果你的是 http 接口的话,很适合,可以看下
hardwork
2020-10-10 18:50:30 +08:00
1 和 2 都行吧,看哪个成本小,正确率高。
用 2 你要保证自己程序的正确性。。
用例设计还是老理论,边界值,归类法这些。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/713746

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX