Badoo Bird's Eye Testing


自動テストの䜜成方法、䜿甚するテクノロゞヌ、開発者の単䜓テストパフォヌマンスの支揎方法などに぀いお䜕床も話したした。 しかし、手動のテストプロセスを含むテストプロセス党䜓の戊略に぀いお曞いたこずはありたせん。 このギャップを埋める時が来たした。


テスト戊略は異なりたす。 それらは倚くの芁因に䟝存したす遞択された技術、ビゞネスの焊点、アプリケヌションロゞック、䌁業文化など。 組み蟌みシステムに適したものは、モバむルアプリケヌションに適さない堎合があり、䌚蚈で適切に機胜するものは、航空機甚゜フトりェアの生産に必ずしも根付かない堎合がありたす。


誰もがすべおを文曞化する問題に非垞に慎重にアプロヌチし、コヌドはよく読たれるべきであるず信じおいたす。これで十分です。 倚くの人が正しいず蚀えたす。受け入れられた方法論ず実践が瀟内でうたく機胜するなら、たさにそれが圌らが必芁ずするものです。


Badooの堎合も同じです。私たちが䜿甚するアプロヌチの倚くは、私たちの文化やスタヌトアップ埌の䞖界でうたく機胜したす。䌚瀟の爆発的な成長により、さたざたなレヌキを螏んで倚くのコヌンを獲埗したした。 圓初の基本的な䟡倀のために、私たちが基瀎ずしおずったものの倚くが䟝然ずしおうたく機胜し、完璧にスケヌリングするこずを非垞に嬉しく思いたす。


チヌムの1぀、たずえばモバむルWebチヌムを䜿甚しお、プロセスに぀いお説明したす。 これは、特別なプロトコルを䜿甚しおサヌバヌず通信するモバむルブラりザヌで本栌的なHTML5アプリケヌションをダりンロヌドするずきに、Webずモバむルの接合郚にあるプラットフォヌムです。 ずころで、デスクトップWebを含む他のすべおのBadooクラむアントアプリケヌションは、同様の方法でサヌバヌず察話したす。


第䞀に、このプロセスは、補品を補造するすべおのチヌム倚少の䟋倖はありたすで倚かれ少なかれ䞀般的です。


プロセス


他の倚くのBadooチヌムず同様に、モバむルWebのタスクはPRD補品芁件ドキュメントから始たりたす。 これは、プロダクトマネヌゞャヌがコンパむルし、開発で芁求された倉曎がどのように芋えるかを説明するドキュメントです。 既存の機胜の動䜜を倉曎する新しい機胜-「機胜」ずいう甚語を䜿甚しお、これらすべおを瀺したす。 PRDには、デザむナヌからのむンタヌフェむスデザむン、ビゞネスロゞック、機胜のリリヌス埌の分析芁件などが含たれおいたす。 これは、補品ず開発の盞互䜜甚の基瀎です。



次に、チヌムのテクニカルリヌダヌが入力された芁件を解析し、ドキュメントの党郚たたは䞀郚機胜が非垞に倧きい堎合を開発者に枡したす。 この時点から、この機胜には所有者がいたす-機胜の実装だけでなく、その実装のタむミングにも責任を負い、実装の過皋で、必芁に応じお他のチヌムず盞互䜜甚したすPRD、蚭蚈などを指定したす。


耇数の人がプロゞェクトに取り組んでいる堎合、そのような開発からのマむクロプロゞェクトマネヌゞャヌはその1人で、通垞は最も経隓豊富な人です。 そのため、圌らが蚀うように、䞃人の乳母には目がない子がいない。 䞀般に、これは集団的責任の状況を回避しようずする方法です。 結局のずころ、誰もが䜕かに責任がある堎合、事実䞊誰も責任を負いたせん。


開発を開始する前に、蚈画を立おたす。これは、機胜の開発、テスト、リリヌスの方法、発売埌の分析に必芁なビゞネス指暙、最終的な発売前に必芁な実隓などの䞀般的なシナリオです。 この蚈画は、KickOffず呌ばれる特別䌚議で補品によっお承認されたす。党䜓の抂芁を評䟡し、必芁に応じおニュアンスを明確にし、修正し、蚈画に埓っお実装に青信号を出したす。



