是否有必要进行自动验收测试以测试字段是否保存到数据库中?

时间:2011-06-08 13:01:53

标签: testing automated-tests specflow user-acceptance-testing

我正在使用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,因此它不像我正在处理我自己的数据持久层。一旦我将属性添加到我的映射文件中,很有可能它不会被错误地删除。考虑到这一点,是不是“一次性”手动测试足够了?我很想听听你在这件事上的建议和经验。

1 个答案:

答案 0 :(得分:2)

我通常有类似“成功创建......”的场景,用于测试成功案例(您填写所有必填字段,所有输入都有效,您确认,最后确实保存)。 我不认为您可以轻松地为单个字段定义单独的方案,因为通常成功创建的方案需要“同时”满足其他几个条件(例如,必须填写所有必填字段)。

例如:

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    |

当然,您可以定义或扩展与新字段相关的更多场景(例如验证等)。

我认为如果采用这种方法,你可以避免出现很多“琐碎”的情况。我可以说这是“创造客户特征”的成功案例,至少应该进行一次测试。