问题标签 [functional-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
automated-tests - 你用 WaTiR 吗?
有没有比WaTiR更好的单元测试工具来进行 Ruby Web 测试?还是事实上的标准?你使用什么单元测试工具?
unit-testing - 为什么功能测试还不够?单元测试提供什么?
我刚刚与我的首席开发人员进行了交谈,他不同意单元测试是所有必要或重要的。在他看来,具有足够高代码覆盖率的功能测试就足够了,因为任何内部重构(接口更改等)都不会导致需要重写或重新检查测试。
我尝试解释但没有走得很远,并认为你们可以做得更好。;-) 所以...
对功能测试不提供的代码进行单元测试有什么好的理由?如果你只有功能测试,会有什么危险?
编辑#1感谢所有出色的答案。我想补充一点,通过功能测试,我不仅仅指对整个产品的测试,还包括对产品内的模块的测试,而不是在必要时进行模拟的单元测试的低级别等。另请注意我们的功能测试是自动的,并且会持续运行,但它们只需要比单元测试更长的时间(这是单元测试的一大优势)。
我喜欢砖与房子的例子。我想我的首席开发人员说的是测试房子的墙壁就足够了,你不需要测试单个砖块...... :-)
asp.net-mvc - 涵盖 Asp.Net Web Apps 的功能测试软件/框架?
我最近开始使用NexusLight,一个功能测试自动化框架。是否有更多的框架可以做类似的工作?
相关问题:从用户角度进行端到端应用程序测试
unit-testing - 在典型的 Web 应用程序中,单元测试与功能测试之间的正确平衡是什么?
单元测试的编写和维护成本更低,但它们并不涵盖所有场景。它们之间的正确平衡是什么?
unit-testing - 如果您已经进行了功能测试,是否还需要进行单元和集成测试?
我公司的人认为单元测试是很多额外的工作,与现有的功能测试相比,它提供的好处更少。单元和集成测试值得吗?请注意在设计时并未考虑测试的大型现有代码库。
unit-testing - 哪种类型的单元测试在商业价值方面的回报最大?
我的问题假设人们已经相信某种单元测试是值得的,并且实际上将它们写在他们当前的项目中。让我们还假设代码的某些部分的单元测试不值得编写,因为它们正在测试微不足道的功能。示例是 getter/setter,和/或编译器/解释器将立即捕获的东西。相反的假设是“有趣”的代码值得测试。
testing - 测试整个程序。最佳实践
我目前正在用 python 开发一个库和一组使用这个库的程序。单元测试要求我从库中导入每个模块,并测试其中的类和例程。没问题。我有一个单独的测试目录,其中包含我的所有测试并导入库模块,我在开发时运行这些模块。
但是,在测试程序时,情况会发生变化。要进行测试,程序必须作为一个整体运行。程序假设找到已安装的库(如果我在我的机器上安装了它的早期版本,这实际上可能是这种情况,虽然是错误的,增加了更多的麻烦)。目前,我的程序由具有 PYTHONPATH 定义的测试套件运行,我在部署之前手动执行(IOW,我不执行安装),但我认为我做得不对。我觉得一般来说,一个程序应该在完全部署后进行功能测试,但这意味着我每次想要执行功能测试时都必须安装它。
您对整个程序的功能测试有何经验和建议?你是在部署之前还是之后做的,如何做?
谢谢
请注意,我没有故意包含 python 标记。虽然我的问题是特定于 python 的,并且我更喜欢与 python 相关的答案,但我认为也可以从其他语言的专家那里获得贡献。
编辑:正如评论中所报告的,事实是我的程序在安装时必须导入只有在部署时才能找到路径的模块(我动态下载并安装依赖项,它们没有安装在我的机器上)。我无法从测试中操作 sys.path,因为这意味着我从另一个程序(运行并产生 system() 调用的测试套件)修改程序(我的可执行文件)的 sys.path。
换句话说,我必须在不部署的情况下测试程序的唯一方法是执行程序,并将 PYTHONPATH 设置为包含 deps 和程序使用的库由 make 脚本安装的目录(正如我所说,下载、编译并将所有内容“安装”在临时目录中)。
在部署时,deps 和可执行文件被打包在一个类似“OSX 包”的结构中,该结构是完全可执行和可重定位的。
编辑:
添加了 150 赏金,看看我是否可以获得更多反馈。
编辑:
我感谢所有答案并投票赞成所有答案。这个选择对我来说是一个艰难的决定,但 LudoMC 让我想起了我很久以前研究过的 V 模型测试方法。感谢所有人提供的非常好的答案。
integration-testing - WatiN test data reset/clean up
I'm wondering how people are currently resetting their data / cleaning up test remnants for their WatiN/Wartir tests?
For example, lets say there's a test to add a user into the system and the username has to be unique. Obviously the first run without any users should work fine, but the second run will fail without manual intervention.
ruby-on-rails - 使用 RESTful 身份验证插件进行 Ruby on Rails 功能测试
我今天开始为我的 Rails 应用程序编写功能测试。我使用 RESTful 身份验证插件。我遇到了一些令人困惑的事情,希望有人可以为我澄清。
1)我写了一个快速登录功能,因为我的rails应用程序中的大多数功能都需要身份验证。
我看到这个功能的问题是,它基本上是伪造的身份验证。我应该担心这个吗?只要我在某处测试真正的身份验证方法,也许可以走这条路。或者,这可能是一种糟糕的做法。
2) 第二个令人困惑的事情是,在我的功能测试的某些地方,我需要进行完整的身份验证过程。当用户被激活时,我让 do_activate 方法为用户创建一些初始对象。如果有意义的话,它类似于为学生应用程序创建一个空白笔记本对象和笔对象。
因此,为了正确测试我的应用程序,我需要用户达到该激活状态,以便创建这些对象。我目前正在使用 Factory Girl 创建用户,然后调用上面的 login_as 函数来伪造身份验证。
我想另一种选择是跳过完整的身份验证序列,只使用 Factory Girl 创建空白对象。我可以在其他地方测试正确的身份验证。
你怎么看?如果我应该通过正确的顺序,为什么下面的代码不调用 do_activate 函数?
谢谢!