软件测试技术或类别


16

您知道哪种软件测试?我听说过测试驱动开发,单元测试等,但是不了解它们的重要性和差异。例如,为什么我们要使用回归测试或验收测试。他们提供什么优势?


8
其中的哪一部分令人困惑或不完整? zh.wikipedia.org/wiki/Software_testing
S.Lott

2
如果您不关心,可以跳过回归测试;如果您不关心是否破坏了现有功能,则可以跳过接受测试;如果您不在乎实际使用软件或为软件付费的人是否认为软件可以满足他们的期望。专业的程序员在乎这两个方面。
HLGEM 2011年

我投票重新提出这个问题,因为这是我唯一能很好地概述各种考试类别的问题。也许有人有一个很好的主意,该如何重新表达该问题以使其更适合本网站?
布朗

Answers:


38

我认为大类是:

黑匣子测试。您不会看到代码,只是在某种程度上进行了盲目测试,因为应用程序或系统中的内容对您而言是隐藏的。因此,在这种情况下,人们并不了解所有错误情况,而不得不猜测各种边界条件,这些条件可能会或可能不会很明显,才能找到所有情况。

白盒测试。您确实可以看到代码,并且可以验证使用了哪些代码路径,因此可以将代码覆盖率用作度量标准,以确保系统中使用了所有逻辑。这里的想法是知道代码看起来像什么,以帮助指导测试,从而使其不像黑盒测试那样神秘。

灰盒测试是前两者的混合。

在白盒测试中人们经常会看到边界情况,因为在编写测试要打的代码中有多种条件可以看到,例如,如果您有一个要求输入数字的程序,而有人输入X该如何处理应该在代码中的某个地方看到。

测试的一般分类为:

单元测试。这些通常是测试特定事物的最小测试,例如,这种方法是否可以处理这种边界情况?注意,依赖注入在这里可以用于涉及模拟对象的情况,以减少测试的任何依赖。

整合测试。在这些测试中,连接了两个组件并进行了测试,以确保这些组件能够很好地协同工作。请注意,虽然单元测试可以独立工作,但是在这里测试事情做得如何,因为层之间可能存在沟通不畅的情况,导致这些测试在捕获各种陷阱时很有用。术语“端到端测试”用于集成测试,在该集成测试中,从“应用程序的一个端点到另一个应用程序的端点”(无论这意味着什么)测试了整个组件链。

回归测试。这些将是过去进行过的测试,然后再次进行以确保已修复的问题保持不变,并且不会将错误重新引入代码中。

可用性测试。将进行这些测试,以查看最终用户如何使用该软件完成各种任务。在什么地方可以自动执行某些操作以更快地执行某些操作或调整UI,以便更易于使用。

用户验收测试。这些将由最终用户进行测试,以便他们可以第一手了解事物的工作原理,并同意该软件确实满足了首先提出要求的业务需求。

功能测试是基于被测软件功能规格的所有测试。这些始终是黑盒测试。

性能测试。将进行这些测试以确保系统可以处理一定量的负载而不会变得太慢。例如,测试一个新的服务器Web场可以处理100个用户同时访问一个站点,这就是性能测试的一个示例。这些也可以称为“负载测试”或“压力测试”,因为通常的想法是将系统推到极限,或者验证系统可以处理来自其他部门的某些计划。这些测试的基本原理是,通常有许多配置设置需要优化,而这需要花费大量的工作才能发现瓶颈并解决相关问题。这里的瓶颈可能是内存,I / O,CPU或网络带宽,这会导致系统响应不如预期。

测试驱动开发是一种方法,它不涉及特定类型的测试,而是在代码之前编写测试,以便测试是驱动开发的驱动力,而不是行为领域功能,它们是处理。

持续集成是一种定期运行某些测试(例如单元测试,集成测试和回归测试)的做法,这样,如果更改中断了测试,则应尽早捕获到此信息。


5
+1 ...不幸的是,尽管如此,仍然有手动测试。
史蒂文·埃弗斯,

2
和Stres测试-所有可能的会话都在同一时间连续测试同一口罩,并持续通过测试场景,其中某处作为UAT的一部分包括,btw +1
mKorbel,2011年

1
您不是缺少覆盖/分支覆盖测试吗?另外,是否可以在某种内存监视系统下运行,例如“ Electric Fence” malloc或Valgrind?
Bruce Ediger

1
@Bruce Ediger:覆盖率是白盒测试的统计信息,而不是测试本身的方法,您描述的工具用于性能测试。
史蒂文·埃弗斯

我必须在“工具...用于性能测试”上有所不同。在某些语言(C或C ++)中,在valgrind中运行大量的单元测试会发现上面列出的其他所有测试都找不到的错误。Valgrind当然是调试工具,但是在valgrinded程序中运行测试是非常必要的。
Bruce Ediger

4

执行回归测试以确保对系统的新更改不会破坏任何本应不受更改影响的现有功能。

验收测试通常由客户/客户/业务用户完成,它通常比其他形式的测试更高级,并且执行该测试,以便要求更改的人员对它们感到满意,并允许您将更改推广到自己的生产系统。


1
而且最重要的是,他们同意他们得到了想要得到的东西,并且现在可以付款给您。
Mchl 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.