著者 | Mush Honda
プランナー | Yun Zhao
昨年末、一夜にして人工知能が再び人気を集めました。 2 つは本物そっくりで、次に「乗馬宇宙飛行士」は忘れられません。次に、テキスト生成画像を生成する公的著作権で保護された描画 AI である Stable Diffusion、そして最後の「キング ボム」である ChatGPT が続きます。デビューし、OpenAI の多くの面目を獲得しました。春節期間中であっても、インターネット上では人工知能の波の最高潮が本当に仕事を奪ってしまうのではないかと懸念し、「危機に瀕している」と嘆く人が多かった。しかし、現実は本当にそうなるのでしょうか? AI はコンピュータ アプリケーション ソフトウェアのルネッサンスをもたらすのでしょうか?この記事では、特定の分野での応用を例として、AI の機器化の 3 つの段階を説明し、AI が完全に自律的に発展すべきではない、または発展できないいくつかの理由を説明します。さらに、著者は実際の AI キャラクターがどのようなものであるべきかを共有しました。私たちは警戒する必要がありますが、パニックに陥る必要はありません。
「人工知能により、納期は数分から数秒に短縮されます。」 「サプライヤーと顧客は安価でユーザーフレンドリーなエクスペリエンスの時代に戻り、コンピュータのアプリケーションソフトウェアがその到来をもたらします」
残念ながら、安価なストレージ スペース、高速処理速度、すぐに入手できる AI トレーニング機器、インターネットのおかげで、この約束はすでに薄れており、誇張された誇大宣伝に変わりました。
ソフトウェア テストを例に挙げて、「ソフトウェア テストにおける人工知能の応用」を検索すると、システムは潜在的な購入者に約束された一連の「魔法の」ソリューションを返します。多くのソリューションは、手作業を削減し、品質を向上させ、コストを削減する方法を提供します。少し奇妙なのは、一部のメーカーが自社の AI ソリューションがソフトウェア テストの問題を完全に解決できると約束していることです。その文言はさらに衝撃的です。ソフトウェア テストの「聖杯」です。この考え方は、このように言えます。人々を困難や心配から解放します。これにより、ソフトウェア開発サイクルから解放され、テストサイクルが短縮され、より効果的かつシンプルになります。
AIは本当に全能の「聖杯」になれるのか?さらに、AIが人間に完全に取って代わるべきでしょうか?こうしたほとんど不条理な誇大宣伝をやめるべき時が来ました。
現実の世界では、ソフトウェア開発プロセスから人間を排除することは、はるかに複雑で困難です。ウォーターフォール、迅速なアプリケーション開発、DevOps、アジャイル、その他の方法論を使用するかどうかに関係なく、ソフトウェア開発の中心にいるのは人です。それは、作成するソフトウェアの境界と可能性を定義するのは人だからです。ソフトウェアテストでは、ビジネス要件が不明確であることが多く、常に変化するため、「目標」も常に変化します。ユーザーは使いやすさの変化を要求しており、ソフトウェアの変化によって何が可能になるかについての開発者の期待さえも要求します。
ソフトウェア テスト (品質保証という用語を含む) の元の標準と方法は、製造製品テストの分野から生まれました。この場合、製品は明確に定義されており、テストはより機械的ですが、ソフトウェアの特性は順応性があり、頻繁に変化します。ソフトウェア テストは、品質保証に対するこの均一なマシン アプローチには適していません。
現代のソフトウェア開発では、開発者が予測できないことや知ることができないことがたくさんあります。たとえば、ユーザー エクスペリエンス (UX) の期待は、ソフトウェアの最初の反復後に変化する可能性があります。具体的な例としては、次のようなものが挙げられます: 人々は、画面の読み込み時間の短縮やスクロールの高速化に対する期待を高めていますが、ユーザーはもはや人気がなくなったため、画面の下に長時間スクロールすることを望んでいません。
さまざまな理由により、人工知能は、その作成者ですら予測できないことを独自に予測したりテストしたりすることはできません。したがって、ソフトウェアテストの分野では、真に自律的な人工知能を実現することは不可能です。ソフトウェアテストの「ターミネーター」の作成は、マーケティング担当者や潜在的な購入者の興味をそそるかもしれませんが、そのような展開は幻になることは間違いありません。むしろ、AI と人間が協働するという状況においては、ソフトウェア テストの自律性がより意味をなします。
ソフトウェア テスト AI 開発は基本的に 3 つの成熟段階に分かれています段階:
現在、人工知能に基づくソフトウェアテストの大部分は運用段階にあります。最も基本的な動作テストには、テスターが何百回も実行するルーチンを模倣するスクリプトの作成が含まれます。この例の「AI」は決してスマートではなく、スクリプトの作成、繰り返しの実行、結果の保存を短縮するのに役立ちます。
プロシージャル AI はオペレーショナル AI のより成熟したバージョンであり、テスト担当者がテスト生成に使用します。その他の用途としては、テスト カバレッジの分析と推奨、欠陥の根本原因の分析と労力の見積もり、テスト環境の最適化などが挙げられます。 Process AI は、パターンと使用法に基づいて合成データの作成を容易にすることもできます。
手続き型 AI の利点は明白で、テスト実行戦略を設定する際にテスターが負うリスクの一部を相殺して回避するための追加の「目」を提供します。実際のアプリケーションでは、手続き型 AI により、変更されたコードのテストが容易になります。
このレベルの AI では、開発時間とコストにおいて明らかな利点が見られます。
しかし、焦点が第 3 段階である体系的な AI に切り替わると、将来は滑りやすい坂道となり、報われない約束になる可能性があるため、全体像は曖昧になります。
体系的な (または完全に自律的な) AI テストが不可能である理由 (少なくとも現時点では不可能)、理由の 1 つは、AI が次のことを行う必要があることです。広範なトレーニング。テスターは、プロセス AI がソフトウェアの品質を適切に保証する単体テストを提案してくれると確信できます。ただし、システム AI の場合、テスト担当者はソフトウェアがすべての要件を満たしているかどうかを高い自信を持って知ることはできません。
このレベルの人工知能が本当に自律型である場合、人間が想像できないものも含め、考えられるすべての要件をテストする必要があります。次に、自律型 AI の前提と結論を検討する必要があります。これらの仮定が正しいことを確認するには、信頼性の高い証拠を提供するために多大な時間と労力が必要です。
自律的なソフトウェア テストを完全に実現することはできません。なぜなら、人々はそれを信頼しないでしょうし、これは完全な自律性を達成するという目標と前提を失うことに等しいからです。
#完全自律型人工知能は神話ですが、サポートと拡張が可能ですソフトウェアの品質に関して人間の努力に匹敵するインテリジェンスを実現することは、価値のある目標です。この場合、人間が AI をサポートできます。テスターは、AI と AI が依存する絶えず進化するトレーニング セットを監督、修正、指導するのに辛抱強く取り組む必要があります。課題は、テスト ソフトウェアのさまざまなバグにリスクを割り当てながら、AI をどのようにトレーニングするかです。このトレーニングは継続的に行う必要があり、テスト領域に限定されません。自動運転車メーカーは、道路を横断する人と自転車に乗っている人を区別できるように人工知能を訓練しています。
テスターは、AI の機能に対する信頼を築くために、過去のデータに基づいて AI ソフトウェアをトレーニングおよびテストする必要があります。同時に、真の自律型 AI は、テストで将来の状況 (開発者のガイダンスとユーザーのガイダンス) を予測する必要がありますが、これは過去のデータに基づいて行うことはできません。代わりに、トレーナーは独自の偏見に基づいたデータセットに基づいて AI をトレーニングする傾向があります。こうした偏見は、目の見えない人が確実性のために馬が定められた道から外れないようにするのと同じように、人工知能の探索の可能性を制限します。 AIが偏っていれば見えるほど、その信頼性は低くなります。 AI が受けられる最良のトレーニングは、リスクの確率を処理し、最終的に人間によって評価されるリスク軽減戦略を導き出すことです。
#結局のところ、ソフトウェア テストはテスターの達成感と自信にかかっているのです。彼らは、開発者やユーザーに問題を引き起こす可能性のあるコード変更だけでなく、初期実装によって起こり得る結果を測定および評価します。しかし、ソフトウェア テストでアプリケーション クラッシュのあらゆる可能性が完全に調査されたとしても、信頼性が 100% であることは不可能であることは否定できません。手動で実行されるか自動で実行されるかにかかわらず、すべてのソフトウェア テストにはリスクの要素が存在します。
テスターは、コードが問題を引き起こす可能性に基づいてテスト範囲を決定する必要があります。また、リスク分析を使用して、カバー範囲外のどの分野に重点を置くべきかを決定する必要があります。 AI がユーザー アクティビティの連鎖の任意の時点でソフトウェア障害の相対確率を決定して表示したとしても、テスターは依然として手動で計算を確認する必要があります。
人工知能は、歴史的なバイアスの影響を受けるソフトウェアの継続性の可能性を提供します。しかし、AI のリスク評価とリスク軽減レシピに対する信頼性はまだ高くありません。
AI 対応のソフトウェア テスト ツールは、テスターの手作業を軽減しながら現実的な結果を生み出すのに役立つ実用的かつ効果的である必要があります。
ソフトウェア テストにおける AI の最もエキサイティングな (そして潜在的に破壊的な) 導入は、AI 開発の成熟度の 2 番目のレベルである手続き型 AI です。 Katalon のある研究者は次のように述べています、「ソフトウェア テストに適用される AI の最大の実用的な用途は、自律テスト作成の最初の段階であるプロセス レベルです。このとき、私は自分で作成できる自動テストを作成できるようになります。」
自律的かつ自律的な人工知能、ソフトウェア テスト プロセスへの人間の参加をすべて置き換えるなどは、すべて誇大宣伝です。 AI が人間の作業を強化および補完し、テスト時間を短縮すると期待する方が現実的であり、望ましいです。
参考リンク: https://dzone.com/articles/ai-in-software-testing-the-hype-the-facts-the-pote
以上がこんなに盛り上がるAIはとても楽しみです!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。