软件开发中的测试智慧与美学
1. 深入业务学习的价值
在软件开发工作中,深入了解业务能带来巨大的价值。曾经有人在 ePlan 工作了五年多,才意识到资金会在五个不同账户间流动,且这些账户的现金余额每天都要保持平衡。理解了资金的流动方式后,就能编写正确的代码,确保每天资金能准确地从正确的账户中取出和存入。这一过程虽看似简单,但却花费了数年时间才达到这样的理解程度。如今,凭借这样的理解,能够帮助企业每天准确地进行盘点。
2. 增量式测试与编码
2.1 增量式工作的理念
一直以来,我们都尝试将工作拆分成小的部分,一次专注于完成一项小功能。我们应致力于交付更少的内容,要在满足客户需求和实际情况之间找到平衡。这种增量式的工作方式让我们的效率大幅提高。我们将复杂的任务分解成所谓的“钢线”,第一条“线”是最基本功能的端到端切片,后续的每条“线”都建立在已完成的“线”之上,且每条“线”都可测试,很多时候,在所有“线”完成之前,部分功能就已经可以使用了。
2.2 增量式开发示例
以一个涉及文件上传、解析、验证,数据创建、存储到数据库以及数据处理的项目为例:
-第一步:UI 展示“线”:首先创建的 UI“线”是显示每个屏幕,包含一些硬编码的数据和用于在屏幕间导航的按钮。虽然此时还没有实际的业务价值,但可以向客户展示,确保他们喜欢这个流程,并编写自动化的端到端 GUI 测试。
-第二步:文件解析与验证“线”:编写 FitNesse 测试用例进行文件的解析和验证,然后编写并测试代码,这一步不需要 UI 参与。
-