有了特征后,我們需要定義差異,就是兩個灰度圖像矩陣的距離函數,如:
我們關心有多少像素點不一致,所以我們這里取 L0距離,即兩個圖像有多少個像素點不一樣,作為差異衡量的指標。
當距離大于10時,我們認為這一頁的排版結果有差異,把它可視化輸出,給開發或者測試同學作為參考。
檢測到差異后,我們把兩個圖像矩陣灰度化后相減,得到一個新的矩陣,把它歸一化得到差異圖像,如右圖所示:
人工測試步驟 2、3 的書籍購買、加入書架、打開書籍、翻頁、截圖等任務,可以利用 Instrument UI Automation 自動測試腳本來模擬人工點擊來完成任務。
但是考慮到 Automation 模擬翻頁、截圖速度慢,且 UI 變更頻繁導致 Automation 腳本后續維護麻煩等問題,所以我們通過提供一個測試 scheme 接口來完成這個任務。
在 App 設置彩蛋的『執行 Scheme 頁面』中,輸入 scheme 并執行后,App 會在后臺對指定書籍購買、加入書架、排版、生成排版結果截圖,并把結果保存在本地磁盤。用戶也可以選擇 AirDrop 到 Mac 上。
原文轉自:http://wereadteam.github.io/2016/08/23/Typesetter/