让一个自动化的验收测试来测试字段是否保存到数据库中很重要吗



我使用SpecFlow作为自动验收测试框架,使用NHibernate作为持久性。我正在处理的intranet应用程序的许多UI页面都是基本的数据输入页面。很明显,在其中一个页面上添加一个字段被认为是一种"功能",但我想不出除了之外还有什么其他功能

Given that I enter data X for field Y on Record 1 
And I click Save 
When I edit Record 1 
Then I should data X for field Y

像这样的自动化测试有多普遍和必要?此外,我正在使用NHibernate,所以它不像是我在手动滚动我自己的数据持久层。一旦我将属性添加到映射文件中,它很有可能不会被错误删除。考虑到这一点,"一次性"手动测试还不够吗?我很想听听你在这件事上的建议和经验。

我通常有类似"成功创建…"的场景来测试成功案例(您填写所有必需的字段,所有输入都是有效的,您确认,最后它真的被保存了)。我不认为你可以轻易地为一个字段定义一个单独的场景,因为通常成功创建的场景需要"同时"满足其他几个标准(例如,必须填写所有必填字段)。

例如:

Scenario: Successful creation of a customer
Given I am on the customer creation page
When I enter the following customer details
| Name | Address |
| Cust | My addr |
And I save the customer details
Then I have a new customer saved with the following details
| Name | Address |
| Cust | My addr |

稍后,我可以在此场景中添加其他字段(例如账单地址):

Scenario: Successful creation of a customer
Given I am on the customer creation page
When I enter the following customer details
| Name | Address | Billing address |
| Cust | My addr | Bill me here    |
And I save the customer details
Then I have a new customer saved with the following details
| Name | Address | Billing address |
| Cust | My addr | Bill me here    |

当然,可能还有更多与新字段相关的场景(例如验证等),您必须定义或扩展这些场景。

我认为,如果你采取这种方法,你可以避免出现很多"琐碎"的场景。我可以说,这就是"创建客户功能"的成功案例,它至少值得一次测试。

最新更新