「歊装」のための5぀のアむデア、たたはモスクワの「ハむれンバッグ」の印象

画像



チケットを受け取っおいる䌚議が「面倒」にならないようにする方法は 私の意芋では、最良の方法は、同じ䞻催者の䌚議の1぀で講挔者になり、自分に関するレポヌトの遞択ず準備をテストするこずです。 春、私はJUG.ruグルヌプが開催した䌚議で講挔を行いたした。それ以前に起こったこずはすべお、孊䜍の防衛を連想させたす。 実行のたびに質問ずコメントの長いリストを受け取った埌、私のレポヌトはプログラム委員䌚によっお䜕床か聞かれたした。 委員の1人が「反察者」になり、Slackでの絶え間ない議論で、レポヌトで話したいこずの有効性の無条件の蚌拠を埗るために远加の実隓が必芁になりたした。 報告曞が承認されたずいうニュヌスが来たずき、それは最終的なものではありたせんでした。 このテストを行った埌、JUG.ruグルヌプのメンバヌは䌚議で混乱を蚱さないこずを知っおいたす。 そしお、私は圌らを信頌しおいたす。今幎、圌らの䌚議のほずんどに参加したした。



私にずっおモスクワハむれンバッグは、繁忙期を締めくくる今幎最埌の䌚議です。 開䌚の挚拶でプログラムディレクタヌのアンドレむ・ドミトリ゚フが衚明した統蚈から刀断するず、ハむれンバグの人々のほずんどはプロのテスタヌです。 コミュニケヌションの感芚は、䞻に熱心なQAチヌムを持぀倧䌁業で働く人々です。



私はハむれンバグの兞型的な蚪問者ではありたせん。 私たちの䌚瀟には玄25人しかいたせんが、倚くは圹割を兌ね備えおいたす。 私は技術リヌダヌ、プロゞェクトマネヌゞャヌ、そしお単なる「問題解決者」でなければなりたせん。テスト自動化に関䞎しおいるのは数人だけです。 圓瀟の存続は、文字通りチヌムの効果にかかっおいたす。 効率を䞊げるこずは、新しい知識を埗お芖野を広げるこずによっおのみ可胜です。そのために私ず同僚2人はハむれンバッグに行きたした。



1日目



カンファレンスオヌプニング



䌚議の開幕から良い雰囲気が生たれたした。 オヌプニングの際、プログラムディレクタヌのアンドレむ・ドミトリ゚フは、芳客に課題を䞎えたした。 䌚堎はすぐに倧きな音でいっぱいになりたした。 ずおも䟿利な仕事でした 結局のずころ、䌚議は最倧限の利益を埗るために巧みに䜿甚する必芁があるツヌルです。 䌚議の䞻な構成芁玠はレポヌトであるように芋えたすが、実際には、レポヌトに座っお総利益の玄40しか埗られず、残りの60を自分で取る必芁がありたす。 あなたがITの内向者である堎合、新しい人ず䌚話を始めるためには、自分でやり盎す必芁がありたす。 しかし、これは最初から難しいこずです。あなたず同じように、ここにいる党員が䜕か新しいものを求めお来たこずがすぐにわかりたす。䌚議でコミュニケヌションをずるこずは本圓に簡単です。



ノむズが萜ちたずき、アンドレむは別のタスクを䞎えたした。少なくずも5぀の重芁なアむデアを思い出すために、䌚議から持ち出し、次の2日間で実践するこずができたした。 私はこれに泚意し、報告は3぀の郚屋で始たりたした。



1







最初のタむムスロットでは、 Dmitry Buzdinのレポヌト「オヌトテスト甚の独自のフレヌムワヌクを構築する方法」に行きたした。 理論䞊のISTQB汎甚テスト自動化アヌキテクチャアヌキテクチャに基づいお、Dmitryは、テストプロセスのすべおのタスクを完党にカバヌするようにオヌプン゜ヌス゜リュヌションを組み合わせる方法に぀いお話したした。 個人的には、レポヌトには既補のレシピは含たれおいたせんでしたが、䞀方で、ISTQBモデルに぀いお知り、テストフレヌムワヌクを構成する詳现に぀いおの知識を真剣に泚文したした。







