最近の過去:テスト自動化の問題に関するスケッチ



familyexpert.ruからの画像



グローバルな情報化、ITセクターの急速な発展、特にソフトウェア開発技術に関する絶え間ない議論を背景に、この開発の調和についての考えがあります。 ソフトウェア開発が、DevOps、ツールの自動化に向かって飛躍的に動き、それほど積極的ではないがアジャイルに向かって動き続けている場合、自動テストはどこに行くのでしょうか?



プログレッシブCIS企業でのテスト自動化のまさにその事実を確認することができましたが、この確認は実際には正式であることが判明しました。 sayingにもあるように、「はい」と「いいえ」の両方です。 少なくとも数年前です。



これまでのところ、すべての企業が自動テストが必要な理由をまったく理解していないという意見があります。 そして、この状況がソフトウェア開発の一般的な進歩を背景として変わらないと仮定すると、自動化されたテストの方向の調和のとれた開発に疑問が生じます。 おそらく、この遅れは、ソフトウェアが積極的に開発されているすべての国で発生するわけではありません。



もちろん、この種のテストが適用される領域に大きく依存します。 私の意見では、Web開発の場合、状況はより単純です。数年前、今日まで生き、今日まで生きているSeleniumがすべての人を征服しました。 デスクトップ開発の分野での自動テストARM、ABSとデータベースも比較的快適でした。単純なNUnitツールを思い出します。このツールの明らかな用途は、開発者による変更後に同じデータベースクエリを自動的に実行することでした。 確かに、他の誰かは、ハッピーエンドで、または少なくともハッピースタートで自動テストを実装した成功例を覚えているでしょう。





qatestlab.comからの画像



それにもかかわらず、自動化されたテストを導入するための膨大な数の試みは次の結果に帰着しました:「まあ、私たちはいじって見て、私たちはこのように何かをテストしましたが、それから私たちは手でダブルチェックしました-それは十分ではありません...」 残念ながら、私は自分の経験からこの結果に対処しなければなりませんでした。 多くのIT企業では、自動化されたテストは実験モードのままであり、場合によっては単なる「それ自体」です。テスターは何かを書いて、何かを開始し、そこから結論を導き出します。手動テスト。

また、ソフトウェアは専門企業だけでなく、IT部門を持つ非中核企業によっても開発されていることを覚えている場合、そのような企業は異なる優先順位を持っているため、状況はさらに悲観的になります。



もちろん、私たちはチームの真の価値について話しているのであって、「名目上の」ものについてではなく、それは希望的観測や状況の影響を受けて見過ごそうとする試みでしばしば起こります。 テスト自動化がトレンドにあるという理由だけで導入された場合、効果は適切になります。当局は本当に必要なふりをし、テストチームは「高度な」技術を導入するふりをして、なぜそれが必要なのかを理解し、残りのスタッフ彼らがより良い変化に気づいたふりをする。



さらに悪いことに、会社がこの問題について合意していない場合、誰かが本当に進歩を信じており、新しい技術の導入に苦労している一方で、誰かが単に必死の活動を真似ています。 そのような場合、従業員間の「戦い」は避けられません。これもまた、「サンドボックス」に残る相互作用の中断とイノベーションの分離につながる可能性があります。 それから、変化のイニシエーターは槍を壊して落ち着き、より良い時を待ちます。





サイトmishka.byからの画像



もちろん、そのような話はテストだけでなく、多くの場合、開発者にとって「ブレーキ」として認識されていました。 これは、管理者が開発者よりも低い資格を持つテスターを雇用した状況に一部起因します。 その理由は、経営者が給与を節約したいという願望だけでなく、客観的な事実でもありました。CIS大学は、ほとんどの場合、テスターなどの専門家を市場に送りませんでした。 また、テストの自動化には、プログラミングとテストでかなり高い資格が必要であり、状況がさらに複雑になります。



したがって、IT業界(少なくともCIS内)では、自明でないタスクを解決できる資格のある開発者よりも、テストを自動化できる資格のあるテスターの数がさらに少ないという考えがあります。 多くの低スキルのプログラマーが「自分自身」を見つけることができなかったため(または単に怠だったため)高いレベルに達しなかった場合、CISのテスターは客観的に高度な資格を得る機会が少なくなりました。 これは大学だけでなく、インターンシップ、企業研修、高度な研修、テスターのロシア語圏の高度なコミュニティに関するものでもあり、これらはすべて数年前には不十分にしか開発されていませんでした。 おそらく今は状況が良くなったのでしょう。



とにかく、別の領域としてのテストがプログラミングよりも遅れて開発され始めたという事実を割り引く必要があります。 TDD(テスト駆動開発)、BDD(動作駆動開発)などの方法論の出現を、このギャップを「再生」する別の試みと考えると、長い間、それらは美しいアイデアの形で最も成功して存在していました。





