2

全部,

我是一名开发人员,但想了解更多关于测试过程和方法的信息。我相信这有助于我编写更可靠的代码,因为它改进了我可以在将产品交付给测试团队之前使用我的单元测试进行测试的案例。我最近开始研究软件项目的测试驱动开发和探索性测试方法。

现在我更容易为我编写的代码找到测试用例。但是当我不是被测功能的开发人员时,我很想知道如何发现测试用例。比如说,让我们有一个我们在各种网站上看到的基本用户注册表单。假设测试它的人不是表单的开发人员,应该如何测试表单上的输入字段,你的策略是什么?您将如何发现测试用例?我相信这种测试受益于探索性测试方法,但我可能在这里错了。

我会很感激你对此的看法。

谢谢,字节

4

10 回答 10

5

虫子!在添加新测试用例的项目中,我最喜欢的起点之一是查看错误跟踪系统。现有的错误本身就是测试用例,但它们也可以引导您走向新的测试用例。如果一个特定的模块有问题,它可以引导你在那个领域开发更多的测试用例。如果某个特定的开发人员似乎引入了某类错误,它可以指导该开发人员对未来项目的测试。

另一个有用的考虑是更多地关注测试技术,而不是测试用例。在您的注册表示例中,您将如何从业务需求的角度对其进行攻击?安全?并发?有效/无效输入?

于 2010-04-01T13:39:29.073 回答
4

测试计算机软件是一本关于如何进行各种不同类型测试的好书;黑盒、白盒、测试用例设计、规划、管理测试项目,可能还有很多我错过的。

对于你给出的例子,我会做这样的事情:

  1. 对于每个字段,我都会考虑您可以输入的可能值,包括有效值和无效值。我会寻找边界情况;如果一个字段是数字,如果我输入一个比下限小一的值会发生什么?如果我输入下限作为值会发生什么?等等。
  2. 然后,我将使用像 Microsoft 的成对独立组合测试 (PICT) 工具这样的工具,为所有输入字段生成尽可能少的测试场景。
  3. 我还会编写一个自动化测试,使用随机输入敲击表单,捕获结果并查看响应是否有意义(键盘上的虚拟猴子)。
于 2010-04-01T11:18:14.837 回答
1

从不同的角度确定您的假设:

  • 用户怎么可能误解这一点?
  • 为什么我认为它会这样做或应该这样做?
  • 我可能对这个软件应该如何工作有什么偏见?
  • 我怎么知道需求/设计/实施是什么?
  • 关于该软件的优先级、重要性、目标等,可能存在哪些其他观点(用户、管理员、经理、开发人员、法律)?
  • 是否正在构建正确的软件?
  • 我真的知道有效的姓名/电话号码/身份证号码/地址/等是什么样的吗?
  • 我错过了什么?
  • 我怎么会误会(在此处插入名词)

此外,使用此处提到的任何助记符和测试列表:

于 2010-06-30T21:24:24.517 回答
1

问问题。保留问题词列表,并强迫自己提出有关产品或功能的问题。像这样的列表可以帮助您摆脱俗话说的框框或车辙。如果没有任何问题,请不要在疑问词上花费太多时间。

  • 谁的
  • 什么
  • 在哪里
  • 什么时候
  • 为什么
  • 如何
  • 多少

然后,当你回答他们时,问“其他”问题。这迫使你至少暂时不相信你最初的结论。

  • 还有谁
  • 还有谁
  • ETC..

然后,问“不是”的问题——否定或反驳你的假设,并挑战它们。

  • 谁不需要(例如,谁可能不需要访问此安全功能,为什么?)
  • 什么不(用户不关心哪些数据?用户不会在此文本框中输入什么?您确定吗?)
  • ETC...

问题的其他修饰符可能是:

  • 否则
  • W风险
  • W不同
  • 结合两个疑问词,例如,谁和何时。
于 2010-06-30T21:42:31.650 回答
1

在表单的情况下,我会看看我可以输入什么并在那里测试各种边界条件,例如如果没有提供用户名会发生什么?我想起了有几种不同形式的测试:

  1. 黑盒测试 - 这是您在不查看正在测试的内容的情况下进行测试的地方。这里的挑战是无法看到内部可能会导致限制什么是有用的测试以及有多少不同的测试是值得的。这当然是一些默认测试的样子。

  2. 白盒测试 - 在这里您可以查看代码并获得代码覆盖率等指标,以确保您覆盖了代码库的百分比。这通常会更好,因为在这种情况下,您对正在做的事情了解得更多。

与逻辑测试相比,还有一些性能测试在某处也值得注意,例如表单验证我的速度有多快,而不仅仅是表单这样做。

于 2010-06-30T21:49:27.103 回答
0

集体头脑风暴会议。(或必要时成对非正式地)

于 2010-06-30T21:18:05.743 回答
0

与他人讨论测试想法。当你向别人解释你的想法时,你往往会找到改进或扩展它们的方法。

于 2010-06-30T21:18:51.047 回答
0

制作具有在顶部和侧面列出的主要特征的数据表,并考虑每对之间可能的交互。在三个维度上执行此操作可能会变得笨拙。

于 2010-06-30T21:26:48.443 回答
0

为不同类型的任务(例如整数验证工作流程步骤等)保留包含常见问题和问题类型的测试目录。

于 2010-06-30T21:28:27.767 回答
0

利用James Bach的探索性测试动态满足启发式测试策略模型。两者都提供了开始更广泛或不同地思考产品的一般方法,这可以帮助您在测试中在盒子和启发式之间切换。

于 2010-06-30T22:33:58.033 回答