同時に、平行した郚屋には、 TestContainersに関するSergey Egorovの報告がありたした。 非垞に簡単な理由のために行きたせんでしたJEEConfで春にTestContainersに関するSergeyのレポヌトを初めお聞いたのは、初秋にこのテクノロゞヌを実装し、10月にJokerでSergeyず詳现にコミュニケヌションを取り、成功したした出䌚った機胜。 TestContainersのアむデアはシンプルで匷力です。たずえば、既存のDockerむンフラストラクチャずダりンロヌド可胜なむメヌゞを䜿甚するず、たずえば、クラスをむンスタンス化するだけで実際のOracleデヌタベヌスぞのJDBC接続を取埗できたす。これは、ある皮のHashMapほど耇雑ではありたせん ブラりザ、デヌタベヌスなど、クラスをむンスタンス化するだけですぐに䜿甚できたす テスト環境の耇雑な蚭定ずテスト自䜓の構成が必芁だったものは、3぀の単玔な芁件に芁玄されたす。マシンにはJDK、MavenGradle、Dockerが必芁です。 TestContainersの䜜成者は玠晎らしい仲間であり、幞運を祈りたす。



2



画像



それから、 Simon Stewartの「Scaling Selenium」レポヌトに行きたした。 Simonは、UIテストが成長し、より耇雑になるに぀れお発生する䞀般的な痛みの問題に぀いお話したした脆匱なロケヌタヌ、期埅、クラりドを含むSeleniumでのスケヌリング。 私はこのトピックに深く没頭しおいるずは感じたせんでしたが、サむモンが私が絶察に自宅で応募したい最初のアむデア、 「前提条件の確認」を衚明したこずに突然気付きたした。 システムテストを開始する前に、システムが䟝存するすべおのサヌビスが実行されおいるかどうかを確認したす。 デヌタベヌス、認蚌サヌバヌ、およびアプリケヌションが䜜業に䟝存するその他のコンポヌネントは動䜜したすか 実際、少なくずも1぀が「嘘」である堎合、テストする意味はありたせんが、問題を明瀺的に停止しお報告する䟡倀がありたす。 そうしないず、倚数の無関係な゚ラヌがログに蚘録され、テスト結果自䜓の信頌性が損なわれたす。



同時に、私の同僚のニコラむは、アレクセむ・ノィノグラドフずアンドレむ・゜ルンツェフのセレニド・パズルラヌを蚪れたした 。 クむズレポヌトは、あなたの心の速さで茝き、Tシャツを獲埗するための玠晎らしいアむデアです。 そこから戻るず、コリアは力を尜くしお手を匕いおいるず蚀いたしたが、圌は䞀蚀も䞎えられたせんでした。 繊现なKolyaず、通垞「パズル」で起こる誇倧広告を知っおいるので、手を匷く匕っ匵る䟡倀があったず思いたす:-) Selenideは、「裞の」Seleniumの問題のほずんどを解決する玠晎らしいフレヌムワヌクです。 詊しおみたしたが、今は別のものを䜿甚しおいたす。 ハむれンバグの埌、圌らは圌らの遞択の正しさに぀いお考えたしたが。



3



次に、 りラゞミヌルシトニコフのレポヌト「ブラりザ偎でのWebアプリケヌションのパフォヌマンスのテスト」に進むか、ラりンドテヌブル「2018幎にテスタヌが知っおおくべきこず」に行くかを考えお、ブラりザ偎のパフォヌマンスにただ䟝存しないこずを決定し、ラりンドテヌブルに。



画像



そこにはテヌブルはありたせんでしたが、5人のスピヌカヌが䞊んで座っおいお、プレれンタヌず聎衆ずテレグラムチャンネルからの質問がありたした。 議論は䞻にテクノロゞヌではなく、テスタヌのキャリアパスず䌚瀟の組織構造に぀いおでした-私たちのようなフラットな構造を持぀マむクロ䌁業にはあたり関係ありたせん。 スピヌカヌは5人でしたが、ニコラむアリメンコフが最も積極的に話し、1時間で耇数のレプリカを挿入した方が良い人もいたした。 NikolayはIT分野で最高の専門家およびトレヌナヌの䞀人であり、気の利いたかっこいい男だず思いたす。 しかし、この䌚議で圌はすでに2぀のレポヌトを持っおいるので、他の人にもっず話す時間を䞎える䟡倀があったのかもしれたせん。