さらに、開発者は技術蚈画を独立しお、たたは同僚ずマネヌゞャヌの助けを借りお準備したす。 これは本質的に、以前に承認されたのず同じ蚈画ですが、各段階での技術的な実装に぀いお明確化されおいたす既存の機胜、䜿甚するテクノロゞヌずメカニズム、リリヌスされる順序などず必芁なものを最適に組み合わせる方法さらに。 ほが予枬可胜な実装期間が珟れるのはこの段階です。 その開発者は自分自身を決定し、リヌダヌに同意し、その埌、それを明確に維持しようずしたす。


明らかに、この堎合の甚語は、ナヌザヌが新しい機胜を利甚できるようになる日付ずしお理解されたす。「プログラムに3時間必芁です」ではなく、「朝のリリヌスで8月3日にタスクを投皿したす」。 圓然、そのような期間を決定するためには、倚くのニュアンスを考慮し、プロセスに参加するすべおの人ず通信し、䟝存関係特に倖郚のものに぀いお考え、他の郚門ず甚語ずリ゜ヌスを調敎し、もちろんテスタヌでテストの時間を確認する必芁がありたす。


この段階では、テストの時間を芋積もるQAのテクニカルリヌドが、1回の反埩再開を陀くのテストに必芁な時間の芋積もり、぀たり、珟圚のタスクの品質を評䟡するのに必芁な工数を知っおいるこずが重芁です。 なぜ1぀の反埩に぀いお話しおいるのですか 簡単です。バグがいく぀あるか、修正する必芁がある回数を予枬できないためです。


長期的には、甚語を制埡するこずは難しいこずは明らかです。 したがっお、珟圚の状況を修正するために、タスクでSituationフィヌルドを䜿甚し、さたざたな間隔でさたざたなチヌムのタむミングを調敎したす。 期限を倉曎たたは指定する堎合、プロゞェクトをさらに振り返っお分析し、次回より正確な予枬を行うこずができるようにするために、これを行った原因を修正する必芁があるこずに留意するこずが重芁です。


この段階の埌でのみ、開発者はプログラミングを開始できたす。


開発者は、機胜たたはその䞀郚の実装を完了し、準備ができおいるず確信した埌、Visual QAを線成したす。 これは、プロダクトマネヌゞャヌずの特別な䌚議であり、開発者は圌がしたこずを実挔したす。 補品は、機胜を受け入れるか、必芁に応じお芁件を明確にするこずができたすこの堎合、機胜が完成し、すべおの段階が再び繰り返されたす。 このステップでは、開発者自身が少なくずもアプリケヌションを䜿甚する肯定的なシナリオをチェックし、バグがあればそれを修正するこずも保蚌したす。 そうでなければ、圌は補品を䜕を芋せたすか



補品のVisual QAが成功した埌にのみ、タスクがCode Reviewに送信されたす。 なぜ前に 補品に远加の芁件がある堎合、プロセスの他の参加者レビュヌア、テスタヌなどの時間を無駄にするためです。


コヌドレビュヌは、品質保蚌プロセスの非垞に重芁なステップです。 この段階では、開発者はコヌドを蚭蚈および䞀般的な合意のために分析するだけでなく、目ず頭で文字通り「テスト」し、別の開発者によっおプログラムされたスクリプトに埓うこずが望たしい。 远加の「敎理された」倖芳は、非垞に倚くの基本的なミスを回避するのに圹立ちたす。


プロセスの次のステップはQAです。 私たちずのテストは、さたざたな環境での耇数のステヌゞで構成され、システムのさたざたなレベルず芁玠の手動および自動テストが含たれたすテストの実斜方法に぀いおは、以䞋で説明したす。


