質問

い試験機は、試験において、エラーが発生し(○これまでもその頻度で報告します。このデベロッパー、その後の試験装置は再現しようと試みたのがかな方を探しているといえよう。

ことになるからだの不具合いを無視します。なリプロの手順は私のような固着しました。る場合もあり、スタックトレースも頻繁になるので便利でコンパクトの枠組みがなの行番号).ものがある場合はできるスタックトレースならびにひび割れのコードを開始推測がつながらないテスト"修正".

どんなシナリオはこのような態度を取るのか。

役に立ちましたか?

解決

バグのないコンテキストはバグで吸虫.の問題がコード、第三者には、図書室、そしてハードウェア、またはできる太陽光放射線が単一のビットを反転します。できない場合は再現で少なくとも 一部の 規則性(い場合であっても"もう一度10または20倍んXすることができなくなったのはり試験機ではないことがおわかり頂け"もどこか良くなかったかなんとか-に固定しながら学んでいきます。

いて説明を試験するのが仕事がなを入力までもブレイクがあります。また、代替が可能になるかもしれなされた乱数ジェネレータ。の仕事を同定するバグを伴う方法を特定をします。

他のヒント

最終的に、開発者もテスターもバグを再現できない場合は、閉じますが、そのようにマークされます。

ただし、そのポイントに到達するのにどれくらい時間がかかるかは議論の余地があります。

一部の人々は、すぐに再現できなければ、すぐに閉鎖する必要があると主張する人もいます。

私は通常、問題の創始者からより多くの情報を取得しようと努力しています。元のレポートで彼らが忘れていたものがあるかもしれません。必要な手順について会話をすることで、欠落している情報が明らかになる場合があります。

最後の考え - 「ノーレプロ」として閉鎖されました そうではありません 平均固定。本当の問題がある場合、それは遅かれ早かれそれ自体を明らかにし、最終的に問題を再現できるときにあなたができるすべての情報を持っているでしょう。

いくつかの提案:

  1. 製品コードにロギングを追加します(キーロガーだけではありません:})。 「reproはありません」バグは吸虫である可能性がありますが、予期せぬ方法で使用される汚れたシステムでのみ発生する記憶または状態の腐敗である可能性があります(つまり、顧客のコンピューターのように)。ロギングまたはトレース情報は、あなたが何を理解するのに役立ちます 五月 テスターが吸虫を見つけたとき、間違っていました。

  2. データベース内の「reproなし」バグ(またはバグ追跡に使用するもの)をスキャンします。多くの場合、吸虫は製品の1つの領域に集まっています。 1つのコンポーネントが故障しているように見える場合は、コンポーネントをレビューします。

  3. 30分ほどかかり、テスターのテストを見てください。彼らのアプローチは、何がうまくいかなかったかについてのアイデアを与えるかもしれません(例:「興味深い - そのようにダイアログに到達できるとは知りませんでした」)。また、意図せずにダイアログまたは構成ステップをスキップすることに気付くかもしれません。少し頭に入るのは時間投資の価値があります。

私は大規模な商法でQAをしていますが、この刺激的なシナリオはあまりにも頻繁に出てきます。通常、サポートするすべてのプラットフォームにバイナリを構築するための鉄の鎖骨がないことを示しています。したがって、開発者が自分のコードを作成し(デバッグと修正するためにしなければならない)、レターに同じビルドの手続きに従わない場合、システムに依存するバグが魔法のように消滅する(または表示)に見える可能性があります。もちろん、これらのことは通常、バグデータベースの「Works For Me」で閉鎖され、次にその問題が実行されたときに失敗した場合、バグは再開できます。バグがシステムに依存していると思われるときはいつでも、さまざまなプラットフォームでテストし、どの条件が起こるかを報告しようとします。多くの場合、破損したデータがクラッシュを引き起こすのに十分な大きさであるかどうかの記憶腐敗の問題が表示されます。一部のプラットフォーム(HWとOSの組み合わせ)は、腐敗の実際のソースに近づいてクラッシュする可能性があり、これはそれをデバッグしなければならない貧しい人にとって非常に価値があります。

テスターは、システムが障害を示していることを報告するだけでなく、ある程度の付加を行う必要があります。私は誤った肯定的なスクリーニングに多くの時間を費やしています - おそらく問題のプラットフォームが過負荷になっているか、ネットワークに不具合がありました。そして、はい、ランダムタイミングイベントによって本当に影響を受けるものを得ることができます。ハードウェアのバグはしばしばProtoの例のようになります。2つのデータ要求がまったく同じクロック期間に戻ってきた場合、潜在的な競合を処理するためのハードウェアロジックに欠陥があります。その後、バグは断続的にのみ表示されます。同様に、並列処理では、慎重な設計によって、どのプロセッサがたまたまより速くなるかを独立させる解決策を制約しない限り、ブルームーンで1回しか発生しないバグを取得でき、統計的な不動産により悪夢のようにデバッグできます。

