1
3
您所描述的实际上是集成测试(或多或少)。不,它不是反模式,而是软件开发生命周期的一个必要部分。 . 原因有几个方面:
我刚刚从Luke Hohmann的书Beyond Software Architecture中读到一个例子:在一个应用程序中,通过创建和维护实际机器中硬件组件ID的“快照”,应用了强大的反盗版防御,开发人员用单元测试很好地覆盖了代码。随后,QA在一台没有网卡的机器上试用,成功在10分钟内使该应用崩溃。事实证明,由于开发人员正在开发Macs,他们理所当然地认为这台机器有一张网卡,其MAC地址可以合并到快照中。。。 |
2
4
IMO,我没有文献支持我,但我们各种测试形式之间的关键区别在于范围,
如果您熟悉单元测试,那么没有完美或“魔弹”测试也就不足为奇了。集成和系统集成测试非常类似于单元测试,因为每个单元测试都是一组测试集,用于验证某种行为。
在实践中,您可能对系统的工作方式有很好的了解,因此编写典型的正路径测试和负路径测试将是自然而然的事。然而,对于任何足够复杂的应用程序,期望每个可能场景的总覆盖率是不合理的。
ps:pet peeve#1:管理者或开发人员称集成和系统集成测试为“单元测试”,仅仅是因为nUnit或MsTest被用来自动化它。。。 |
3
0
也许你是重复的代码,但你不是重复的努力。单元测试和集成测试有两个不同的目的,通常在SDLC中这两个目的都是需要的。如果可能的话,将用于单元/集成测试的代码分解到一个公共库中。我也会尝试为您的单元/集成测试b/c创建单独的项目
是的,的确如此。 |
4
0
在集成测试中,就像在单元测试中一样,您需要验证测试中发生的事情。在您的示例中,您指定了
|
5
0
您可以回顾一下markusclermont和johnthomas关于AJAX应用程序自动化测试的一篇演讲“驯服野兽”。 YouTube Video 非常粗略地总结了一个相关的部分:你想使用最小的测试技术,你可以为任何具体的验证。用另一种方法拼写相同的想法,就是尽量减少运行所有测试所需的时间,而不牺牲任何信息。 因此,更大的测试主要是为了确保管道是正确的——标签A实际上是在插槽A中,而不是插槽B中;两个组成部分是否都同意长度是以米为单位,而不是以英尺为单位,以此类推。 在执行代码路径时会有重复,可能您会重用一些设置和验证代码,但我通常不会期望您的集成测试包含在单元级别上发生的相同级别的组合爆炸。 |
6
0
驾驶您的TDD和BDD将涵盖大部分这对你来说。你可以用Cucumber/SpecFlow和WatiR/WatiN。对于每个特性,它都有一个或多个场景,您一次处理一个场景(行为),当它通过时,您将进入下一个场景,直到特性完成。
正如其他人指出的,您当然可以使用集成测试。 |
mg610 · 如何开始C++单元测试 2 年前 |
Phil Gunning · 使用嵌套函数更改进行模拟测试 2 年前 |
shilin agre · 在Python中测试修饰函数 2 年前 |
SlipScout · Unittest只传递单个值,而不是获取多个值 2 年前 |
Alex · 从实际对象的实例返回默认模拟结果 2 年前 |