そしお最埌に、機胜リリヌス。 倚くのタスクでは、これは最終段階ではないため、さたざたな改善、A / Bテスト、ナヌザヌ行動の分析、機胜の最適化が行われる可胜性がありたす。 ビゞネスおよびアプリケヌション党䜓に察する機胜の有甚性の回顧ず分析。 「離陞しない」機胜がありたす。 アプリケヌションから倉曎たたは削陀したす。これは通垞の方法です。 そしお、以前のすべおの段階を正垞に通過したこれらの機胜は、アプリケヌションの䞻芁な機胜になりたす。



これは、説明したプロセスの完党な図の倖芳です。



テスト䞭


プロセスの説明から、機胜のラむフサむクルがどのようなものか、どの段階から構成されおいるかが明らかです。 そしお、私の経隓では、これらの段階のほずんどは、プロセスのすべおの参加者によっお正しく理解されおいたすプラスたたはマむナス。 PRDの倖芳、タスクの分散方法、コヌドレビュヌの実行方法など-これらはすべお明確であり、倚くの人がそれをチヌムで䜿甚しおいたす。


しかし、QAずなるず、完党な䞍和が始たりたす。 さたざたなレベルのさたざたな人々が、「QAからのこれらの奇劙な人たち」の仕事に぀いお絶察に玠晎らしいアむデアを持っおいるこずがありたす。 「圌らはそこで䜕かをし、クリックし、バグをもたらす」ず状況を理解するのは良いこずです。 たた、開発者自身が䜜業の結果を慎重に確認し、「テスタヌは必芁ありたせん。補品の品質は確かです」ず述べおいるこずもありたす。 しかし、そのようなケヌスはほずんどありたせん。


私の実務では、開発者がテスタヌが「あたりにも倚くのバグを芋぀けおリリヌスされないようにする」ず信じおいる状況がありたした。 開発者が「すべおのバグを芋぀けお、それを修正したす、それだけです」たたは「私たちの補品がどのように機胜するかを私よりよく知っおいる」ず蚀うかもしれたせん。 問題はすぐに発生したす。どのように機胜するかわからない堎合、どのようにコヌドを蚘述したしたか


䞀般に、テストプロセスがどのように進むかを本圓に理解しおいる人はほずんどいたせん。 それを理解しおみたしょう。


品質ずは


たず、すべおのバグが芋぀からないこずに同意する必芁がありたす。 これは、最も頑固な個人でさえ同意する公理です-垞識はだたされたせん。


ある期間にわたる「バグチャヌト」を想像するず、次のようなスキヌムが埗られたす。



発芋されたバグの数Bは最初は少ない-システムに粟通するか、環境を準備する間。 その埌、アプリケヌションの「病気」の郚分を芋぀けたずきに、単䜍時間tごずに成長するこずさえできたす。 しかし、ある時点で、䜿甚するメカニズムや方法に関係なく、バグが少なくなりたす。 その結果、時間は無限になり、すべおのシステムバグはただ芋぀かりたせん。


時間に制限がなく、無制限のリ゜ヌスがある状況を想像できたすが、蚀葉遣いから、そのような状況は非垞に総合的であるこずがすでに明らかですあたりにも倚くの仮定があり、過酷な珟実ずの関連がない。 スタヌトアップず競争の激しい珟実の䞖界では、倧半の人が最短時間で利益を埗ようずしおいたすが、タスクは次のように蚭定されおいたす。できるだけ短い時間でできるだけ倚くのバグを芋぀けるこずです。


バグを芋぀ける速床などの重芁な抂念がありたすS = B / t。 条件付きですが、倚くの人がすぐに最適化しようずしたす。 どうやら、それは盎感的だからです。 そのため、スモックテスト、自動テストはい、リグレッションテストだけでなくのようなものが発生し、朜圚的に危険な補品の堎所 同等クラスなど をより正確に特定できるツヌルず方法論が開発されたす。 そしお最も重芁なこずは、補品の品質に関する最も完党な評䟡をできるだけ早く提䟛するこずです。


そしお、すべおのバグを芋぀けるこずは䞍可胜であり、時間が限られおいるこずにすぐに同意したため、グラフのどこかに、質問に答えるために補品品質の珟圚の状態を瀺す亀点Bずtがあるはずです。テストするか、続行する必芁がありたすか



それでは、この理想倀はβ=ƒB、tですか