また、私たちのコードは通常、毎日何度も更新されており、南に進んだときの正確なソースコード改訂番号を追跡することは、デバッグの取り組みに非常に有用な情報になる可能性があります。テスターは、デバッガーや開発者と敵対的な関係にあるべきではありません。彼は、製品の品質を向上させるためのチームの一員としてそこにいます。

いろんなバグが再現できません:

1)この試験装置(またはユーザが一度もなくなっているのではないでできていないと再現いたします。

これらの状況をすべきである。

  • 非常に簡単にチェックの基本コースの行動を示すの欠陥るためで再現可能です。

  • 語のテスター/ユーザーがきていることを確認して下さいその他の情報があります。

  • 横断の参考として他の欠陥があるかを見ていれば十分な情報のみに基づいて、複数のう場合がございます。を見つけることができるだろう課題のひとつないで情報が十分に出しの結果、他の多くの課題を示唆しているのかもしれんな価値のある調査.

  • だいくされ、その後必要な説明をユーザー/テスターがいないなど十分な情報です。概して丁寧など十分な情報ようになるとしているです。

2)の方でないことを確実に再現しますが、この動作は十分な証拠(繰り返し発生)によると、欠陥が存在しているが、そのようなことは開発の問題、開発者による支援のテスター/ユーザーニーズでお試しいただけます。

このが遅くなり、痛みを伴うのだが今よりもっと歩くコードを追加-ログ、データをみているために、電話やテスター/ユーザーの深いものが多く含まれている場合は証拠の提示ができる問題があり必要はありません。を積むことができます。いというニーズを検討するに当たって、これはいいじゃないか初書きぐらい。

これは比較的頻繁に起こるように聞こえます - それは私が不思議に思うのですが、それはほとんどのバグが本当にreproしにくいからです、または彼がしようとしていないのは他の理由のためですか?あなたは知っていますか どうして 彼は問題を再現しようとしていませんか?それは彼があなたにとってどれほど重要かを理解していないからですか?それとも、おそらく彼が他のプレッシャーを持っているのでしょうか。たとえば、割り当てられたテストを迅速に通過して壁にバグを投げることを望んでいるテストマネージャーですか?それとも、彼はそれをどうやって行くのかわからないのでしょうか?

私は他の人に、より良い伐採に取り組むことが優先事項であることに同意します。それまでの間、テスターのスキル/自信の欠如が問題であると疑っている場合、私はこの記事が本当に好きです ダニーはバグ分離に襲われました - あなたは彼にそれを最初に向けることができます。

問題が管理圧力によるものであることが判明した場合 - 特にテスターとプログラマーが異なるマネージャーに報告し、マネージャーが別のチームを「助け」する傾向がない場合、それはクラックするのが難しいので、あなたは私の同情を持っています。

通常、私はそれが再現性がないことに注意しますが、テストまたは反復のバッチが完了するまで開いたままにしておきます。

それがその時点で複製されていない場合、それは閉じられていますが、再び遭遇すると再開できます。

このテスターのワークステーションにキーロガーを貼り付けてください!

まあ、最初のタスクは、再現可能なテストシステムを持つことです。あなたのテスター しなければならない 明確に定義されたプロセスがあります - 可能な場合は自動的に。

これらの3つの条件を持っています:

  • 同じバイナリ
  • 同じ手順
  • 同じマシン

上記の3つの条件でバグが散発的に現れる場合は、さらに分離し始めます。システムスタックの各レベルとその構成を検討してください。

メモリ管理エラーを検出する1つの方法は、複数のコンパイラを使用して複数のOSSでプログラムを実行することです。 Valgrindも役立ちます。

ただし、通常、並列システムは、非レプロバグを誘導する責任があります。バッファのサイズや処理速度、Asynch IO、データベースロック、可変メモリの書き込み係数など。これらはすべて問題を生成できます。などなど。

まず第一に、あなたは厳しいテスト手順を持っている必要があります(しかし、私はあなたを理解しています、あなたが説明したことは頻繁に起こります)。

バグの重大度に応じて、それに時間を費やすか、(より良い)reproステップが提供されるまでそれを無視することができます。

ライセンス: CC-BY-SA帰属
所属していません softwareengineering.stackexchange
scroll top