Mozillaの自動テスト

注: このページとテストの開発は統合が予定されています。

このページは Mozilla の開発者が利用できる自動テストのための選択肢の概要を提供します。

--enable-tests オプションを伴っての Firefox のビルドの後、あなたは objdir から、単純な make コマンドでいずれのリグレッションテストも実行することができます。

Mozilla はいくつかのテスティングフレームワークを使っています。以下に、低レベルのユニットテストから高レベルのシステムテストまで大雑把に並べて列挙します。

TBPL
コード
コマンド 説明
(B) make check コンパイルが必要なコードのテストはスクリプトから利用可能でないインターフェースをテストできますが、書いたりメンテナンスしたりするのは大変です。
X make xpcshell-tests JavaScript コードが xpcshell の上で動作します。テストは XPCOM コンポーネントにアクセスできますが、ドキュメントやウィンドウを伴った動作は容易ではありません。
J make jstestbrowser JavaScript エンジンのリグレッションテストです。
C make crashtest 1つの Web ページが読み込まれます。
R make reftest Web ページのペアから成る reftest です。このテストはそれらのページが完全に同じように描画された場合にパスします。視覚的な Web 関係の機能のテストに適しています。
M make mochitest-plain Mochitest のページがブラウザ上に低い権限で読み込まれます。Web 機能の徹底的なテストに適しています。
Moth make mochitest-chrome Chrome mochitest のページが高い権限で読み込まれます。
make mochitest-browser-chrome Browser chrome テストがブラウザウィンドウのスコープで実行されます。フロントエンドのコードを直接テストするのに適しています。
Z mozmill instructions Mozmill は記録/再生型の自動化ツールです。エンドユーザの操作を、自動化のための API を使った JavaScript としてキャプチャします。

R(reftest)と C(crashtest)を除いて、すべての個々のテストは個別に成功および失敗の条件を定義しています。

すべてのテストスイートは、クラッシュ、ハングアップ、そして(デバッグビルドにおいては)trace-refcnt leaks をテストの失敗として扱います。NS_ASSERTION は X(xpcshell-tests)においては致命的なエラー、R(reftest)/C(crashtest)/J(jstestbrowser)では注意が必要な失敗として扱われ、M(mochitest-plain)では無視されます。

ほとんどのテストスイートは共通のテストログの形式を共有していますので、実行時の失敗を探す場合は UNEXPECTED で検索できます。

EXTRA_TEST_ARGS='--debugger=gdb' make [suite] でデバッグすることもできます。

追加情報

wikimo:SoftwareTesting:Scratchpadページに書かれた内容は無視して、wikimo:SoftwareTestingだけを参照してください。Scratchpadは作業中の物で、まず間違いなく、情報が古いか間違っています。

何か読み物を探しているなら、wikimo:SoftwareTestingおよび自動テストのTipsとトリックというドキュメントもあります。

進行中のさらなる試みが他にもあります。:

  • あなたはスタンドアロンのテストプログラムをC/C++で書くことができます。この選択肢は、XPCOMを経由せずに機能をテストするために利用することができます。
    • バグ 343673では、ある個人の努力を追跡していますが、最近は動きがないようです。
    • バグ 346703はそれをどのように実行するのかの例を含んでいます。
  • ブラウザの表示内容として実行されるテストを書くために、JSUnit が利用できます。特にDOMやパーサのテストに便利ですが、しかしChrome特権を必要とする処理はできません。
    • 完全なブラウザのインスタンスを必要とするため、JsUnitはおそらく当分の間、make checkの対象にはならないでしょう。
    • wikimo:SoftwareTesting#Ideas_to_Collectにはいくつかのjsunitの例が列挙されています。
    • より詳しい情報は、wikimo:SoftwareTesting:Tools:jsUnitのドキュメントを参照してください。
    • 例として、いくつかのXForms testsがJsUnitを使用しています。

既存のテストハーネスとフレームワーク

(元文書:wikimo:SoftwareTesting:Catalog_of_Automated_Tests

Document Tags and Contributors

Contributors to this page: Piro
最終更新者: Piro,