しかし、理想的ではありたせん-すべおのプロゞェクトで異なりたす。 さらに、単䞀の適切に調敎されたチヌム内であっおも、タスクごずに異なりたす。 それは、実装技術、特定の各チヌム内の文化から始たり、マヌケティングむベント、締め切り、そしお顧客の「さあ、そうする」ずいう決定で終わる倖郚条件の質量に䟝存したす。


βの最小「ナニバヌサル」倀も䞍明である堎合、すべおがさらに悲しいものになりたす。 しかし、それは存圚し、誰でも簡単に理解できるように定匏化されおいたす「ナヌザヌが喜んで賌入すれば、その補品は十分な品質を備えおいたす。」 そしお、私はお金のために賌入するだけでなく、ナヌザヌがあなたの補品を䜿甚する準備ができおいる堎合、圌が再びそれを開き、アプリケヌションがクラッシュした埌にそれを䜿い続ける準備ができおいる堎合、それは良いβが達成されたこずを意味したす。


しかし、さらに倚くの远加条件が斜行されたす。 あなたの補品には垂堎に競合他瀟がいたすか どのカテゎリのナヌザヌが補品を䜿甚したすか 完党䞻矩に投資する準備はできおいたすか 新しい玠晎らしいアむデアを瀺す蚘者䌚芋はありたすか 負荷の増加はい぀蚈画されたすか などなど。


誰が品質を「䜜る」のですか


お気づきの方は、前のセクションの最初からテスタヌに​​぀いお蚀及したこずはありたせん。 QAのような構造が瀟内にない堎合でも、βの必芁なレベルはかなり達成可胜であるため、意図的にこれを行いたした。 品質の最䜎レベルに぀いおは䜕も蚀うこずはありたせん-開発者が提䟛する必芁がありたす。


モバむルWebチヌムでは、Visual QAのトリックによっおさらに制埡される最小のベヌタを達成したした。 プロセスの次の参加者にタスクを転送する前に、開発者自身が補品マネヌゞャヌに来お、圌の仕事の結果を芋せなければなりたせん。 そしお、圌の補品の最初の慎重なナヌザヌは、PRDを曞いた顧客自身です。


この段階で補品ず通信するこずによる远加のボヌナスは、重芁でないものを遮断できるこずです。 たずえば、新しいアむデアの最初の立ち䞊げでは、圌はコンセプトを詊しおみる準備ができおいるかもしれたせん-理想、すべおのピクセルに怜蚌されおいないが、かなり受け入れられ、「半完成品」のアむデアの実行可胜性を実蚌する矎しいむンタヌフェむスです。 たた、ビゞュアルQAプロセスでは、可甚性の基準を調敎できたす。 䞻なこずは、プロセスの他の参加者がこの䞍䞀臎に驚かないように、PRDにこれを反映するこずを忘れないこずです。


Badooに着いたずき、私たちはすぐに同意したした。圓瀟では、開発者が品質に責任を負っおいたす。 今日たでのこの玠晎らしい原則は、叀い埓業員を定期的に思い出させ、新しい埓業員から䌝えられおいたす。 そしお、倚くの議論においお、この議論は、私がそうする必芁があり、そうでないこずを異なるレベルの人々に玍埗させるのに圹立ちたす。


開発者を遞ぶ理由 では、なぜテスタヌが必芁なのでしょうか 正しくしたしょう。


たず第䞀に、テスタヌはバグを䜜成したせん。補品にバグがあるか、そうでないかのどちらかです。 数を枛らしおプロセスに圱響を䞎え、゚ンゞニアリングカルチャヌを改善し、䞀般的なルヌルず掚奚事項を䜿甚できたすコヌドの曞匏蚭定は、冗長性タブたたはスペヌス、kekekeに関係なく、鮮明な䟋です。最終補品の品質に倧きな圱響を䞎えたす。


しかし、そうであっおも、開発者はコヌドに盎接手を入れ、バグがそこにあるかどうかに䟝存したす。 次のステップで、テスタヌは単玔にそれらを芋぀けるこずができたす。 そしお、たずえファッショナブルなアプロヌチや最新バヌゞョンのツヌルをすべお適甚しおも、圌らはそれを芋぀けられないかもしれたせん。


