在 微信读书 App 中,排版引擎负责解析 EPUB 或 TXT 格式的书籍源文件,将排版后的书籍内容如文字、图像、注解等元素渲染至屏幕上,是最常用、最复杂的组件之一。
而开发同学对排版引擎的日常修改,可能影响了海量书籍的排版结果。对排版引擎代码变更的测试,往往耗时多、难度大、容易漏测。本文介绍了为解决测试的难题,如何逐步将人工测试步骤自动化,最终构建了一套微信读书排版引擎自动化测试流程,以确保微信读书排版引擎的质量。
为了获得极致的阅读体验,产品同学经常会提出细致的排版需求,交给开发同学修改。而排版引擎的修改,往往牵一发动全身,可能导致书城上万本书籍排版结果受影响。
举个例子,有个需求是增加正文段落的 margin:
再举个极端的例子,有个需求要把章节标题往右移动1个像素:
那么,如何确保微信读书的排版质量?最开始,我们用人工测试的方法来确保质量。
当开发按需求修改排版引擎、自测后,会把代码提交到 svn,然后交给测试同学进行测试。
原文转自:http://wereadteam.github.io/2016/08/23/Typesetter/