作为开发者,我们深受爱德华·戴明的一句名言启发:“质量不是源于检查,而是源于生产过程的改进。”这句话,如同晨钟暮鼓,提醒我们质量的真谛。
许多组织将一切非编码活动视为一次性的任务,忽视了测试的重要性。尽管测试被视为不可或缺的一环,但很多时候,测试自动化和其他相关材料被视作二等公民。实际上,测试是对用户行为的记录,与产品组织产生的需求紧密相连,并在虚拟层面与编码世界的创造息息相关。
如果某事物具有价值,那么它应该被珍视、维护、照料和尊重,如同对待产品的核心功能一样。这包括测试用例规范、设计和技术文档以及错误报告。
许多人可能认为,投入更多的时间在一个功能上,就需要花费更多的时间和精力去完善、测试、探索它。这与直觉相反,这种观念适用于旧世界的开发模式,一个拥有测试环境、阶段环境,以及许多关于用户如何与之交互的假设。
现在,我们迈向编码新世界的征途,信奉着一些新的法则。这个世界的秩序是:微小的、渐进的变化,在推广之前先向有限的受众推广。“键盘在10分钟内完成生产”,这带来了更快的反馈、更少的遗漏和更高的信心。以下是新时代的编码法则。
法则一:人人皆测试者。团队的每个成员,无论其职责、产品或是行业,每个人都对产品的质量负责。从产品、工程到测试,甚至客户支持、销售、营销、业务开发、早期访问测试版客户以及高管,人人皆是测试者。
法则二:度量风险而非覆盖率。与其追求完美,不如关注对业务最关键的风险。团队应痴迷于对业务最关键的六个用户流,而不是过度关注所有功能的全面覆盖。
法则三:聚焦金钱之所向。每个业务、部门和团队都有一组核心功能,对收入的影响远超其他功能。测试工作应首先关注这些关键部件。例如,在电子商务中,结账流程优先于用户配置文件;在财务领域,优先考虑安全和资金处理流程。
法则四:广度胜于深度。浅层测试产品的所有区域比深层测试某些区域更为重要。业务逻辑的深度和多元组合可能会遗漏更明显的缺陷。一旦达到足够的广度,再深入特定功能的深度。
法则五:用户的信号是唯一完美的信号。在用户与软件互动之前,所有的工作都是理论性的。测试是模拟用户行为的一种模型,但最重要的信号来源于真实的用户反馈。生产分析与测试覆盖率应相互关联,以评估测试策略的有效性。
法则六:代码在可测试并经过测试之后方为完整。代码的可测试性是对其进行检测的行为。如果不允许对这些信号进行轮询和解释,就很难判断正确的行为。
法则七:每项测试都应明确行动方向。如果不知道测试失败时的应对措施,那么测试就失去了价值。测试步骤应清晰明了,产品团队也应提供充分的失败信息。
法则八:始终测试高层级业务。软件测试有不同层次,高层级测试对于确保不同团队开发的组件之间的交互至关重要。但细节可能会下沉到较低的层级。例如,UI测试应仅关注用户界面是否能呈现API的输出。
法则九:独立执行测试。所有测试都应在不考虑其他测试状态的情况下执行。每个测试都应在独立的场景中执行,不受其他测试的影响。这样可以使测试更具原子性和自主性。
法则十:选择最紧密的反馈回路。所有测试都是反馈回路,向特定的人或团队提供反馈。最紧密的反馈回路是专注于特定操作的测试回路。避免过于宽泛的测试循环以免混淆测试结果中的信号和信息价值是至关重要的。。结语
这十条法则,虽凝聚了众多领域的智慧与经验,却并非全貌。测试的领域深邃而广阔,还有许多未被揭示的限定守则等待我们去探索与发现。当我们应用这些法则时,其所处的上下文环境同样至关重要。有时候,为了突破创新的边界,我们可能需要挑战其中一条或两条法则。不必把它们视为绝对不变的教条,而应视为在持续改进道路上的一块块基石。重要的是不断寻求进步,超越现状,而非仅仅满足于某次测试的完美无缺。真正的智慧在于灵活应用这些法则,与时俱进,不断适应新的挑战和机遇。让我们在测试的道路上勇往直前,不断探索未知,持续创新。
文章来自《钓虾网小编|www.jnqjk.cn》整理于网络,文章内容不代表本站立场,转载请注明出处。