blog.andolaso​​ft.comからの画像



理想の世界から現実の世界への移行中に、これらの概念は変化を遂げ、その後それらから時々名前だけが残った。 もちろん、各チームは個人であり、調整が必要ですが、問題は概念の適応とその劣化の間の境界をどこに引くかです。



それで、私たちは別の遅れに来ます-理論からの練習の遅れです。 一見適切な方法論が重大な損失なしに特定のチームで正常に実装されるという保証はありません。 これらの損失は、最初のコンセプトの導入後、ほとんど残っていないという事実だけでなく、会社の製品の開発が大幅に遅くなるという事実でも明らかになります。 多数の目撃証言により、同じTDDを実装するために、チームの開発の考えを文字通り反転させる必要があると結論付けることができます。 それには多くの神​​経と時間がかかります。



商業的な成功を目指しているがまだ達成していないIT企業は、「靴を履く」ためにピットストップで減速したり停止したりする余裕はありません。 製造プロセスの変更は、ビジネスを危険にさらします。 これにより、私たちはアイデア、進歩、理論、実践についての考えの分野から、会社の経済的利益の分野に移行します。 ここで最も重要なことは、「レジから離れることなく、ノイズやほこりのない」迅速な作業です。 この観点から、企業にとっては、明らかなエラーが発生せず、最小限の時間で修正するために、最短時間で製品をリリースすることが重要です。 そして、テスターがすべてのエラーを見つけるだけでなく、自動テストを作成するときに自分でエラーを検出する場合、これはばかげており、単に非生産的です。





pp.vk.meからの画像



さまざまなタイプのテストを自動化するための新しいツールがまだ登場しています。 この意味で、方向性は非常に積極的に発展しています。 ただし、多くのIT企業は、実際に必要なツールと冗長なツールを判断する方法をまだ学習していません。 彼らは、イノベーションの実施に必要なリスクと時間を評価する方法を学びませんでした。 これらのツールの必要性とそれらの実装の難しさの間の矛盾は解決されませんでした。 これは数年前に特に深刻でした。



この状況を考えると、多くの企業はテストの自動化について非常に懐疑的でした。 数人のテスターを雇い、追加の開発イテレーションをいくつか実行する方が簡単で安価です。 部分的には、改革者と保守派の間の対立の問題がありますが、私の意見では、大部分はこれはまだビジネスの存続の問題です。



研究や実験プロジェクトに資金やその他のリソースを充てる余裕がある企業では、状況は異なります。 したがって、新しいテクノロジーを導入することで、彼らは自分たちの経験をコミュニティに伝えます。 成功した戦略を採用して、他の企業はこれらの先駆者の後に「進歩」することができます。





サイトからの画像 13min.ru



「先駆者」のもう1つのカテゴリは、失うもののないスタートアップです。 彼らは強力なチームを編成し、「誰も私たちの前にやったことがない」ことを試みます。 しかし、彼らのプロジェクトは常に特定のテスト技術に特別な注意を払うほど複雑で大規模なものではありません。 したがって、開発の決定的な役割と推進力は、効果的なプログラミング方法によって得られます。



特別な問題は、従業員による「開発者プログラマー」および「テスター」の職業の一般的な認識です。 プログラマは、「何もない」から複雑な構造を作成する創造的な個人と見なされます。 彼らは自分のコードが機能すると信じている楽観主義者です。 そして、テスターはこれらの幻想を破壊する人です。 ある意味では、テスターの専門的義務は、製品のリリースを妨げ、それが十分ではなく、欠陥を含むことを証明しようとすることです。 プログラマが「修正されたすべてのバグが最後から2番目である」という原則に沿って作業した場合、彼らのモチベーションはほとんど高くありません。



テスターも会社に利益をもたらし、フィードバックを与え、従業員が何らかの「堆積物」を感じることを理解しています。 その結果、多くの人が無意識のうちに後退しようとし、もう一度テスト部門を助けたり、その開発に貢献したりしたくありません。 与えられた日付までに「不可能」を実行できると信じる人々を進歩させ、支援することは、はるかに「楽しい」ことです。



彼らが言うように、すべての職業が必要であり、すべての職業は重要ですが、人的要因はまだ平準化できていません。 時々、人々は純粋に心理的な影響から抽象化できない。



****



過去は現在よりもはるかに良いと思われることがよくあります。 「今日…」と彼らは言う。 ただし、テスト自動化の開発の場合、同じスキームで推論することはほとんどできません。





gearmix.ruからの画像



5年前、ロシア語を話すITコミュニティでは、説明した問題はまだ解決されていませんでした。 状況は変わったのではないでしょうか?



All Articles