UI上的“边界条件测试”(TextBox max length)是个好主意吗?

时间:2013-07-10 17:31:19

标签: testing automated-tests coded-ui-tests

我知道边界条件测试在软件测试中是一件好事。但在我看来,我认为使用边界条件测试来测试文本框的最大长度并不是一个好主意。

例如,我有一个文本框,将限制设置为10个字符。是否有必要对以下所有测试进行测试?

  1. 输入一个5字符文本,并期望它会通过。
  2. 输入10个字符文本,并期望测试通过。
  3. 输入11个字符文本,并期望他们不能这样做。
  4. 我试图搜索在UI上应用边界条件测试,但我发现它的信息非常少。

1 个答案:

答案 0 :(得分:2)

你错过了一种名为Equivalence Class Partitioning的技术。让我们举个例子吧。您可以使用几种不同的EC来评估文本字段的限制。这是一张桌子:

    +------------+------------------+-------------------+-------------------+
    | Factor:    | Factor:          | Risk:             | Risk:             |
    | Size       | Characters       | Downstream        | Upstream          |
    |            |                  |                   |                   |
    +-----------------------------------------------------------------------+
    | 0          | A-Z              | Are there any     | Ditto.            |
    | 1          | a-z              | things that are   | Is there anything |
    | >1         | Any UTF-8        | affected down-    | affected by your  |
    | 10         | Any UTF-16       | stream? Does      | input after the   |
    | >10        | etc.             | any of the other  | fact? For instance|
    |            |                  | conditions cause  | a login form might|
    |            |                  | problems for      | have a "Name"     |
    |            |                  | other functions?  | with a length of  |
    |            |                  |                   | 9 somewhere else  |
    |            |                  |                   | in the application|
    |            |                  |                   |                   |
    +------------+------------------+-------------------+-------------------

根据此表,您可以尝试输入的变体(不仅仅是BVA),看看有什么意义。查看风险并查看您所做的任何事情是否在应用程序的上游或下游产生了影响。

现在,如果到达组合太多的点,请使用另一种称为All-pairs测试的技术。这将限制您的组合。

在一天结束时,它不是关于详尽的测试,而是确保风险得到适当的探索和适当的测试。

这里有一点 3 minute video,这也是一个很好的资源,并详细阐述了BVA和EC携手并进的事实。

回答您的具体问题:

  

UI上的“边界条件测试”(TextBox的最大长度)是个好主意吗?是否有必要对以下所有测试进行测试?

是。这些是一些非常基本的界限,虽然你错过了两个IMO案例:

  • 空案例:如果字段为空,是否重要?
  • 0 case:0显着?零可以表示数字“0”,或者它可能意味着从最终用户的角度传递不存在的字符;例如,使用空格。零与null不同,因为您也可以将空格等传入字段。也许你可以通过11个空格,你的应用程序很高兴?我不知道,但这是一个值得探索的界限。

根据您的应用程序的作用,您需要评估其他风险因素并提出与这些风险相关的测试。