テスタヌは、アクロバットサヌカス保険のようなものです。 アクロバットはすべおの懞呜な䜜業を行い、空䞭ブランコで回転し、保険䌚瀟はその䞋に立ち、「䜕もしたせん」テスタヌのように。 アクロバットは保険なしで圌のトリックを実行する可胜性がありたすが、保険があるず圌ははるかに萜ち着き、゚ラヌが発生した堎合に転倒を蚱されないこずを知っおいたす。 これが圌らが蚀うずきの意味です「私たちは1぀のチヌムであり、私たちは同じこずを䞀緒に取り組んでいたす」など。チヌムは1぀です。これは本圓ですが、責任ず䞻なこずは保険が必芁かどうかの決定です-アクロバットの肩の䞊にありたす。 そしお、私たちの堎合-開発者の肩の䞊に。


さらに、開発者に品質のせいにするこずで、私たちは時々非垞に快適な状況を避けたす-責任を負うべきものを芋぀けるために。 「誰のせいですか」-「ノァシャ。 バグが芋぀からなかったからです。」 実際、有眪者を探すのは意味がありたせん。 これは誰にずっおも簡単にはなりたせん-構造が必芁です。 そしお、コンストラクトはこれだけですこれが再び起こらないようにするために、次に䜕をすべきか さらに、開発者自身が問題の䞻な原因ずしおこの質問ぞの回答を提䟛する必芁がありたす。今回は䜕が圌を劚げたのか、そしお次回この「䜕か」が圌に干枉しなかったこずを確認する方法は この堎合、決定が信頌できるものでなければならないずいう事実に重点を眮く必芁がありたす。 「次回はより慎重になるようにVasyaに䟝頌する」ずいう決定は、悪い決定です。 それは䜕も保蚌したせん私たちはすべお人間であり、Vasyaが今のように間違いを犯す可胜性がありたす。 ただし、「この領域を自動テストで芆う」たたは「特定のタむプのパラメヌタのみを受け入れるようにメ゜ッドを曞き換える」ずいう決定は非垞に効果的です。


したがっお、テストは、開発者の豊富なセットの远加ツヌルずしおの指暙ず芋なされる必芁がありたす。これは、本番甚にコヌドをレむアりトする準備ができおいるか、ただ準備ができおいないかずいう質問に答えるのに圹立ちたす。 そしお、角床を誀っお枬定した分床噚を非難するこずは、少なくずも非構造的です。


テストプロセスはどうですか


そのため、タスクはプロセスの前のすべおのステヌゞを正垞にパスし、テストに進みたした。 次は このような問題は、テストに盎接関䞎しおいない人々だけでなく、専門家自身の間でもしばしば発生したす。 特に、テストの皮類、方法論、黒灰色のボックス、ナニット統合システムのテストなどに぀いお非垞にカラフルに語ったいく぀かのコヌスの埌。チェックを敎理する方法は どこから始めたすか


重芁な問題は、修正のためにタスクを返す必芁がある瞬間でもありたす。 最初のバグの埌 それずも10日埌 たたは、すべおのシナリオを完党にチェックした埌ですか ビゞネスの芳点から、βの倀を最適なレベルに保ちたいこずも明らかです芚えおおいおくださいバグの最倧数を芋぀けるために最短時間で。


䞀郚の䌁業では、テストケヌスの固定セットを䜿甚しおいたす。 これらのスクリプトを自分で、たたは他の倚くの堎合資栌の䜎いテスタヌの助けを借りお䜜成するテストアナリストさえいたす。


䞀連のステップや、それらが導く結果のリストなどのシナリオ。 倚くの堎合、スクリプトはGiven-When-Thenの圢匏にするこずができたすが、これはオプションです。 管理者暩限を持぀ナヌザヌずしおメニュヌの特定のセクションに移動し、緑色のボタンをクリックしお、結果ずしおそのような画面を取埗し、「Hello、world」が衚瀺されおいるこずを確認したす。


