web-dev-qa-db-ja.com

テスターとプログラマーがお互いを好きではないのはなぜですか?

プログラマーとしてのキャリアの中で、さまざまなプログラマーやテスターに​​会いましたが、それらの多くはお互いに嫌いだったり、嫌いだったりしました。つまり、プログラマーはテスターの仕事は「本当の」仕事ではないと考えており、テスターはプログラマーがあまりに「誇り高い」と思っています。

これは私が下した正しい決定ですか、それはなぜですか、そしてこれらの種類の問題を回避するために何ができるでしょうか?

18
Dehumanizer

それは一般化よりも単純化よりも大げさだと思います。

私は現在テスターです。開発者として書いたのとほぼ同じくらいのコードを記述し(テスト段階によって異なります)、会社での私の親友は開発者であり、私たちは皆仲良くしています。

あなたは、企業文化と、チームがお互いに働きかけてあなたの答えを見つける方法を見てみたいかもしれません。私の経験では、together、ちょうど異なる焦点または「攻撃ベクトル」から、両方の部門が一般にお互いを嫌うことがわかります。

私が作業している場所では、すべての機能チームまたは設計チームに、開発者と同じくらい多くのテスターが協力して出力を生成しています。その出力は、テストコードで規定されている要件を満たす製品コードです。

編集

また、2つの関係をサポートする責任は、開発者よりもテスターに​​あると思います。

開発者の生活を良くしたり悪くしたりする方がはるかに簡単ですが、目標は単に「バグを見つける」だけでなく、潜在的な解決策を見つけることです。できない場合はできません。その時点でバグを割り当てられた人と協力して解決策を見つけます。しかし、それが単純な解決策である場合は、さまざまな要件と、これから作成する最終的な回帰テストを満足させる潜在的な修正であると私が信じるものを提供します。

50
Steven Evers

