这里的测试工作是指在软件开发过程中所进行的测试工作, 而不是指测试岗位。
谈到一种工作, 我们都会自然而然的去找这份工作的工作目的, 工作目标, 工作价值。 那么测试工作的工作目标是什么呢?
对于一个软件产品而言, 有两部分人是参与比较多的, 一个创作者, 一是个使用者。 没有人使用, 则软件产品则失去了大部分的价值。 (这里不讨论那些单纯的练习性质的创作)
而作为使用者, 会使用产品, 而决定他没有选择另外一款产品的原因有很多种。 但我们可以抽象的软件产品的因素归结为以下几个点, 如产品的易用性,正确性, 稳定性, 易用性体现在交互界面上, 正确性体现在交互后, 软件产品的状态变化(or与其它系统的数据交互上), 稳定性则是正确性的长期体现, 因为并非所以非预期的交互都代表了程序的非正确性。
首先软件产品, 拿出来以后, 就是一个软件实体, 是实体,则有交互, 了解其交互, 作用使用者, 我们就能决定它在我们手里能发挥的价值, 如仅仅是占用一定的磁盘空间或者其它系统资源 , 如完成对其它系统资源的调用,如和其它人的通信。
所以软件产品的价值, 对于使用者来说, 则是找到一个可以通过软件产品来完成自己的任务的一种方式。
而测试工作, 对于软件产品的使用者来讲, 帮助使用者更快的找到使用软件产品的一种方式是体现这价工作价值的很重要的一部分。
当然, 测试工作的价值不仅限于此, 对于软件产品的创作者来说, 测试工作则是保证产品软件按照预期的设计去工作。
但我们会发现, 对于软件产品的正确性, 软件的创作者和使用者考虑的问题是不一样的。 如一个软件产品的交互界面来说, 左输入框代表姓, 右输入框代表名, 对于创作者来说, 可能与原始设计是不一致的, 但对于 使用者来说, 软件只需要多次表现的一致, 通过简单的学习, 就可以找到软件产品的价值。
签于软件使用者与创作者在正确性上的标准上的差异与不一致性, 再加上软件使用者的主观能动性, 或者说学习能力。 我觉得虽然帮助使用者更快的找到使用软件产品的一种方式, 保证产品软件按照预期的设计去工作是体现软件测试工作的价值的一部分, 但最能体现软件测试工作的价值的还是协调软件创作者与软件使用者在正确性上的理解的一致性, 或者说保证软件系统的概念的一致性。
那么, 什么是软件产品概念的一致性呢?