unit-testing - 用于测试代码的测试用例......有什么界限?

标签 unit-testing testing software-quality

因此,我最近被一家打印机公司聘为 QA/固件开发人员,我的很多工作都涉及编写小部件/测试应用程序以放置在打印机本身上进行测试,以确保一切正常运行。 在你将其转移到职业交流和程序员等之前......我实际上在这里谈论源代码......

然而,由于我刚从大学毕业并获得学士学位。在 CS 中,我对专业领域还很陌生……尤其是 QA。

无论如何,我很难掌握一个真正好的“方法”来给出好的测试用例结果。

比如说你从键盘输入数字(0-9)......所以要测试你会测试可接受的范围(比如1-100)但后来我问自己我应该测试多少范围(请记住,其中一些不可能自动化,因为我们不得不偶尔用手按压它们)

然后你显然会测试超出范围(但多少次?)

例如,输入不属于 * $ % 或字符的 ASCII 字符。 我对如何为有界/无界案例提供良好的测试用例感到有点困惑?

有什么想法吗?

最佳答案

如果有帮助,您现在遇到了一个真正困难的问题 - 任何告诉您从几乎无限数量的测试用例中挑选正确的测试用例很容易或微不足道的人要么无知,要么试图向您推销非常昂贵的工具!

如另一个答案所建议的那样,将您的输入分组到族(又名等价分区)中可能会有所帮助。我建议阅读有关测试设计的文章——我喜欢 Lee Copeland 的书“软件测试设计从业者指南”,但你可能还会发现 Tobbe Ryber 的“基本测试设计”一书很有用——它可以在这里免费下载 pdf:http://www.ryber.se/?p=213 - 首先看一下第 10 章。

Glowcoder 关于查看错误报告以获取线索以及查看代码以获取更多想法的建议都非常值得跟进。还要注意可能存在“不可见”边界的可能性 - 即您不知道的限制,仅通过查看代码或要求并不明显 - 例如低于某个值的数字工作得很好,并且然后在某个明显完全任意的值下,它们会突然开始失效。看一下这个例子: Strangest language feature(是的,我在野外遇到过那个)。

这是一个很好的理由,为什么值得在奇数高值中撒些东西,尽可能多地(在合理范围内)改变您的测试数据 - 您会增加遇到您无法预测的事情的机会。 (这也是反对一遍又一遍地运行完全相同的测试用例的一个重要论点——如果它们是自动化的,那么成本就会更低,并且它们可以作为变化指示器。但是如果你必须手动输入值——你可能以及将它们调高一点,每次都覆盖更多的搜索空间)。

这是一个关于边界测试的视频,以及一些指向更多资源的指针: http://www.testingreflections.com/node/view/4292

关于unit-testing - 用于测试代码的测试用例......有什么界限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5023458/

相关文章:

unit-testing - 在 Go-kit 中为 make 处理函数编写单元测试

unit-testing - AngularJS - 单元测试文件上传

javascript - 如何断言一个函数是从另一个函数中调用的?

python - 仅在 Python 中定义用于测试的变量

testing - 我如何为我们的 QA 部门制定测试计划?

c++ - 嵌入式软件缺陷率

javascript - 让 beforeEach 仅运行其所在文件中的测试

java - 基于 Java 的应用程序的 GUI 测试工具

在 Hadoop 平台上测试

software-quality - QA vs 开发比率