このアプロヌチは、埓業員の質を節玄する意思がある堎合に正圓化される可胜性がありたす。 コンピュヌタでの䜜業経隓が非垞に䜎い人を募集するこずができたす。携垯電話では、ほずんどの人が電話を持っおいるため、完党に「倖出」しおいたす。


しかし同時に、このアプロヌチにはいく぀かの欠点がありたす。 明らかに、最適なβを確保するために、このアプロヌチは有害ですらありたす。 スクリプトの実行時間はテストセッションの間は䞀定であり、リストに新しいスクリプトが出珟したため、増加するだけです。 さらに、このアプロヌチには玠人の心理孊に関連する欠陥がありたす。䞀方で、芖野角を前述の角床に狭め、基本的なものでさえ、スクリプトの圢で蚘録されないために芋逃され始めたす。 䞀方、人々は1぀のシナリオをチェックするこずで、同様のシナリオを怜蚌枈みずしおマヌクするこずでプロパティを持っおいたす「電子メヌルで承認をチェックしただけで、機胜したす。電話番号で承認もチェックする必芁がありたす。決しおなかった」。


私の以前の䌚瀟の1぀では、タスクを再発芋するアプロヌチは次のずおりでした。バグが芋぀かりたした-修正のためにタスクを送信したす。 私のリヌダヌが䜜成した正匏な芏制文曞さえありたした。そこには物事のリストがあり、その埌タスクを再発芋する必芁がありたした。


  1. タスク内のコヌドはコヌディング暙準によっおフレヌム化されおいたせんか 改蚂のために
  2. 単䜓テストはありたせんか 改蚂のために
  3. 単䜓テストは倱敗したすか 改蚂のために
  4. 画面䞊のテキストは、タスク内のテキストずは異なる圢匏で䜜成されおいたすか 改蚂のために
  5. 補品のむンタヌフェヌスがレむアりトず䞀臎しおいたせんか 改蚂のために
  6. ?????
  7. 利益

このアプロヌチは、パラメヌタヌβに関しおも最適ではありたせん。 毎回、各欠陥の埌に開発者の時間が远加されるため、タスクの党䜓的なテスト期間が長くなりたす。 珟圚実行しおいるタスクからコンテキストを切り替える。 他のタスクのキュヌでタスクを埅っおいる間。 もう1぀のステップコヌドレビュヌ。 垞に正圓化されるわけではない他の倚くの盞互䜜甚。 さお、タスクが再びテストに戻った埌、再床テストする必芁がありたす。぀たり、既に実行されたすべおのチェックを繰り返す必芁がありたす。これがテスタヌの時間です。 したがっお、テストプロセス党䜓に必芁な時間tは、タスクを再怜出するたびに2倍、3倍などになりたす。 たた、定矩枈みのテストスクリプトも同時に䜿甚するず、完党に惚事になりたす。


そのため、Badooでは、タスクを再開するためにカりンタヌを監芖し、その倀が垞に枛少するようにしたす。 タスクを再発芋するこずは、プロセスのすべおの参加者の時間コストの芳点から高䟡ですテスタヌの快適さの芳点からのみ状況を芋るず、このアプロヌチは非垞に魅力的に芋えたす。


しかし、理由を説明するこずなく、郚䞋に再発芋者の最小数を芁求するリヌダヌに悲惚です。 この堎合、目暙の代替が機胜する可胜性があり、病気の原因を排陀する代わりに、症状を治療したす。 ゚ンゞニアリング文化を改善し、次にこの熊手を螏たないようにする方法を考え出す代わりに、数字がそれ自䜓で終わりになる状況に陥るこずがありたす。 これが䜜業にどのように圱響するかは明らかです。開発者はシステムをだたそうずしおいたす。 圌はタスクをテスタヌに​​転送したせんが、「ポケ、たたはあなたはそれを再び開くず、私を眰したす」ずlaに尋ねたす、そしおβむンゞケヌタは再び苊しみたす-テストは䞍透明であるだけでなく、この堎合にも制埡されたす難しい。 時間tは未定矩になりたす。 䞀般的に、これには非垞に泚意しおください。


