web-dev-qa-db-ja.com

開発者の視点からのテスト

私は言及する本を持っています:

「単体テスト、統合テスト、機能テスト、システムテスト、パフォーマンステスト、受け入れテストなど、さまざまな種類のテストがあります」。

多くの開発者は、単体テストのみを実行するか、テストをまったく実行しないことがよくあります。上記のタイプのテストから、開発者が実施するテストはどれですか?テストに関して、開発者の責任は何ですか?

3
user2466019

すべての言語があらゆる種類のテストをサポート

あなたのやり方 元の質問を定式化した 、あなたは間違った方法でテストに取り組み、プログラマーの種類とその役割をあまりにも大きく区別し、言語とテストの間のリンクについて仮定を立てていたと思います教えた。

すべての言語で、あらゆる種類のテストが可能です。彼らは、テストを中心に、より根深い文化を構築し、より多くのツールを提供し、それを容易にするいくつかの言語機能を備えている可能性があります。そして、もしあなたが文献レビューを行うとしたら、テストに関する主流の本がJavaの導入と名声の周りに現れ、それらのポイントを説明するためにそれに依存しているかもしれないのは事実です。

しかし、すべての言語であらゆる種類のテストが可能です。

あなたの責任は何ですか?

Not Invented Here strip on testing

だから、今、あなたの 元の質問 に答えようとする:

Java開発者はJava開発者の観点から他にどのようなテストを行いますか?

そして

すでに述べたように、すべてのJava開発者はユニットテストを実行します。上記の1から、Java開発者の観点から実行される1はどれですか?

あなたが後であなたの答えにリストしたすべてのもの:

  • 単体テスト
  • 統合テスト
  • 回帰試験
  • 性能試験
  • .。

もちろん、会社によっては、一部のテストを必ずしも実行する必要がない場合もあります。たとえば、能力テストやパフォーマンステストは他のチームに任されていることがよくあります。

さらに、一部のテストは「ブラックボックステスト」として実行される場合があります。その場合、内部を知らない(またはまったく知る選択肢がない)よりも最善の場合があり、その場合はもちろん、元の開発者がそのテスト作業に参加することにはあまり関係がありません。しかし、彼らはまだ自分の意見を追加することができ、他の人が考えていなかった方法で問題に取り組む可能性があります。

ただし、あらゆる種類の開発者が、すべてのテスト作業に自分で参加するか、緊密な関係でテストを実行する人と直接協力することを強くお勧めします。

それは文化/哲学の問題であり、テクノロジーの問題ではありません

ほとんどの場合、ソフトウェアショップは別々のテストチームと開発チームをホストしますが、それは間違った理由で、または開発ライフサイクルとその方法論によって押し込まれている(または押し込まれていると感じている)ためです。

それは致命的ではなく、変更することができます。

また、一部のテストは、開発者以外による既存の取り組みに加えて実行できる場合もあります。結果を検証するために、独自の受け入れテストとパフォーマンスを実行するようにクライアントにアドバイスすることも最善です。そして、あなたは間違いなく彼らにそれに関与するように強く押すべきです。そうすれば、彼らが何を望んでいるのか、そして彼らがあなたの成果物に何を期待するのかを確実に知ることができます!

最後の注意: テストは、何をテストし、それらが提供するメトリックと結果を解釈する方法を知っている場合にのみ関係します

8
haylem

Boris Bezier これは次のように述べています。

「プログラマーはソフトウェアの品質に責任があります。自分の仕事の品質、自分の仕事を組み込んだ製品の品質、コンポーネント間のインターフェースの品質です。品質はこれまでもテストもされていません。責任は道徳的かつ専門的です。 「」

高品質のソフトウェアを提供する責任がある場合、それをどのように行うつもりですか?ソフトウェアをテストする必要があります。専用のテストリソースがない組織にいる場合、それはあなた次第です。チームにテストリソースがある場合でも、テストが確実に行われるようにするのはあなた次第です。それはテストを書くことを意味するかもしれません、あるいはそれはあなたがテストを書くことに責任がある人にフォローアップすることを意味するかもしれません。

結論:あなたとあなたのチームはあなたのコードの品質に責任があります。

2
Bryan Oakley

「テストに関して、開発者の責任は何ですか?」

明示的な責任は次のとおりです。

  • コードを実行するテストを作成し、期待される出力が返されることを確認します。

ただし、暗黙の責任は次のとおりです。

  • テスト自体に誤検知がないことを確認します-最初に失敗させます。
  • 事業主が「何がテストされているか」を知っていることを確認してください。
  • テストが、開発者の「ホット」マシンだけでなく、ユーザープラットフォームを対象としていることを確認してください。
  • テストを機能の一部にし、コードを書く前にいくつかのテストを書き始めることを目指します。
  • テストがソフトウェアの一部であることを経営陣に伝えます。
  • テストの作成はプロの開発者が行うことであることを経営陣に伝えます。
  • バグが到着したら、それを防いだであろうテストの欠如を指摘します
  • テストの欠如を反映した失敗についての話を見つけてください。
  • バグが見つかったら、テストを作成してそれらを再現および修正し、回帰スイートに追加します。
1
Michael Durrant

テストとは、作業の正確さを検証することです。それを行うのはすべての開発者の責任だと思います。

その引用の著者は主に自動テストについて話していたのではないかと思います。手動テストもありますが、これはおそらくすでに行っていることです。

作成したコードが機能することを確認するために実行する手順は何ですか?これらの手順が参加してのみ実行できる場合は、手動テストを実行しています。 Twitterの確認中にこれらの手順を実行できる場合は、自動テストを実行しています。

私があなたの質問が実際にあると仮定した場合:

[自動]テストに関して、開発者の責任は何ですか?

それなら私の答えはあなたが自分でその決定をしなければならないということです。私が従うルールは「3つ以上のforを使用する」に基づいています。手動テストを2回実行することは許容しますが、3回目に実行するときは、時間をかけて自動テストを作成する必要があります。従うことができる同様のルールを作成することをお勧めします。

1
M. Scott Ford