私はそのようなこずを理解したした。専門家のグルヌプに尋ねたい特定の質問がある堎合にのみ、「ラりンドテヌブル」に行く䟡倀がありたす。 「リッスン」に行くず、䌚話のスレッドが期埅どおりに行かない堎合がありたす。 スピヌカヌは、ディスカッション゚リアやパヌティヌで特定の質問をする方が䟿利な堎合がありたす。これにより、円卓ずいう考えがかなり疑わしくなりたす。



しかし、この時間垯で私たちは悪い時間を過ごしたず蚀うわけではありたせん。 私が同僚の隣にいたずき、私は圌にいく぀かの萜ちるUIテストを芋せたした。そのため、ゞェンキンスは私にメヌルで迷惑をかけたした。そしお来週の顧客ぞのショヌの前に私は緊匵したした。 䞀緒になっお、これらのテストが倱敗した理由をすぐに突き止め、私は䌚堎を満足させたした。 カンファレンスでは、仕事が必芁な堎合がありたす。 そしお、私たちは間違いなくビデオでりラゞミヌル・シトニコフの報告を芋るでしょう



昌食



私が蚀えるこずは皮肉にも扱われたすが、昌食はあらゆる䌚議の質の最も重芁な指暙であるず考えおいたす。 䞀日䞭過ごしたり、出匵に行ったり、深倜に垰宅するだけで、垞に知識を埗るこずに集䞭したす-これぱネルギヌ集玄型です。 䌚議での食べ物は、食べ物や枇きに぀いおの考えが気を散らさないようにし、食べ物に特定の芁件があるかもしれないずいう事実を考慮しおください。 この点でJUG.ruグルヌプはよくできおおり、パンクもありたすが、食品の品質は良奜ですHabréの電報ずkamentyは、Joker 2017でキヌアに぀いお長い間芋られおいたした:-)今回、私が倕食にいたずき、私はそれを芋぀けたしたすべおの人はすでに明らかに満腹でしたが、テヌブルはただスナックや枩かい料理でいっぱいでした。 これは私に自信を䞎えおくれたした。 野菜ずegg子ずチヌズの 䞋で魚をもう䞀杯食べるこずを吊定したせんでした。その埌、続ける準備ができたした:-)



4



画像



前のサンクトペテルブルクで、ハむれンバグアンドレむ・サタリンは、C ++コヌド実行を分析するための特別なツヌルに぀いお話したした。 私たちはJavaで曞いおいるので、圌の珟圚のレポヌト「システムを起動せずにチェックする方法」は私たちには関係ないず思いたした。 それでも、私はアンドレむ自身に行っお圌に尋ねたした。 レポヌトはC ++に限定されおいなかったこずが刀明し、私は留たりたした-そしお、それを埌悔したせんでした。 したがっお、結論は、報告曞の内容に぀いお、講挔者たたはプログラム委員䌚のメンバヌで事前に指定するこずをためらわないでください。 あなたはすぐに答えられ、これは䌚議での嚯楜の効率を高めたす。



Andreyが述べた考え方は、同時に実装するのに安䟡で効果的です。分散システムの構成ファむルは、自動的に怜蚌するこずができ、たた怜蚌されるべきです。 チェックできる最も簡単なこずは、これらのファむルが䞀般に存圚し、有効なJSON / YAML / XMLであるこずです。しかし、より耇雑なチェックが可胜です。たずえば、ノヌド/ラック/デヌタセンタヌによるサヌビスの配信がシステムフォヌルトトレランスの芁件を満たしおいるこずです。 たたは、ホストずポヌトが単䞀のネットワヌクに接続されおいる堎合、そうでない堎合、たずえば、ポヌト蚭定が正しくないために、クラスタヌの接続むンスタンスが思ったより少ないこずがわかりたす。



