測試同學使用持續集成工具編譯打包,得到排版引擎修改后的 App 安裝包;然后在兩臺設備安裝排版引擎修改前、后兩個版本的 App,同時打開需要測試的書籍,翻頁,對比,通過肉眼觀察排版差異是否符合預期。
人工測試方法比較耗時,需要打開每本書,一頁一頁地翻頁、對比,而且無法覆蓋很多書籍,存在漏測的風險。
另外,通過人眼檢查兩臺設備上的排版結果有沒有差異,是很困難的任務,一是容易疲憊導致判斷失誤,二是對細致的排版變更(如第二個例子)很難判斷是否符合預期。
前面提到,人工測試費時耗力,且容易漏測。
此外,排版需求的特點是細節多、變更快,且修改影響范圍大,全網書籍上萬本,無法一一驗證。一旦出錯,直接影響口碑。這些因素都增加了人工測試的工作量和壓力。
除了精細化的排版需求會對排版引擎代碼做修改,在日常的維護中,也會重構排版引擎、修改排版引擎相關但不影響排版結果的代碼。每次重構、修改后,也會交給測試同學驗證此次修改對排版結果沒有影響。由于人工測試比較耗時、無法一一驗證,每次重構排版引擎代碼壓力很大,輕易不敢改動。
還有一種情況,是在開發其他需求、修復缺陷時,意外地導致排版結果受影響。這種錯誤一旦發布到現網,后果很嚴重。
所以,把人工測試流程自動化十分有必要。自動化以后,可以大大減少人工測試的時間,同時方便開發同學自測。開發同學對排版引擎也可以大膽重構、持續改進代碼質量。最終,達到確保排版引擎質量的目的。
首先,我們要分析一下,在人工測試中,主要有哪些步驟?每個步驟是否能自動化?
在人工測試中,對每次變更的測試,有步驟如下:
其中步驟 1、2 利用自動化測試工具是比較容易完成的。步驟 3 借助算法能夠使其自動化,會在后面詳細展開。步驟 4 自動化的難度比較大,可能需要借助非常高階的人工智能完成,我們把這個步驟交給測試和開發同學。
原文轉自:http://wereadteam.github.io/2016/08/23/Typesetter/