2009-03-08 14 views
6

私はちょうど私が理解できない原則につまずいた。飛行機で何をテストし、テストしたものを飛ぶ。 [NASA Principle]

「あなたは、飛ぶかをテストするもの飛ぶ何のテストは、」あなたが本物のすべての時間ため とテストを開発する必要があることを意味するのでしょうか?

これについて考えて、私たちは事前に製造条件のために準備する必要があります

  1. 私は疑問に思う作りますか?
  2. システムを1日目に起動する必要がありますか?エラーログを取得することができることを確認するために、例えば

  1. ビルドツール(エンドユーザーに通知されなくてもよいです)。
  2. 我々はシステムへの変更を保存することを確認(統計ツールおよび/または良い Log Level Designの使用)
  3. エラーログを解析することができることを確認してください。変更履歴
  4. バグが発生した場合の更新周期を短くしてください。

さらに例がありますか?それは新しいシステムの低リスク立ち上げを確実にするでしょうか?

私は少し混乱しています。 それだけです。

Nasa http://ecsv.gsfc.nasa.gov/ecsv_emd/GIFS/nasa_logo.gif

答えて

2

私の最後のプロジェクトでは、ターゲットハードウェア上でコードをテストする必要があるという点を掘り下げるために、「電話ではなく電話機を販売します」というマントラがありました。現実には、ハードウェアを手に入れるのを楽しんでいたコーダーだけが実際にこれを行い、日常の制作ビルドはいつも約半分で失敗するでしょう。場合によっては、プロダクションテスターが問題の最下点に到達しようとしている間に、これがプロジェクト全体を保持することもあります。

もう一つのマントラは、「私たちはコックアップ氏には家にいません」と言いました。彼は永住権を持っているようで、笑いました。

+0

ありがとうございます。現実世界の物語は非常に便利です。私はこれが本当だと言うことができます。私は現在のプロジェクトのマントラについて考えます。再度、感謝します。 – Flinkman

16

それはあなたが起動するように計画して正確に何をテストしていない場合、あなたは打ち上げが動作します何をすべきか方法を知らないことを意味します。

同様の原理は、「ドッグフード」または「自分のドッグフードを食べる」とも表現されます。あなたの製品があなたの会社の人々が使用するものであると仮定して、あなたがそれを起動するずっと前にあなたの製品を使ってそれらを入手してください。それらは、非常に特定のタスクを持ち、実際のユーザーが行うすべてのコーナーケースに当てはまらないQAチームよりも、ユーザビリティバグ、データ破損バグなどのソースとしてはるかに優れています。

さらに、起動するまでに内部のニーズがあるため、必要なサポートツール(ログなど)を用意する必要があります。

1

TWYFの例としては、デバッグ設定ではなく、サイト内のものを呼び出すために選択したリリース構成に対して機能テストを実行することがあります。リリースとデバッグの唯一の違いがアサーションチェックまたは余分なロギングである場合、タイミングの問題などの理由で、デバッグでテストされたソフトウェアがリリースで動作することを確認できません。

FWYTは、リリースビルド候補の品質に満足すれば、新しい「プロダクションマスタ」を実行するのではなく、2つのビルドの構成が同じであることを願ってビルドを出荷することを意味します。

+0

をテストする方法で、そのコンポーネントを操作することも可能

  • として生産環境のシミュレーションを失いますコンパイラは危険です、特にGCCです。私は、テストをリリースする他の何かを信頼するために、何度も何度も苦しんできました。 –

  • 0

    私はNasaのモットーを考えました。あなたが飛行しているものをテストしないでください。しかし、テスト手順を文書化し、手順に合ったドキュメントをテストしてください。
    テスト文書の量が車両の重量よりも大きいときは、飛ぶ準備ができています。

    (少なくともそれはハッブルのためだった。)

    1

    NASAマントラがwordedslightly differentlyです: "あなたが飛ぶようテスト、そしてあなたは、テストとして飛ぶ"

    Aから

    をソフトウェアの観点から、私はこれを次のように扱います:

    • これらのテストに合格したら、あなたはライブ的環境にその試験品を展開することができ、そしてあなただけがの最適化以上
    関連する問題