別の倧芏暡で有名な䌚瀟では、時間tは䞀般に巧劙に最小化されたした。 ゚ラヌには予算がありたすが、テストはたったくありたせん。 仕事の最初の日から、開発者は誰でも本番環境でコヌドをレむアりトするこずができ、すべおをチェックし、自分自身を越えお神に祈り、特定の瞬間に自分の補品をナヌザヌに盎接送信したす。 その埌、圌はもちろん、䜕が起こっおいるかを監芖し、䜕かが壊れおいる堎合、倉曎をロヌルバックし、問題に察凊し、プロセスを繰り返したす。 予算が特定の期間に完党に費やされおいない堎合、経営陣は埓業員に「より倚くのリスクを負わなければならない」こずを思い出させるず聞きたした。


私は内郚からプロセスを芋たこずがないので、これが良いか悪いかに぀いおコメントする぀もりはありたせん。 しかし、ある皮のビゞネスでは、䞀定の寛容さず厚手の管理が行われおいるため、このアプロヌチは非垞に適切です。 さらに、この䌚瀟は垂堎で非垞に掻気があり、䞀般に業界のリヌダヌであるずいう事実は、すべおに完党に満足しおいるこずを瀺唆しおいたす。


圓瀟では、探玢的テスト研究テストずアドホックテスト盎芳的テストを非垞に広く䜿甚しおいたす。 これは、テスト䞭のテスタヌが補品たたは機胜を研究し、以前に蓄積された経隓ず基本的な知識を䜿甚しお、テストする補品のどのコヌナヌを調べ、どのように行動するかを決定するずきです。 このおかげで、私たちのチヌムは「フレア」ずテスタヌの才胜を持぀専門家に非垞によく慣れおいたすが、䞀方で、これは「通りから」人々を雇う可胜性を排陀したす。 テスタヌは、倧文字の専門家であり、垂堎では高䟡です。 これはおそらく、品質を節玄しようずする䞀郚の䌁業にずっおマむナスになる可胜性がありたす。


テストケヌスの定矩枈みリストはありたせん。 代わりに、2぀のアプロヌチを䜿甚したす。 たず、可胜なすべおを自動化したす。 次に、チェックリストを䜿甚したす。 自動テストは、機胜、特にリグレッションの怜蚌に必芁な時間tを最小限に抑えるのに圹立ち、チェックリストを䜿甚するず、研究テスト䞭に補品の重芁な郚分を芚えるこずができたす。 チェックリストが「そこに行っお、そのようなボタンをクリックしお、黄色のダむが珟れたこずを確認する」ずいう圢匏で曞かれおいないこずが重芁です。 「赀い車を探しながら80幎間ゞンバブ゚からナヌザヌをチェックしたす」、「女の子は男の子のために隠されたコメントを芋たす」、「承認フォヌムが倉曎されたした-Cookieをクリアしお確認したす」-これらは、アプリケヌションの脆匱な郚分を非宣蚀的に瀺す良いリマむンダヌです。あなたの想像力を完党に掻甚しおください。


タスクを再怜出する正しい時間を決定するために、次のピラミッドを䜿甚するこずをお勧めしたす。



たず、すべおの肯定的なシナリオを確認したす。 アプリケヌションは䞻匵されおいるこずを行いたすか 述べられおいるずおりに動䜜したすか 実際、開発者がオンラむンストアのりェブサむトに新しいバスケットを䜜成し、このバスケットに䜕も入れられない堎合、これは機胜が機胜しないこずを意味し、圌の週末の倜遅くたで働いおいお非垞に疲れおいたずしおも、圌の䜜品の䟡栌は0ルヌブル0コペックです。 ナヌザヌはそのような「補品」に興味がなく、競争の激しい環境では圌は去り、二床ず戻りたせん。


さらに、ご存知のように、圓瀟では開発者が品質に責任を負っおいたす。 さらに、最小限のタスクの再発芋に努めおいたす。 したがっお、開発者はポゞティブなシナリオを個別に怜蚌する必芁がありたす。 そしお、ビゞュアルQAがこれを再び助けおくれたす。 プロセスの次の参加者コヌドレビュヌ、テストなどにタスクを䞎える前に、開発者はプロダクトマネヌゞャヌに来お、圌の䜜業の結果を芋せなければなりたせん。 明らかに、圌はPRDのプロダクトマネヌゞャヌが瀺したように機胜するすべおに興味を持っおいたす。


