软件测试工作开展的目的不是为了找 bug,也不是为了验证程序有哪些问题,而是通过分析、度量与改进等一系列的活动,确定出软件最终的设计是与产品需求相符,并可在系统环境中按预期运行。
比如在功能性层面,除各特性通路验证、数据校验核对、网络报文监听外,更需要充分考虑与引入异常,通过“破坏”来达到最终目的。
也就是说,不应限于黑盒的等价类、边界值、因果判定、状态迁移、流程分析、异常分析、正交分析,白盒的语句覆盖、条件判定覆盖等等粗浅的理解和运用,更不应仅聚焦于某些个工具的使用,而是需要通过对场景、技术方案特点、通信原理等等的掌握,以及当下产品、技术与组织所遇到的问题,针对性的制定出具体可提高质量与效能的解决方案。
我们需要知道,测试活动的代价(成本)是高昂的,甚至远比开发编码实现的成本要高。每一个参与在软件工程领域或产品的成员,都有质量保障的职责。
在当下的互联网时代,各类流水线生产的模式下,为将商业损失减至最小,在每个工作节点中融入特定的测试活动,是一种必要。这属于精细化作业流程,也就是现在所谓的测试“左移”或“右移”,也涵盖了精准分析、预测与度量。它既是生产效率的需要,同时也是生产质量度量的需要。