[〜#〜] love [〜#〜]私のテスター-私が考えていないことをトラブルシューティングし、発見するのに役立ちます問題、しかし私達の顧客はそうするでしょう。そして私にとって最も重要なのは、不正なコードで誰かを殺さないようにするためです。

なぜ問題が発生するのですか?

  • あなたは常に判断お互いが機能し、一部の人々は批判を受け入れられない
  • 悪い仕事をしているあなたの反対の時間を無駄に
  • あなたは両方ともプレッシャーの下で、同時に同じことのためにであり、誰も物事を支えている者になりたくない

上記とポジションの性質の組み合わせは、現在の怒りと欲求不満をお互いに簡単に取り除くことができることを意味します。その罠に陥った場合、一緒に働くのをやめ、お互いに対して働き始めます。それは抜け出すのが難しく、誰にとっても良くありません。

28
DKnight

プログラマーがプログラムを作成し、テスターがその中の欠陥を見つけようとするので、それが起こると思います(テスターは実際には最終製品の改善の一部ですが)。誰かがあなたが多大な努力を払った何かに欠陥を見つけたときはいつでも、それに対して彼らに否定的に反応するのはおそらく自然な反応でしょう。

これを緩和する方法は、開発者とテスターに​​終了製品を全体チーム(テスターと開発者を含む)の出力として表示させ、テストがスタンドアロンの障害発見ミッションではありませんが、開発プロセスの重要な部分です。そして、開発者がテストがrealの仕事だと思っていない場合、または簡単な場合は、テストマトリックスを記述し、何百ものテストケースを実行し、すべてのステップとすべての結果を文書化します。

私は特定のプログラマーと特定のテスターがお互いを好きではないことを知っていますが、あなたが述べた理由ではなく、むしろ彼らがお互いに仕事をしているからです。

それは獣の性質です。私が知っている特定のテスターの中には、自分のコードが不注意/怠惰などによってエラーが発生しやすいと感じていたため、特定のプログラマを気にしなかった人がいます。特定のテスターを気にしなかった私が知っている特定のコーダーの一部は、ばかげて考案されたテスト条件(nitを選択する)を使用したり、スタイルに基づいてコードの修正を要求したりすると感じました。

パーソナリティを排除し、目の前の仕事に集中することは、緊張を和らげるのに大いに役立つと思います。組織が十分に大きい場合、二重盲検テストは素晴らしいアイデアです。

問題を明確に表現できるテスターと、解決策を明確に実装するコーダーは素晴らしいチームです。

8
Stephen

私がテスターと密接に協力してきたチームでは、私たちは素晴らしく仲良くなりました。テスターは、さまざまな決定がなされた決定を理解し、開発者のスケジュールがどのようなものであるかを知っており、2つのグループ間の関係が築かれています。

テストがオフショアのアモルファスエンティティであるチームでは、これは当てはまりませんでした。テスターは何が起こっているのかをあまり知らないので、テスターの結果はあまり重要ではありません。開発者は、2つの部分で触れられていないプログラムの一部にある重要ではない詳細であると考えるものの洪水を恐れ始めます数か月間、テストチームは提出されたバグが修正されていないことにイライラします(スケジュールがめちゃくちゃで、開発者がデモの準備や要求された機能の追加などで忙しいため)。チームメンバーではなく「その他」。

密接に仕事をして、物事はうまくいきます。誰かが両方のチームが調整され、同じページにいることを確認する必要があります。私の最高の経験、テストチームは、開発チームが招待されたすべてのハイレベルミーティングに招待されました(全員)、私たちは全員スケジュールを知っていて、優先順位リストが統一されていて、開発者とテストの両方が同じでした(up-今日まで)要件ドキュメント。私の最悪の経験(テストなし以外)は、基本的に私たちのものをパッケージ化し、それを海外に発送して調べ、それから1か月後に、私たちのものではないもの(間違ったものとしてマークされたすべてのもの(新しい要件ですが、テストチームの期待ではありません)。

Devもtestも、他がなければ成功しません。同じマシンの2つの半分のように作業し、より直接的なチームメンバーを尊重するのと同じくらい反対側を尊重する場合、問題はありません。 2つの別個のマシンのように動作し、マシンが優れていると想定すると、状況はひどくなります。

5
PeterL

プログラマーとテスターがお互いを嫌うとき、それは彼らの目標が矛盾していると彼らが誤って想像するからです。

5
Dale Emery

これらの問題は、テスターと開発者が「テストチーム」と「開発チーム」ではなく同じチームにいる場合に大幅に軽減されることがわかりました。これがテスターとして、ウォーターフォールの開発よりもアジャイルチームでの作業を強く好む理由だと思います。より多くのコミュニケーションがあり、ターンアラウンドがより速く、開発者は、その作業がより透明であるときにテストに入る時間と才能に大きな感謝を示します。

個人的にも、できることはたくさんあります。テスターとして、バグを見つけるだけでなく、肯定的なフィードバックを提供することで、この摩擦を減らすことができると感じています。私はlotを教えてくれなかった開発者をまだテストしていません。開発者は、コードを理解するために実際に作業するテスターに​​感謝しています。開発者ある優れた職人のように、誇りに思っています。バグがあっても賞賛されなくなるわけではないことを知らせることが重要です

私が最も簡単に見つけた開発者は、優れた品質で評価し、テスターがそれを見る前に高品質のコードを書く努力をすることによってそれを実証しました。これらの開発者は、テスト可能性のコードレビューを行うようにテストにも依頼し、テストをできるだけ早くプロセスに含めました(設計に早い段階で設計を提示することで、テストの負荷が軽いときにテスト戦略の計画を早期に開始できるようになります)。開発者は、Rushで開発された領域、または単体テストが困難な領域を伝えることにより、テスターがコード内の弱い領域を見つけるのを支援できます。一般に、テスターの仕事を簡単にするために開発者ができることは何でも認められ、テスターの時間だけでなくテスターの時間も重視していることを示しています。開発者がこれを行うと、1人のテスターが複数の開発者の作業を簡単にカバーできます(現在、私は4人の開発者をテストし、これを行うために残業時間はほとんどありません)。

3
Ethel Evans

もう1つの問題は、QAが多くの企業でよく考えられていることです。多くの場合、それはプロジェクトの直前に伝えられ、開発チームに比べて人員不足です。一部の場所では、開発者への道は技術サポート、QA、そして開発者です。したがって、開発者であることを望んでいる人がいることもあります...そして、彼らが欠陥を見つけたとき、彼らの態度は、その人がどのように開発者であり、私ではないのかということです。

全体として、QAチームが大好きです。また、単体テストはQAとは別にソフトウェア開発の必要な部分であるべきだとも思います。したがって、QAがバグを検出すると、単体テストはそれをテストするように変更されます。さらに、ユニットテストを行う開発者は、QAが何を見つけているかをよりよく理解できると思います。

さらに、多くのQAチームは手動で物事を行わなければなりません。その場合、それは本当に退屈な仕事です。一部の場所では、QAはスクリプトを記述し、スクリプトGUIを許可する自動化プログラムを使用します(ボタンなどの画面上のある種の画像認識を通じて)。その後、大きな変更が最初に発生するときはまだ難しいですが、その後すべてが自動化され、より楽しいようです...

また、QAを軽視する開発者もいます。それでも、お客様よりもQAで欠陥を見つけたいと思います。

3
Cervo

私たちはここでテスターを愛していますが、多くの人はテスターを手に入れる前の状態を覚えています。運用環境に行った後でクライアントに問題を発見させるよりも、テスターに​​問題を発見させるほうがはるかに優れています。バグを作成したり、要件を誤って解釈したりしていない開発者は生きていません。

重要なのは、すべての専門家を丁寧に扱い、彼らがあなたがしていることをしているかどうかを尊重することです。自分の仕事が彼らの仕事よりも優れている、またはより重要であると考え始めると、失ったことになります。

この質問に基づいて: ソフトウェアテストの手法またはカテゴリ テスターおよびテスト全般に対する態度の調整が必要だと思います。

2
HLGEM

開発者として、私はテスターとの緊張の共有を経験しました。

ある仕事では、テスターが「正しいこと」をテストすることはめったにありません。私の製品のサーバーに新機能を実装すると、テスターはユーザーインターフェイスに関するエラー全体を報告します。その製品では、ユーザーインターフェイスはconfiguredではなくcodedだったため、開発UIに問題が存在するかどうかは、エンドユーザーが持っているかどうかへのリンクがまったくありませんでした。同様の問題を持つUI。テスターはこれを知っていましたが、無関係な領域に関するバグのロギングを続けました。

とはいえ、優れたテスターは金の価値があります。ひどい開発者をすぐに優れたテスターと交換します。優れたテスターは、高品質の製品を提供するパートナーです。

私はテスターを敵として扱う開発者も何人か知っています-テスターが障害を導入しているようです。開発者は、テスターが決して障害を引き起こさないことに気づくことが重要です。

2
Bevan

私はテスターが好きですが、2つのケースで矛盾が見つかりました。

  1. 管理者がテスターと開発者を互いに引き離すとき。

  2. 詳細が不足している問題、つまり「画面xが機能しない」が絶えず送信されている場合。

1
Craig

これらの問題を回避するには?お互いに親切にしてはどうですか?高品質のソフトウェアアプリケーションを入手するには、一方がもう一方を必要とするので、これを実現するために双方が行う必要があることを尊重してみませんか?それぞれが何をするかを理解してください、そしてあなたは実際に関与する仕事に感謝するかもしれません。

1
Bernard

要件の正しい解釈が何であるかに関する両側の頑固さは、開発者とテスターの間の競合を一般的に見る傾向があったところです。軽食や傲慢さの外観があるかもしれませんが、それぞれの側が彼らの銃に固執し、正しいことを望んでいるだけです。

この問題を回避する良い方法は、開発者、テスター、およびビジネスアナリストまたはプロジェクトマネージャーのメディエーターの3人が、さまざまな境界ケースをどのように処理するかを検討することです。考慮すべきことは、開発者とテスターの間に不一致がある場合、どのようなエゴが発生する可能性があるかです。

1
JB King

悪い感じは通常、コミュニケーションの不良の結果です。これは通常、プログラマーとテスターがコードの異なる見方をしている結果です。プログラマーは、自分が現在取り組んでいるビットを知っていますが、それらがシステム全体にどのように適合しているかを(仕様が教えている範囲を超えて)知らない場合があります。テスターは全体像を見ますが、コードの詳細は知りません。グループは同じものに対して異なる用語と手順を使用する場合があります。

これにより、間違ったコンポーネントに対して欠陥が提出される可能性があります(コンポーネントが上流の障害に対応しているため)、または開発者が環境で問題を再現できないために正当な欠陥をクローズする(再現方法を本当に理解していないため)問題を正しく)。これが頻繁に発生する場合、グループ間の関係に負担をかける可能性があります。

それから、11時間目に欠陥のバッチを取得する喜びがあります。締め切りが迫っており、直属の上司から連鎖的に圧力がかかっており、あなたは問題について新たな欠陥のバッチを得ます知っているすでに修正済みであり、本当にしたくないそれを証明するためのプロセスを通過する時間をとる必要があります。

1つ本当に QAチームを怒らせる良い方法は、数百の正当であるが優先度の低い欠陥(主に、他の方法では機能していた醜いまたは一貫性のないUIに対して提出された)を優先度の高いものとしてまとめて閉じることです欠陥のバックログは非常に大きいため、「それらに到達することは決してありません」。プログラムマネージャーのスプレッドシートを赤から緑に変更し、上級管理職からattaboyを取得します。一方、QAチームは、一連の偽の欠陥をファイリングするためのメトリックにヒットします。

悪いジュジュ。

1
John Bode

これは多くの場合3つの要因から生じます-

  • このような質問は、開発者とテスターがお互いを嫌う業界の「民間伝承」の存在を指摘しています。チームにそのような感情が存在しない場合でも、人々はこれを補強する側面を見つけようとします。
  • 記録されたバグの数などの指標によって進捗状況を測定する無能なプロジェクトマネージャー。
  • 機能不全のチーム(およびそれを修正するのに十分に関心があるリーダーの欠如)。
1
talonx

これが本当にそうだとしたら、それは未成熟の兆候だと思います。時には冗談としてそれを話すかもしれません。しかし、あなた(開発者とテスターが同じプロジェクトに取り組んでいる)がチームのように感じなければ、結果は惨事になります。

テストは、ソフトウェア開発ライフサイクルの非常に重要な部分です(アジャイルかどうかに関係なく)。したがって、テスターをバグに悩まされて住む人々と考えるのではなく、高品質のソフトウェアを出荷するのを助けるチームメイトとして考えるべきです。

0
Shady M. Najib