しかし、私にずっおは、写真は䞀か所にたずめられたせんでしたAndreiは、構成ファむルが完成した圢でバヌゞョン管理システムにある堎合に぀いお話したしたが、たずえば、構成ファむルは動的に䜜成され、Ansibleを䜿甚する仮想マシンず仮想コンピュヌタヌに配眮されおいたすそれらはもう利甚できたせん。 ディスカッション゚リアに移動し、少しの「ブレむンストヌミング」が解決策に぀ながりたした。ansible-playbookの実行䞭に別のフォルダヌで構成のコピヌを実行し、その盎埌に結果の構成の確認を開始するだけで十分です。 そしお、Andreiが述べたリスクは私のプロゞェクトにずっお重芁ではありたせんが、時間が経぀に぀れおそれらが重芁になり、これらのチェックを実装できる必芁があるこずを知っおいたす。 したがっお、「歊装」の2番目のアむデアを受け取りたした。



5







次のレポヌトの著者であるテスト自動化の悪甚ず誀甚、アランペむゞは 、研究所でBorland C ++でhello worldを曞いた圓時、Microsoft Windows゚ディションに参加しおいたした。 それだけで圌に行く䟡倀がありたした。 レポヌトでは、「テストピラミッド」ずいうよく知られた抂念に蚀及したしたが、これはしばしばこのようなずんでもない「アむスクリヌムコヌン」に退化する傟向がありたす。



画像



「テストピラミッドは、できるだけ少ないUIテストを蚘述する必芁があるこずを意味したす」ずアランは蚀いたした。 UIテスト1曞くのが難しい、2膚倧な蚈算リ゜ヌスを必芁ずし、ただ遅い、3信頌性がない䞍安定 最も信頌性が高く、最も安䟡なテストは単䜓テストであり、最もテストが必芁です。 たた、バグを怜出した堎合、テストピラミッドの可胜な限り䜎いレベルでテストを䜜成する必芁がありたす理想的には、ナニットテストの堎合。



それは思われる-これは非垞に基本です しかし、私がこれほど明確な圢でこれを自分で凊方しなかったこずは奇劙です。 したがっお、テストピラミッドの本質に関する最新のアむデアは、䌚議の「歊装」ずいう別のアむデアでした 。



6



初日は、 ニコラむアリメンコフによるレポヌト「開発者の芳点からのテスタヌの分類」で締めくくられたした。テクノロゞヌよりも組織内で効率的に働く人々に倧きく䟝存したす。そのようなレポヌトは、おそらくチヌムで䜕が起こっおいるかを誰かに目を開かせ、マネヌゞャヌが非 埓業員のciency行動。



パヌティヌ



䌚議の締玄囜は䞻に、報告間の䌑憩の時間枠に制玄されるこずなく、仲間の専門家ず䌚っお話をするこずができるように開催されたす。 したがっお、そこには飲み物、食べ物、そしおあなたが話すこずができる非垞に静かで快適な堎所が必芁です。 ゞョヌカヌのような巚倧な䌚議では、隒々しい矀衆が圢成され、人気のあるスピヌカヌの呚りにフリヌマヌケットがあり、コミュニケヌションは容易ではありたせん。 この点で、私はあたり倚くの䌚議を奜たず、ハむれンバッグはこの点で良いこずが刀明したした。 りラゞミヌル・シトニコフずSQLに関連するトピックに぀いお玠晎らしい䌚話を亀わした埌、ニコラむ・アリメンコフを䞭心に結成されたグルヌプに移りたした。 人々の問題を「修正」するこずは、最も耇雑なバグよりもはるかに困難な䜜業であるこずに党員が同意したした。 たた、ニコラむず話をしお、私たちの䌚瀟でプロセスの倉革を実行し、目暙を蚭定し、配送コンベアを構築する最良の方法に぀いお䜕かを孊びたした。 䌚話は、プロセス制埡のトピックでのテストのトピックからはほど遠いものでした。これは玠晎らしいこずです。䌚議の名前に必ずしも限定されない、あなたに関係のあるトピックの専門家ず通信するために䌚議に行きたす。







2日目



1







二日目が来たした。 私は眠い最初のスロットに来お、最初の日に受け取った情報ですでに頭が腫れおいたす。 たた、䜕かをコヌディングしおプルリク゚ストを行う必芁がありたした。 したがっお、 Artem Eroshenkoによるレポヌト「シンプル、信頌、コントロヌル-Webテスト自動化の3぀の柱」のホヌルにいたしたが、私の焊点の半分はIDEにありたした。 PageElementsはクヌルで正しいです。 Retrofitは、HTTP APIをJavaむンタヌフェヌスに倉換したす。 ホステスぞの泚意圌の改良された化身のYandex htmlelementsはgithubnik Artyom eroshenkoamから取られるべきです。



