由於不同瀏覽器的 HTML5 引擎在品質和正確性方面仍然存在巨大差異,因此我們將繼續為 W3C 正在開發的測試套件做出自己的貢獻,以進一步實現 Web 平臺互通性和相同標記的目標。 我們一共向其提交了 7573 項測試,您也可以在 IE 測試中心查看這些測試。 隨著各種瀏覽器相繼改善對相同標記的支援,我們最終將獲得一致的效果,共同實現對 HTML5 許下的承諾。
本篇博文的標題參考了 Adobe 于 6 月 15 日和 16 日在其三藩市總部舉辦的週末活動。 在這次活動中,數十位志願者向來自 Adobe、Google、Mozilla、Apple、HP 和 Microsoft 的 W3C 專家和成員悉心討教,認真學習如何進行 Web 標準測試、如何編寫 CSS 和 SVG 測試、如何創建優秀的 bug 報告,並詳細瞭解用於管理測試套件的工具。
活動後來進入了「程式設計馬拉松」測試環節,大家一邊享用免費的食品和飲料,一邊寫了一整天的測試程式。 志願者們花了週六大部分時間編寫了一些針對 CSS OM、[Transforms](變換)、[Backgrounds & Borders](背景和邊框)、[Exclusions](環繞)、SVG 和其他模組的新測試案例, 其中的佼佼者最後還獲得了若干獎項的提名。
測試 Web 標準
Adobe 的 Alan Stearns 向活動參與者們介紹了 W3C 測試的一般原則以及測試在推動規範發展的過程中扮演的角色。 特別地,針對指定的規範建立瀏覽器的單項通過率並不是 W3C 測試套件的目標。 為了使規範成為 W3C 建議,工作組必須證明規範是可實施的。 在實踐上,這意味著:
•針對規範中的每個要求(稱為「標準化聲明」)創建測試案例•驗證至少有兩個單獨的實施通過了每個測試
請注意「至少兩個瀏覽器必須通過整個測試套件」和「至少兩個瀏覽器必須通過測試套件中的每個測試」之間的區別。 瀏覽器測試人員通常將該句子描述為「測試該規範」。
然而,該測試過程的一個重要副作用就是建立可據其開發和測試所有瀏覽器的通用交互基準。 測試套件有助於跨所有瀏覽器找到 bug,而且有時能識別規範中的問題。
編寫 CSS 和 SVG 測試
有三種類型的測試:
•獨立測試通常依賴于視覺化驗證:如果出現故障,則會以紅色顯示相關內容。
•參考測試會針對不依賴于所測試的功能的視覺化參考來比較測試。 請注意,該測試包含一個指向應針對其進行比較的參考測試的連結。
•CSS 物件模型測試依賴于 JavaScript 測試控管;它們驗證物件模型反映靜態樣式表指定的內容,例如該 CSS 媒體查詢測試。
W3C 的 Doug Schepers 仔細講解了 SVG 測試,同時 Adobe 的 Rebecca Hauck 和 Jacob Goldstein 提供了測試編寫教程。 CSS 工作組聯席主席 Peter Linss 深入介紹了 CSS 測試框架,包括測試套件構建系統和管理工具(如 Shepherd)。
創建優秀的 Bug 報告
Mozilla 的 Elika Etemad 為活動參與者給出了關於如何創建優秀的瀏覽器 bug 報告的建議:
•問題是特定的、可複現的
•識別版本和平臺
•已尋找了重複之處
•包含重現問題的步驟
•描述預期和實際結果
•如果可能,已簡化問題,即已從問題頁面刪除重現問題所不需要的所有 HTML、JavaScript 和 CSS 部分,而且剩餘部分已附加到 bug。
構建測試套件
構建測試套件需要大筆投資。 CSS2.1 需要較長時間才能達到「推薦」階段的原因之一,就是規範的規模以及所需測試的基本要求數量過於龐大。 該測試套件的最新版本包含 9422 個測試。
Microsoft 貢獻了這些測試中的 7000 多個,而且我們正在繼續針對其他標準規範貢獻更多測試。
在 IE10 中,我們已經增加了對跨 CSS、HTML、SVG 和 DOM 的眾多新標準功能的支援。 我們已在我們的 IE 測試中心發佈了一些針對這些新功能的測試案例。 我們將繼續提交更多測試案例,尤其是針對 IE10 Release Preview 中近期無首碼的那些功能。
您如何貢獻自己的力量
我們都為自己身為改進 Web 互通性的團體的一員而感到由衷自豪。 如果您致力於推動 Web 發展,同時也會有助於互通性邁上新臺階。 您可以瞭解如何貢獻測試,或者查看現有測試。
將來舉辦活動時,我們會及時通知您。
—Sylvain Galineau,Internet Explorer 專案經理;以及
—John Jansen,Internet Explorer 測試主管