元ネタは、「ADP: Acid2テストの功罪」
功の部分については、元ネタの記事に書かれていることで同意する部分とできない部分がある。
特に、
多くの人に「標準準拠という正しさ」の存在を認識させたことだと思っている。
というのは、テストエンジニアからすれば、「なんじゃい、このバグ(フォールト)だらけのソフトウェアは!」というコトだ。
元ネタでの「多くの人に」というのは、ブラウザベンダー関係者だけでなく、ブラウザ経由で何か情報を伝えようとする人達、すなわちWebページ制作者という意味合いが込められているだろう。
以下の点についてはイマイチ同意しかねる。
よい点のもうひとつは(これはわるい点でもあるのだが)、複数のプロパティを一気にテストしていることである。
これは、テストの段階で言えば、単機能テスト(コンポーネントテスト)ではなくて、組み合わせテストになる。単機能テストでNGなものが混じっている場合、NGのモノを含めて組み合わせたところで意味がない。つまり、未対応セレクタ、未対応プロパティがある場合にはそれをいくら組み合わせてもダメと胃言うこと。
コンポーネント単位、すなわち各セレクタ、各プロパティとも単独で正しい動作をしているのが前提で組み合わせテストを行わなければならない。この観点が抜け落ちている。
罪の方だが、これは、
「Acid2テストに合格したらCSS2.1準拠とみなしていい」という誤解である。
につきるのだが、どうしてそういう論理を導き出せるのかを、テストエンジニアの観点で説明する。
テストすることで証明できるのは、「そのソフトウェアには欠陥がある」ことであり、「そのソフトウェアには欠陥がない」ことではない。これは、ISTQB(International Software Testing Qualifications Board)のソフトウェアテストの原則その1に書かれていることだ。
つまり、Acid2テストも「ブラウザのCSSレンダリングに欠陥がある」ということを示すだけ。
Acid2テスト合格≠「ブラウザのCSSレンダリングに欠陥がない」だ。ましてや「CSS2.1準拠」準拠だなんて言えるわけがない。
全数テストでもやらない限り、「CSS2.1準拠」とは言えない。そしてその全数テストはソフトウェアの開発期間を考えれば不可能なモノ。ISTQBのソフトウェアテストの原則その2に書かれていること。
結局のところ、どのブラウザにしろ、Acid2合格=CSS2.1準拠ではなく、単にAcid2でテストした範囲内では欠陥がないというだけ。潜在的な欠陥はいくらでも潜んでいる。
ということで、まだまだWebページ制作者にとっては頭の痛い事態が続くと言うこと。
ちなみに、制作者の考えで「思ったとおりに表示されるという正しさ」通りに表示されていないというのは不具合(インシデント)の範疇に入る。
インシデントはテスト環境の設定ミスやテスト担当者の勘違いによっても引き起こされるので、「自分の書いたCSSがちゃんと表示されていないから、ブラウザに欠陥がある!」と言う前に、CSSの仕様書と自分の書いたコードが本当に正しいのか確認。
