paint-brush
バグの発見と犯罪解決の共通点@grgr
637 測定値
637 測定値

バグの発見と犯罪解決の共通点

Ivan Grigorev5m2022/10/13
Read on Terminal Reader

長すぎる; 読むには

InDrive の QA マニュアル エンジニアが、バグ レポートを調査するプロセスについて説明します。犯罪捜査と同様に、QA は製品知識と製品知識によって導かれます。どちらのプロセスも、不正行為の結果とその原因と影響を調査することに重点を置いています。 QA エンジニアは、境界値、等価クラス、およびペアワイズに焦点を当てたテスト設計手法を適用します。対照的に、研究者は、可能な限り効果的に次のステップを計画できるようにする戦術と組み合わせを適用します。
featured image - バグの発見と犯罪解決の共通点
Ivan Grigorev HackerNoon profile picture

この 2 つの領域には多くの共通点があるように思えます。たとえば、どちらのプロセスも、不正行為の結果とその原因と影響、および関連する記録管理と文書化の調査に焦点を当てています。


1 年前、私は inDriver で QA マニュアル エンジニアの仕事のオファーを受けました。しかし、それ以前は、さまざまな法執行機関や機関で刑事事件を調査するために 7 年間を費やしました。在職中は、人の生命や健康を危険にさらす重大犯罪から、地域をまたがる性質の経済犯罪まで、幅広い犯罪に関与しました。私の最後の仕事での役職は、「サハ共和国(ヤクート)内務省捜査局組織犯罪対策捜査課主任捜査官」でした。


現在の私の仕事は、回帰テストの設定、モバイル UI の自動テストの作成、および製品の品質を損なうことなくユーザーに新機能を提供するプロセスをスピードアップするために設計された他の多くのことを処理することです。


調査の開始

犯罪捜査が犯罪現場の調査から始まるように、バグ レポートは欠陥が見つかった環境の説明から始まります。このようにして、確かで信頼できるデータを収集します。次に、そのデータを基礎として使用し、演繹的アプローチを適用し、環境や製品に関する知識を適用して、調査範囲を絞り込み、さらなる動きの計画を立て、仮説を立てることができます。

犯罪現場の図とバグレポートの環境の説明

行動計画の策定

生データを取得すると、情報の多様性に直面します。今、行動計画を立てることが重要です。ここでは、時間が一番のリソースです。名前入力フィールドの -2,147,483,648 から 2,147,483,647 までのすべての値をチェックして、欠陥を特定することはあまり良い考えではありません。同様に、捜査官は、町の住民全員に質問したり、分子遺伝学的検査のためにすべての家庭用品やアイテムを送ったりする能力を持っていません.


この問題を解決するために、QA エンジニアは、境界値、等価クラス、およびペアワイズに焦点を当てたテスト設計手法を適用します。対照的に、研究者は、可能な限り効果的に次のステップを計画できるようにする戦術と組み合わせを適用します。

尋問チェックリストの目次の例


最初の仮定を立てる

アプリでクラッシュが発生したという趣旨の殺人報告を受け取ったとします。捜査官としての私の経験から、すべての殺人事件のほぼ 90% が何らかの形で被害者の夫、妻、親戚、友人、または隣人に関連していることを知っています。アプリの場合も同じです。製品の知識に導かれます。たとえば、スニファーを取り出して、送信される要求と取得した回答をチェックするとします。家族全員にアリバイがあり、サーバーからの応答には「200」が含まれています。ここではすべてが順調に進んでいるようです。

また、健全な精神を持った人が理由なく殺人を犯すことはありません。それに基づいて、容疑者の無制限のリストを、被害者が経済的に関係していた人、または仕事関連またはその他の連絡先を持っていた人に絞り込むことができます.同様に、アプリでは、欠陥が伝播し始めたリリース バージョンを特定し、コードのどの変更によってバグが発生した可能性があるかを推測できます。

ログのプルアップ

次に、いくつかの有罪の証拠を追跡するために、犯罪に先行するすべてのイベントを確立しようとします。


  • 私たちはビデオカメラの映像を見ます。

  • 近所の人に、喧嘩の音を聞いたり、不審者を見たりしていないかを聞きます。

  • 犯罪が行われる直前に被害者が電話で話した相手を特定します。


欠陥に対処する際には、証拠も収集します。


  • Android Studio または XCode でログをキャプチャします。
  • サーバーログを確認します。


その過程で、NullPointerException という男が犯罪が行われる直前にアパートに入ったことがわかりました。近所の人は、彼が定期的に酔っ払っており、建物のすべてのテナントに恐れられていた前科のある地元の小さなチンピラであると特定しました。


犯行現場での証拠調べ

有罪の証拠が提出された後、男が犯罪を自白したとしましょう。調査はこれで終わりではありません。犯罪を犯したのは彼であり、彼の罪の告白は、捜査官の気分を害することへの恐れではなく、自責の念に動機付けられていることを確認する必要があります.


この目的のために、証拠は犯罪現場で検証されます。そこでは、容疑者は犯罪の完全な詳細を明らかにし、犯罪の実行に関与していない当事者には知られていない状況を詳述する必要があります。犯罪。このように、欠陥を再現するための安定したシナリオを特定することで、探していた適切な当事者を見つけたという決定的な証拠を得ることができました。

犯罪捜査完了=不具合報告

犯罪のすべての状況が確立されると、欠陥を修正するのは捜査官の仕事ではありません。集めた証拠を刑事事件簿にまとめ、起訴状を作成し、裁判所に提出します。判決、バグの修正方法、またはこのバグを無害な機能であると宣言するかどうかの決定は、テスト プロセスの外で行われます。

犯罪の理由を明らかにする

将来の同様の犯罪を防止するために、捜査官は、審査中の犯罪の実行に寄与した状況を明らかにし、関連する行動を取らなければなりません。たとえば、加害者の行為に関する報告に対して以前に対策が講じられなかった理由、または加害者に対して取られた措置が犯罪を防止できなかった理由を立証しなければなりません。


同じことがテストの場合にも当てはまります。PROD でバグが検出された場合、その出現に寄与した要因を特定することは問題ありません。


  • 不十分なテスト カバレッジ。
  • テスト カバレッジなしでマージします。
  • 問題の定式化が不十分。
  • 不十分に定義された要件。
  • QAスペシャリストによってチェックされていないコーナーケース。
  • テストおよび開発目的に割り当てられた時間が不十分。
  • 開発チームメンバーの専門的資格が低い。
  • 頻繁に変化する要件。

結論

明らかに、調査員とテスターの仕事は同じではありません。いくつかの共通の機能にもかかわらず、それらの間には類似点よりもはるかに多くの違いがあります.しかし、何らかの理由でキャリアの軌道を根本的に変えたいという願望に直面した場合は、当社のパートナーから適切なコースを見つけることができます。これは可能です。まったく違う分野でも、同じような考え方が必要な活動を見つけることができます。そうすれば、自分で設定した目標を達成するのが少し簡単になります.


こちらにも掲載