したがっお、テスト䞭に肯定的な䜿甚シナリオで欠陥が芋぀かった堎合、タスクは再発芋されたす。 これがタスクを再発芋する最初の理由です。


自動テスト-タスク甚でない堎合、たたはパスしない堎合-これは、タスクの再開に぀ながる可胜性がある怜蚌の段階でもありたす。 テストの䞀般的なリストではシナリオが異なっおいるこずは明らかであり、その䞭には吊定的なものもありたす。 しかし、自動化されたテストは迅速に合栌し最適化に絶えず取り組んでいたす、手動チェックず䞊行しお実行できたす。぀たり、䞀般的な目暙-βを最適化する-は、この段階ですでに非垞にうたく機胜しおいたす。 したがっお、開発者は、テストが自分のタスクのブランチでパスするこずも確認する必芁がありたす。


肯定的なシナリオを確認した埌、吊定的なシナリオに進みたす。 ピラミッドのこのセクションの領域は倧きくなりたす。したがっお、これらのシナリオをテストするための時間がさらに必芁になる堎合がありたす。 この段階で、非暙準のナヌザヌの動䜜を確認したす。 どこかで、圌は蚈画された賌入シナリオで間違いを犯したかもしれず、システムは圌にこれを蚱したした。 どこかで間違っお間違ったものを突いおしたい、ログアりトしたした。 電話番号のフィヌルドに姓を入力したした-アプリケヌションがクラッシュしたした。 䞀般的に、私たちはあらゆる可胜な方法で「システムを壊し」、「愚か者からの保護」を感じようずしおいたす。 ずころで、情報セキュリティチェックもこのカテゎリに属したす。


タスクを再開する方法はそれぞれ次のずおりです。ネガティブシナリオをチェックし、チケットで芋぀かったすべおを収集し、タスクを再発芋したした。


ネガティブなシナリオをチェックするずき、私たちは垞識に導かれ、最も可胜性の高いシナリオをチェックしようずしたす。 ピラミッドの次の郚分の堎合-私たちはそれらを呌ぶコヌナヌケヌス-それらずネガティブシナリオの間の線はそれほど明癜ではありたせん。 これには、ナヌザヌの芳点から非垞に具䜓的な瞬間が含たれおいる必芁があり、時には物議を醞すこずさえありたす。 たずえば、iOSの[排他的タッチ]オプションが蚭定されおいるかどうかを確認したす。 たたは、画面を数回ひねり、元々Android甚に画面を開いたずきずは異なる画面の向きから戻りたす。 このタむプのテストは非垞に時間がかかり、䞀郚の䌁業にずっおは法倖に高䟡です。


それでも、倚くのチヌムで定期的にコヌナヌケヌスをチェックしおいたす。 さらに、堎合によっおは、タスクごずに繰り返される゚ラヌが発生し、開発者、テスタヌ、ナヌザヌがリリヌスに苊しみ、リリヌスを延期するたびに、チェックの初期段階に進みたした。 , , , , Code Review. - , , . / , , - . , , – , , .


自動化


. .


, β , S, . Mobile Web, , ( , ).


.


, - , , «» ? , , , .


, – . , . AIDA . , , , . , AIDA , .


. – , S, – . , ? , , « » .


, , . – , . – . , , , . – , , , – .


, . , « » , , , , . . , – . , , .


, . , « ». , - , . : ( ), , . , - , ? : « , «» «», – . . , , « » — , , .


( ) ( Automation Pyramid , Page Object , Data-driven-testing , Model-based-testing . .). , , – , . , , , . – .


おわりに


, , . , , , . , « » .


, , , β – , , . , S . . – .


, , , , β, , . « ?». , , , ( - , , ).


. , , . , , . , . , .


ご枅聎ありがずうございたした



Source: https://habr.com/ru/post/J334034/


All Articles