InfoQ ホームページ ソフトウェアテスト に関するすべてのコンテンツ
-
新しいフレームワークSwift TestingをAppleが発表、プラットフォーム間のSwiftテストを近代化
XCTestがXcodeでテストを作成するための好ましい方法のままである一方で、新しいSwift Testingフレームワークは、Swiftがサポートされている全てのプラットフォームに適用される、テストの定義のための表現力豊かで直感的なAPIを導入しようとしている。フレームワークはまた、パラメトリック化、並列化、分類、テストとバグの関連付けを可能にする。
-
Netflixは、フロントエンドテストへのカスタムアプローチであるSafeTestを発表
Moshe Kolodny氏が最近SafeTestを発表した。SafeTestは、フロントエンドのウェブテストに対する斬新なアプローチであると説明されている。SafeTestは、テストランナー、ブラウザ自動化ライブラリ、UIフレームワーク、依存性注入機能を統合し、従来のUIテスト手法の問題点を緩和する。SafeTestは現在、Netflixで使用されている。
-
ソフトウェアチームにおけるテストの影響
テスターがソフトウェアチームに貢献する方法として、品質ギャップを伝えること、良いテストのために場を整えること、自動化コードを書くことが挙げられる。Maaret Pyhäjärvi氏によれば、私たちはテスターではなく、テスト自体について考える必要があるという。チームメンバー間のコラボレーションやコミュニケーションは、製品やユーザー体験に有益な影響をもたらす。
-
ChatGPTを使用してソフトウェア・テストのプラクティスを向上させ、ソフトウェア・デリバリーを支援する
人工知能はソフトウェア・デリバリーを支援し、ソフトウェア・テストの自動化とプロジェクト作業の最適化に利用できる。Dimitar Panayotov氏は、ChatGPTを使ってテストデータを生成し、電子メールテンプレートを作成し、テスト結果に基づいて説明を作成する。これにより、彼は時間を節約し、より生産的になるために投資できる。
-
多くの入力パターンをテストできるProperty-based Testing
Property-based Testingは、特定の例に頼るのではなく、常に真となるはずのステートメントを指定するアプローチである。これにより、より少ないテスト回数で、多くの入力に対して機能をテストできる。
-
セマンティックHTMLによるウェブアクセシビリティの向上とテスト技法・ツールについて
ウェブアクセシビリティは、私たち全員に利益をもたらす。デザイナー、開発者、テスト担当者はウェブアクセシビリティをチェックでき、例えば、セマンティックHTMLの使用、コーディング時のウェブ標準への準拠、ウェブアクセシビリティのテストなどにより、ウェブやサービスをより包括的なものにすることができる。各国では包括的基準を実施するための規制を導入している。
-
ソフトウェア品質の評価方法
QPAM(Quality Practices Assessment Model)を用いて、チームの発揮する行動を「開始」「統合」「実践」「革新」といったを4つの次元に分類できる。QPAMはフィードバックループ、文化、コード品質と技術的負債、デプロイメントパイプラインといった社会的・技術的な品質側面を調査するのだ。
-
システムの品質を向上させるためにデータをどう活用するか
システムがどのように利用されているのかを知るためには、メトリクスを収集することで時系列に傾向を把握できる。得られたデータとインサイトは、ソフトウェア設計やテストパターンを改善することでシステムの品質向上に寄与するのである。Craig Risi氏は、Agile Testing Days2022で、システム品質向上のためのデータ活用について講演した。
-
OpenSSFがFuzz Introspectorをリリースして、C/C++ファズテストのカバレッジを改善
Open Source Security Foundation(OpenSSF)は、ファジングのカバレッジを改善するツールをリリースした。このツールは、開発者がアクションに移すことができる分析結果を提供し、カバレッジブロッカー(カバレッジを阻害するもの)の特定を支援する。
-
ディフェクト・マスの測定が重要な製品領域のテストにどのように役立つか
「ディフェクト・マス」と呼ばれる測定を導入することで、プロジェクトは開発によって最も影響を受けた領域を見つけることができ、影響を受けた領域ごとに実行するテストの数を決定するのに役に立った。この測定値を他のKPIと一緒に使用することで、テストに集中する役に立った。顧客のインシデントの数を減らすことができた。
-
GoのジェネリックがGo 1.18 Beta 1でデビュー
Goの最新のベータリリースGo 1.18 beta 1は、パラメータ化された型を使ったジェネリックプログラミングのサポートをついに導入した。長い間待ち望まれた待望の機能だ。さらに、テストファジングのサポートも追加されている。これは、入力を見つけてプログラムの不正な動作を明らかにするために使われる手法である。
-
ClusterFuzzLiteによりGitHubアクションや他のCI/CDパイプラインでClusterFuzzを実行可能に
ClusterFuzzLiteは、その名前が示すように、Google ClusterFuzzの軽量バージョンだ。fuzzテストを通じてソフトウェアシステムのセキュリティと安定性の問題を見つけることを目的としたツールである。ClusterFuzzLiteは、数行のコードでCIパイプラインに統合されることを目的としているとGoogleは言っている。
-
継続的セキュリティテストを有効にしてテストにセキュリティを追加する
チームは、テストプロセスにセキュリティテストを追加し、機能テストの自動化の一部としてセキュリティチェックを追加して領域の特定ができるようになるためにセキュリティの専門家によってトレーニングをうけることが可能だ。これにより、継続的なセキュリティテストが可能になり、すべてのリリースでセキュリティテストの対象範囲が広がり、セキュリティの���陥を早期に発見できる。
-
テストピラミッドを使って品質を左シフトする
品質の左シフト(前倒し)とは、開発終了後に品質テストを行うのではなく、ソフトウェア開発サイクルの早期に品質を作り込む、という意味である。テストピラミッドモデルを使うことで、テストをより早いステージに移動させることが可能になり、統合時に問題となる欠陥を開発早期に発見することが可能になる。
-
マイクロサービスでのエンドツーエンドテストの課題
マイクロサービスは、エンドツーエンドの責務を持って自動化されたCI/CDパイプラインを運用する、独立したチームに適している。一方で、エンドツーエンドのテストによるソフトウェアの品質保証は、ソフトウェアコンポーネントの迅速な統合とリリースに相反する場合もある。エンドツーエンドのテストがフェールすると、その原因となった問題が解決されるまで、関連するすべてのマイクロサービスのCI/CDパイプラインがブロックされることになるからだ。