【问题标题】:How should we automate system testing? [closed]我们应该如何自动化系统测试? [关闭]
【发布时间】:2011-03-10 02:43:19
【问题描述】:
我们正在构建一个基于 SalesForce.com 云的大型 CRM 系统。我正在尝试为系统制定一个测试计划,但我不确定如何创建系统范围的测试。我想为此使用一些行为驱动的测试技术,但我不确定应该如何将它们应用到平台上。
对于我们将在系统中构建的自定义部分,我计划使用 SpecFlow 的 Cucumber 在 UI 上驱动 Selenium 操作来解决此问题。但是对于 SalesForce UI 自定义,我不确定要进行多深的测试。工作流和验证规则等自定义可以封装很多我认为应该测试的复杂逻辑。
在 SalesForce 中为这种开箱即用的功能编写 Selenium 测试对于价值而言似乎过于繁重。您能分享一下您使用 SalesForce.com 平台进行系统测试的经验吗?我们应该如何处理?
【问题讨论】:
标签:
testing
selenium
cucumber
salesforce
specflow
【解决方案1】:
这就是预先制定详细的测试计划的问题。你试图猜测你会得到什么样的错误,有多少,在什么领域。这可能很棘手。
也许您应该制定总体主测试计划,仅指定测试策略、主要工具集、风险、您希望在给定区域进行多少测试的相对数量(基于风险)。
然后,当您开始处理给定的功能或迭代时(我希望您是在迭代而不是瀑布中执行此操作),您将为这组工作准备详细的测试计划。您可以根据之前部分的经验调整工具/估计/测试覆盖率。
这样,您可以在一开始就说明您的一般方法和优先事项是什么,但您可以让自己在以后随着项目的进展进行调整。
关于您需要在测试中投入多少测试COTS 的问题与任何软件相同:您需要评估风险。
如果您的软件需要
Validated 因为外部
法规 (FDA,DoD..)
你需要深入了解你的
测试,几乎测试整个应用程序。一
这里的问题可能是确保
外部调节器,为您提供工具
用于验证 已验证
(这很麻烦)。
如果您的应用程序是
对您的公司至关重要的任务,
比你还需要做很多
基于广泛风险的测试
分析。
如果您的应用程序不受影响
以上所有,你可以去
更轻的测试。也许你可以
跳过已测试的功能
通过平台制造商,并专注于
关于您的定制。在另一
我仍然会写测试(在
至少happy paths) 为
您将在您的
业务流程。
【解决方案2】:
当我们在 2008 年开始学习 Selenium 测试时,我们根据 SalesForce 手册创建了 Recruiting 应用程序,并创建了一套测试并在我们的 blog 中逐步描述了我们的路径。如果您决定编写 Selenium 代码来测试您的应用程序,它可能会帮助您入门。
【解决方案3】:
我认为 SalesForce 的问题在于您进行了单元和 UI 测试,但没有进行服务级别测试。我见过的驱动 Selenium UI 的 SpecFlow 很脆弱,并且没有封装我在设计服务级别测试解决方案时所追求的:
(当我导航到“/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743”时
然后我点击“立即购买”按钮
然后我点击“继续结帐”按钮)
这不是 Specflow 的精神或意图。
鉴于我尚未选择产品
当我选择继续结帐时
然后确保我收到一条消息
为了使用 selenium 进行测试,您基本上必须将其转换为点击和键入,而在 .NET 领域中,您可以在中间层实例化对象等,并执行数百个实例和派生针对相同的背景(模拟设置)。
有人告诉我,您可以通过 API 公开 SF,但存在一定的安全风险。我很想知道更多关于那个。