申し蚳ありたせんが、Artyom、私はあなたの報告の最高の聞き手ではありたせんでした。 おそらく、このレポヌトはビデオで䜕らかの圢で修正する必芁がありたす。 䌚議のスロットの1぀を芋逃すこずは問題ありたせん。すべおをキャプチャするこずは䞍可胜です。 食べ物などの情報には消化が必芁です。



2







「開発者+テスタヌ=品質++」ずいうレポヌトの䞭で、 ニコラむアリメンコフは、組織内のプロセスを改善するための闘争に関する昚日のトピックを続けたした。 ニコラむが「テスト郚門」の存圚の匷力な敵察者であるのはこれが初めおではありたせん。そこでは、開発者はレンガの壁のように、しばらくしおテスタヌから補品を取り戻すために補品を「投げたす」。 ニコラむは、開発者ずテスタヌの共同䜜業によるアゞャむル機胜チヌムの利点、およびそのようなプロセスの䞻なプラクティスの実装䞭にテスタヌず開発者が行うこずができる「効率の䞻な芁玠」、およびその結果ずしお、品質保蚌のむデオロギヌから品質支揎のむデオロギヌぞの移行に぀いお話したした。



3







私たちはJenkinsの長幎のナヌザヌであるため、私は間違いなくOleg Nenashevによるレポヌト「Jenkins Pipelineずラむブラリを䜿甚したテストフレヌムワヌクの構築」に行きたした。 確かに、mitapsのレポヌトからわかるように、私たちはJenkinsの䜿甚レベルに遅れをずっおいたす。JenkinsはPipelineの䜿甚を提案しおいたすが、ただFreestyle Jobs / Maven Build Jobsに座っおいたす。 オレグは、平文の報告曞の結論の䞭で、すべおの仕事をパむプラむンに移す必芁性に぀いお話した。



しかし、オレグのゞェンキンスのレポヌトに瀺されおいる䟋は非垞に耇雑であり、私たちが知らないGroovyコヌド、私たちが知らないAPIぞの参照が倚く、デバッグが難しいハックの印象を䞎えたす。 しかし、䞀般からの質問の深さから刀断するず、「最倧限に」これを䜿甚する人がたくさんいたす。 単玔なケヌスでは、゚ントリのしきい倀はいくぶん怖いです。 しかし、Jenkinsからはそれほど必芁ありたせん。Mavenプロゞェクトを収集し、アヌティファクトを公開し、同時にバヌゞョン管理コヌドで完党に構成するために。 どこに行くか-これらすべおを孊ぶ必芁がありたす。githubでOlegの䟋を扱う必芁がありたす。



たた、レポヌトを残した䞀郚の人々が、「すべおが明確であるため、TeamCityに切り替える必芁がありたす」ず蚀っおいるこずも聞きたした。 CIシステム間には深刻な競争があり、ゞェンキンスはただ競争しおいたせん...



4







SeveloidレポヌトでのPavel Senin-数癟の䞊列UIテストは 、Selenoidシステムを䜿甚しお、信頌性が䜎く拡匵性の䜎いSeleniumハブを、コンテナヌでブラりザヌを起動し、テストぞのセッションを発行し、十分なリ゜ヌスがないずきにセッションのリク゚ストを䜜成する矎しい゜リュヌションに眮き換える方法を迅速か぀簡単に実蚌したした順番に、そしお最も重芁なこずは、自分が持っおいるSeleniumテストを曞き換える必芁がないこずです。



プロゞェクト䜜業の性質䞊、ブラりザヌはすべおのリ゜ヌスを食い尜くすこずができる獣であるこずをよく知っおいるので、「ケヌゞ」に入れお他のプロセスから完党に隔離するこずをお勧めしたす。Selenoidのアむデアは本圓に気に入りたした。 これは間違いなく䌚議からの別の持ち垰りです。 Selenoidサヌバヌを、瀟内のUIテストの共通リ゜ヌスずしお展開しようずしたす。



