Unit testing 测试代码的测试用例…什么界限?

Unit testing 测试代码的测试用例…什么界限?,unit-testing,testing,software-quality,Unit Testing,Testing,Software Quality,因此,我最近被一家打印机公司聘为QA/固件开发人员,我的很多工作都涉及编写小部件/测试应用程序,将其放在打印机上进行测试,以确保所有功能正常运行。 在你将此转移到CareeExchange和程序员等之前…我实际上在这里谈论的是源代码 然而,由于我刚从大学毕业,获得了计算机科学学士学位,我对这个专业领域还很陌生,尤其是QA 无论如何,我很难掌握一个真正好的“方法”来给出一个好的测试用例结果 比如说你从键盘输入数字(0-9)…所以为了测试你需要测试可接受的范围(比如1-100),但我问自己应该在该范

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

然而,由于我刚从大学毕业,获得了计算机科学学士学位,我对这个专业领域还很陌生,尤其是QA

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

比如说你从键盘输入数字(0-9)…所以为了测试你需要测试可接受的范围(比如1-100),但我问自己应该在该范围内测试多少(请记住,其中一些是不可能自动化的,因为我们必须偶尔手动按下它们)

然后你会很明显地在范围外进行测试(但是测试了多少次?)

例如,输入不属于*$%的ASCII字符或字符。 对于如何为有界/无界的情况给出一个好的测试用例,我有点困惑


有什么想法吗?

寻找输入族

负,非负,0,非正,正,0位,1位,2位,3位

这些是输入族的示例

在代码中寻找可能导致您将某些内容分解为新的测试用例族的内容


查找类似但不同操作的错误报告-它们可能会为您提供如何划分系列的线索。

我建议您浏览以获取有关测试策略的信息。詹姆斯·惠特克还写了几本关于测试的书。我自己没有读过这些书,但我确实希望有一天能读


另外,与您所在的其他开发人员、测试人员和QA人员交谈。询问他们的老战争故事,他们发现、修复或听说的最喜欢的bug。很多bug都属于常见的类别,学会识别和预测这些错误在很大程度上取决于经验

如果有帮助的话,你现在遇到了一个真正困难的问题——任何人如果告诉你从几乎无限多的测试用例中选择正确的测试用例是容易的或微不足道的,那么他要么无知,要么试图向你推销一个非常昂贵的工具

按照另一个答案将您的输入分组到族(也称为等价分区)中可能会有所帮助。我建议大家阅读一下测试设计——我喜欢李·科普兰(Lee Copeland)的书《软件测试设计从业者指南》,但你也可能会发现托比·赖伯(Tobbe Ryber)的《基本测试设计》(Essential test design)这本书很有用——这里可以免费下载pdf文件:-首先看一下第10章

Glowcoder关于查看bug报告以寻找线索以及查看代码以获得进一步想法的建议都非常值得跟进。还要注意可能存在“看不见的”界限——即,你不知道的界限,仅仅从代码或要求看是不明显的界限——例如,低于某个值的数字工作得很好,然后在某个明显完全任意的值下,它们会突然开始失败。以此为例: (是的,我在野外见过这个人)

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

下面是一个关于边界测试的视频,以及一些指向进一步资源的指针:

Ya一件大事是安全性,所以我总是输入大量值以确保没有溢出问题:)