我们属于有时叫做软件测试语境驱动学派的一帮人。经过多年(断断续续),我们最后开发出一种原则描述,我们相信这种描述反映了这些松散地聚合在一起充当这一派思想领导的人们的共同观点。
本书给出了语境驱动思维的大量例子,并解释了我们在团建开发中的体会。随着本书的出版,我们也创建了一个网站,即context-driven-testing.com,以进一步发展这个学派。
如果读者阅读了以下给出的原则和说明,决定也亲自加入这个学派,可访问context-driven-testing.com并加入这个集体。
语境驱动学派的七个基本原则
1. 任何实践的价值都取决于其语境。
2. 在特定语境下有好的实践,但是没有最佳实践。
3. 在一起工作的人,是所有项目语境的最重要的组成部分。
4. 项目以常常不能预测的方式逐渐展开。
5. 产品是一种解决方案。如果产品不是解决方案,他就不能发挥作用。
6. 好的软件测试是一种具有挑战性的智力过程。
7. 只有通过判断和技能,在整个项目团队中始终进行协作,才能在合适的时间做合适的事,以有效地测试自己的产品。
贯彻基本原则的说明
●成立测试小组是为了提供与测试有关的服务。测试小组并不开发项目,而是为项目提供服务。
●在为开发、质量管理、调试、调查或产品销售提供服务时,测试是代表项目相关人员实施的。完全不同的测试策略对于这些不同的目标是合适的。
●不同的测试小组有不同的任务是很正常的。服务一种任务的核心实践可能与另一种核心实践无关或生产率相反。
●采用无效的指标是危险的。
●任何测试用例的基本价值,在于它提供信息的能力(即减少不确定性的能力)。
●所有征兆都会有欺骗性。即使产品看起来通过了测试,但是也很有可能以测试员(或自动化测试程序)没有监视到的方式失效。
●自动化测试并不是自动化的手工测试,把自动化测试作为自动化的人工测试来讨论是没有意义的。
●不同类型的测试会暴露不同类型的缺陷——随着程序变得更稳定,测试应该更具进取性,或应该关注不同的风险。
●测试工作产品应该达到满足项目相关人员有关需求的程度。
举例
请考虑两个项目团队。一个团队开发用于飞机的控制软件。“正确行为”具有高度技术和数学含义,必须遵循FAA制定的规范。团队成员所做的一切或没有做的一切,都是从现在起20年时间内的法律诉讼证据。开发团队成员都遵循崇尚小心、准确、可重复性和反复检查每个人的工作的工程文化。
另一个团队开发的是在Web上使用的字处理程序。“正确行为”就是把大量Microsoft Word用户吸引到自己的软件上。没有必要遵循的规范要求(只有控制公共栈的要求)。投放市场的时间很重要——从现在起20个月,到时候无论好坏必须拿出产品。开发团队成员肯定没有很好的工程文化,如果读者试图以第一种文化的普遍方式讨论问题,就会使他们认为那是”应该避免出现的损失。“
适合第一个项目团队的测试时间会在第二个项目中失败。适合第二个项目团队的实践对第一个项目团队就是会受到起诉的失职。