レポヌトの過皋で、Pavelは圌のチヌムの倚くに共通する組織䞊の問題を意図せずに明らかにしたした。 組織の問題の解決策は、このハむれンバッグの赀い線で私に枡されたものです。







5







私の意芋では、 「Flaky tests」ずいう短いタむトルのAndrei Solntsevのレポヌトは、䌚議で最高のものであるこずが刀明したした。 圌に行っお、「ええ、はい、なぜうたくいかないのかわからないテストなどがありたす-私は䜕を蚀うこずができたすか」そしお本圓に䜕が蚀えたすか アンドレむは、このような状況をなくすための既補の簡単なレシピを提䟛したせんでしたが、それらずの闘争の䞻な領域を抂説したした。



しかし、圌は圌自身の実践から、時には䜕ヶ月も䜕幎も続く倚くの真に探偵的な物語を語った。 たずえば、ボタンが抌されなかったため、ポップアップの進行状況バヌによっお䞀瞬閉じられた「緑のボタンの呪い」。



たたは、最高「Chromeがハングする理由」-Andreiが2幎間䞞ごず解決できなかった謎、ログ、タむムアりト、デバッグ...䞀床、圌が最もクレむゞヌな仮説をうたく行かなかったずき、嚘が電話をかけたしたキュヌブでそれを再生したす。 圌はしぶしぶ仕事から気をそらし、残念ながらモニタヌを芋おいた。 テストは玄20分間攟眮されたした。 突然、以䞋が画面に衚瀺され、解決策が珟れたした。







アンドレむは、ニコラむが話しおいたのず同じこずを締めくくりたした。開発者はテスタヌの仕事に参加し、「盞互浞透」を通じおチヌムが盞互に豊かになるようにしなければなりたせん。



プロゞェクトの1぀に察するテストの「フレヌクネス」の理由の1぀は、テストベヌスのデヌタが以前のテストの結果によっお「汚染されおいる」こずです。 ディスカッションの領域では、各テストの前に、デヌタを含むデヌタベヌスの新しいコピヌをすばやく䜜成する方が良いメカニズムをAndreyに尋ねたいず思いたした。 近くにはこの分野で経隓を積んだ人たちがいお、話し合いが行われ、数分で私たちに適した、私たちの堎合に最適な゜リュヌションを考え出したした。 そしお、近い将来に実装したす。これは確かに「歊装のための」別のアむデアです。 そしお、䌚議の゚ンゞニアリングの問題を解決するのに、たさにその分野の最高の専門家が助けおくれるのは玠晎らしいこずです:-)。



6







䌚議は、 アラン・ペむゞ「技術テストに関する真実」による報告で終わりたした。 アランは、「開発者」ず「テスタヌ」の専門性の区別が消去される倉革の䞖界でテスタヌを埅っおいるものに぀いお話したした。



たずえば、「テスト担圓者」は確かに「UIテスト自動化ツヌル」であるずいう珟圚のステレオタむプは、特にテストピラミッドの原理により、できる限り少ないUIテストを蚘述するこずを匷いられるため、砎らなければなりたせん。 代わりに、テスタヌは開発プロセスに可胜な限り統合する必芁がありたす。 アランはニコラむずアンドレむが圌の前のこの郚屋で話しおいるずいう考えを盎接続けおいるように芋えたので、たずえば、ニコラむは開発者ずテスタヌのチヌムの間で「壁を介しお補品を投げる」スラむドを持ち、アランはパントマむムを投げるこずをばかげお描写した。



アランは、圌が開発者だったずき、新しい機胜を䜜成したずきではなく、ある皮のバグを芋぀けたずきに最倧の満足を感じたず蚀いたした。 圌の報告ず䌚議の公匏終了埌、アランは䌚議の最埌の議論゚リアぞの空の廊䞋に入り、これらのトピックに぀いお少し話したした。



おわりに



閉䌚の挚拶で、アンドレむ・ドミトリ゚フは䞀般垂民に「䌚議から持ち垰る人は䜕人いたすか」ず尋ねたした。 正盎なずころ、私はこの時点で数えたせんでした。 しかし、その䞀方で、私は私が最も重芁な䞻芁な持ち垰りを奪っおいるこずを正確に知っおいた、私は圌に぀いおTwitterで曞いた










All Articles