仍然很忙

做了一段时间的测试构架终于接近尾声了,中间学到了很多很多超级有价值的开发经验,有些小小的骄傲。软件测试自动化是一个很麻烦的活,一不小心就会陷入一个无间怪圈。因为测试一个软件不是简简单单给个 expected value 和 actual value 然后对比一下就可以的。有人说过,一个软件有多少个 Feature ,就有多少个针对这个 Feature 的测试。即使这样子讲,我也只能给打个半对。因为一个稍微大型一点的程序,任何两个或者多个 Feature 结合起来都有可能是一个新的 Feature。这样使得在一个软件中增加任何一个 Feature,就像蝶振效应一样,可以让测试成本几何加倍。现代的软件测试都被自动化了,使得整个状况稍微好转了一下,如果跟传统的人工测试相比的话。可是虽然把一个人工测试变成自动测试可以节省下一次的人力时间,但懒惰的测试工程师往往会把整个测试过程懒散地写成一个流水账。在软件功能变动频繁的状况下,这种自动化比人工测试更昂贵。所以这些以为自动化就是流水账的人到了最后总会选择手工测试,最终导致整个软件测试覆盖范围缩水,然后软件质量下降。一个好的自动化测试一定有它自己的 AI、随机性、模块化、可扩展性、可部署性、可搭建性等,整个测试成本会节省很多。到最后人工测试的部分可能就是几个自动化测试无法到达的死角而已。这就需要有一个很好的测试构架或者 Test Library,让这样的测试自动化变成可能。利用 .Net 的  Reflection 可以对 classes 和 members of a class、objects 和 properties of an object 进行归类、规划,让本身一维的(流水账)、二维的(加几个包含不同 Variant 的循环)自动化测试扩展到多维,达到增加测试覆盖范围的目的。现在我才发现 .Net 中利用 metadata 实现的 Reflection 在测试自动化上是如此得心应手。

唉,人只会在感兴趣的东西上孜孜不倦。因此论文还是没有进展,时间都忙在了工作上。是时候开始碰碰论文了,所以仍然很忙。

发表评论

电子邮件地址不会被公开。 必填项已用*标注