皆さん、こんにちは。
今週もソフトウェアテスト、テスト自動化に関するニュース記事をご紹介していきたいと思います。
今回は国内、海外ニュース3記事をご紹介回したいと思います。
■記事内リンク
「国内ニュース」
・テストでバグ発見!(9)状態遷移図への機能追加の勘所は「混ぜるな、危険!」
「海外ニュース」
・TechBeaconの2021年のトップ12アプリ開発およびテスト記事
・トップiOSテスト自動化フレームワーク
■国内ニュース
□テストでバグ発見!(9)状態遷移図への機能追加の勘所は「混ぜるな、危険!」
https://monoist.itmedia.co.jp/mn/articles/2203/17/news036.html
こちらの内容は、山浦恒央氏が「monoist」とうサイトにて特集されている記事となります。
今回は状態遷移を題材としたテーマですが、2011年から月1回のペースで更新されており、
バグ検出、見積もり、統計など様々なものが取り上げられています。
https://monoist.itmedia.co.jp/mn/series/241/
今回は状態遷移モデルで、扇風機シュミレーターを例にした要求、機能仕様をもとに状態遷移図が示されています。
それをもとに、追加機能が提示され、状態遷移図表に追加する内容が問題、回答という形で掲載されています。
◇要求、機能仕様について
扇風機シュミレーターの要求、機能要求は以下となります。
・運転モード:ON/OFF
・運転モード変更:弱、中、強
◇追加機能
扇風機シュミレーターに「首振り」モードを追加となっています。
これにより、扇風機シュミレーターは、以下の機能となります。
・運転:ON/OFFボタン機能
・運転モード変更:弱、中、強ボタン機能
・首振りモード:ON/OFFボタン機能
◇一般的な記述例
「アイドルモード」、「運転モード(弱)、(中)、(強)」「減速モード」の5つのモードが考えられます。
一般的として、以下のように考えられるとの見解がされています。
(monoistより)
◇山浦氏の記述例
山浦氏は、上記追加機能の状態遷移を整理される場合、首振りモードは、
アイドル・運転・減速モードとは別に考えられることで、追加機能を考慮されるとあります。
(monoistより)
また状態遷移図は、一種のすごろくであり、プログラムの制御部分で、
すごろくのコマの位置や外部から入力されるイベントを制御すると述べられています。
状態遷移への追加機能がある場合は、既存の部分と「混ぜない」のがよいとまとめられていました。
状態遷移図の考え方の1つとして、参考になりそうですね。
山浦氏の記事の詳細は以下となりますので、ご興味のある方は、アクセスされてみてはいかがでしょうか。
https://monoist.itmedia.co.jp/mn/articles/2203/17/news036.html
■海外ニュース
□TechBeaconの2021年のトップ12アプリ開発およびテスト記事
https://techbeacon.com/app-dev-testing/techbeacons-top-12-app-dev-testing-articles-2021
こちらは、「techbeacon.com」にて2021年に取り上げられた、アプリケーションと開発に関する記事が12選出されています。
どれも有益な情報と思いますので、ご紹介したいと思います。
◇1.2021年の最高のDevOps会議
https://techbeacon.com/app-dev-testing/best-devops-conferences-2021
会議や見本市は、IT実務家が特定の分野の最新トレンドを常に把握するために、長い間重要な場でした。
COVID-19のパンデミックにより、これらのイベントの多くがキャンセルされるか、仮想イベントに移行しました。
それでも、昨年はDevOpsプロフェッショナル向けの有益な対面およびオンライン会議がたくさんありました。
フリーランスのライターエディターであるLindaRosencranceは、2021年の最高のDevOpsカンファレンスの10を強調しています。
◇2.自動化エンジニアのキャリアラダーを登る:6つの役割、要件
https://techbeacon.com/app-dev-testing/climb-automation-engineer-career-ladder-6-roles-requirements
テスト自動化エンジニアは、DevOps環境で重要な役割を果たします。
ただし、フィールド内での潜在的なキャリアの軌跡については、かなりあいまいな場合があります。
一部の人々は、その中で成長する方法がほとんど明確ではないフラットな役割としての役割を認識しています。
ここでは、 Applitoolsの開発者関係のシニアディレクターであるAngie Jones氏が、自動化エンジニアが利用できるさまざまなレベルと各役割の要件を理解するためのガイドを提供しています。
・レベル1:ジュニア自動化エンジニア
・レベル2:ミッドレベルの自動化エンジニア
・レベル3:シニア自動化エンジニア
・レベル4:自動化アーキテクト
・レベル5:自動化チームリーダー
・レベル6:コンサルティング自動化エンジニア
◇3.GoogleLighthouse とCypressを使用してWebパフォーマンステストを行う方法
https://techbeacon.com/app-dev-testing/how-do-web-performance-testing-google-lighthouse-cypress
Webパフォーマンステストは、ユーザーが組織のWebサイトで最適なエクスペリエンスを提供できるようにするために重要です。
ユーザーは、グリッチや遅いサイトにはほとんど我慢できず、ライバルのサイトがより良いエクスペリエンスを提供していると感じた場合、すぐにそのサイトにアクセスすることがよくあります。
NewsUKの主任テスト自動化エンジニアであるMarieDrakeが、最適なWebサイトのパフォーマンスを確保するために、組織がバックエンドテストとフロントエンドテストを組み合わせる必要がある理由と方法について説明します。
◇4.Twitter でフォローする27人のJavaScriptエキスパート
https://techbeacon.com/app-dev-testing/27-javascript-experts-follow-twitter
JavaScriptアプリケーションの開発者は、情報を得たり、この分野の最新の開発に遅れないようにするために利用できるさまざまなリソースを持っています。
例としては、本、技術記事、ポッドキャスト、YouTubeビデオなどがあります。
フリーランスのライターであるMitchell”Moe”Longは、もう1つの重要なリソースはTwitterだと言います。
専門家の開発者はプラットフォームを使用して洞察、ヒント、コツを共有し、議論を活発化することが多いからです。ここで彼は、Twitterでフォローする27人のJavaScriptエキスパートの厳選されたリストを提供しています。
◇5.Twitter でフォローする必要がある30人のテスト自動化リーダー
https://techbeacon.com/app-dev-testing/30-test-automation-leaders-you-should-follow-twitter
Twitterで適切な人をフォローすることは、ほぼすべての分野の現在のトレンドと最先端の技術について最新情報を入手するための優れた方法です。
ソフトウェアテストの自動化も例外ではありません。
この分野は、適切な開発者ツールの使用、最新のテクノロジーとテクニック、テスト自動化におけるAIと機械学習の使用など、さまざまなトピックに関する専門家で溢れています。
重要なのは、Twitterやその他の場所で誰をフォローするかを知ることです。
Twitterでフォローする30人の自動化リーダーのフリーランスライターMitchell”Moe”Longのリストは、この分野の幅広い分野の専門家をカバーしています。
◇6. ローコード/ノーコードで開発者に力を与える5つの方法
https://techbeacon.com/app-dev-testing/5-ways-empower-your-developers-low-codeno-code
ローコード/ノーコードプラットフォームは、開発者が最小限のコード作成またはコード作成を必要とせずに、基本的にWebおよびモバイルアプリケーションをアセンブルできるようにすることで、アプリケーション開発を変革しています。
これらのプラットフォームは、エンタープライズ開発者や、開発スキルがほとんどまたはまったくない開発者でも、さまざまなアプリケーションコンポーネントを開発環境にドラッグアンドドロップし、それらを接続してアプリケーションを作成する方法を提供します。
Gartner氏は、ローコードが2024年までにアプリケーションのほぼ3分の2(65%)を占めると予測しています。
DevOpsInstituteのCEOであるJayne Groll氏は、ローコード/ノーコードプラットフォームで開発者に力を与えるための5つのヒントを提供します。
◇7. DevOpsチームがDORAメトリクスをどのように使用(および悪用)しているか
https://techbeacon.com/app-dev-testing/how-devops-teams-are-using-abusing-dora-metrics
DevOpsチームは、DORA(DevOps Research and Assessment)メトリックを定期的に使用して、目標および確立されたベストプラクティスに対してどの程度パフォーマンスを上げているかを評価します。
メトリックは、アプリケーション開発に関する4つの主要な結果を測定します。
展開頻度、変更のリードタイム、変更の失敗率、および修復/回復までの平均時間です。
メトリックは、組織内でDevOpsの取り組みがどのように進んでいるかを示す有用な指標ですが、両刃の剣になる可能性があると、DefenseUnicornsの著名なエンジニア兼バリューストリームアーキテクトであるBryanFinster氏は述べています。
ここで彼は、それが事実である理由と、DevOpsチームがそれに対して何ができるかを説明します。
◇8. アジャイルのスケーリング:どのフレームワークをいつ使用するか
https://techbeacon.com/app-dev-testing/scaling-agile-what-framework-use-when
アジャイルプロジェクトをスケーリングするための適切な方法を選択することは、「スケーリングの問題」や「スケーリングしない」プロジェクトについて話すときに人々が意味することは異なるため、やや難しい場合があります。
エクセロン開発。
多くの場合、彼らが意味するのは、製品を効率的に提供するために大規模なグループを調整する方法を見つけるか、より実践的な方法でそれらのグループを指揮できるようにすることです。
この記事では、Heusser氏が、スクラム、Disciplined Agile Delivery(DaD)、Scaled Agile Framework(SAFe)などの方法から情報に基づいた選択を行うためのヒントを提供します。
◇9. 2021年の最高のアジャイルおよびリーン開発会議
https://techbeacon.com/app-dev-testing/best-agile-lean-development-conferences-2021
世界的なコロナウイルスの流行により、昨年は2020年と同様に、世界中のIT会議への参加が減少しました。
それでも、開発者が無駄のないアジャイル開発の実践において最高の実践者から学ぶ機会があった、対面およびオンラインのイベントがいくつかありました。
フリーランスのライター/編集者であるLindaRosencrance氏による、2021年の最高のアジャイルおよびリーン開発会議のまとめには、OOP 2021、DeveloperWeek、Agile Manchester Virtual、DevOps Enterprise Summit、およびACE2021が含まれていました。
◇10. ソフトウェアテストの未来:機械学習が救いの手を差し伸べる
https://techbeacon.com/app-dev-testing/future-software-testing-machine-learning-rescue
エンドツーエンドのソフトウェア配信パイプラインとコンテナは、近年、前向きな組織がソフトウェア配信時間を大幅に改善するのに役立っています。
それでも、他の多くの人は速度と品質の適切なバランスを見つけるのに苦労し続けており、多くの場合、これらの環境で新しいソフトウェアのテスターになるのはエンドユーザーです。
Launchableの創設者兼共同CEOであるHarpreetSingh氏とLaunchableの共同CEOである川口耕介氏は、これらの組織にとって、2021年の主な焦点は、適切な品質レベルで適切な価値を迅速に提供することであったと述べています。
ここでは、2人のDevOpsエキスパートが、テストの自動化、データ駆動型の操作、機械学習と予測テストの選択の使用など、注目すべき5つのトレンドに焦点を当てています。
◇11. テスターがテスト自動化を学ぶのが(まだ)とても難しい理由
https://techbeacon.com/app-dev-testing/why-its-still-so-difficult-testers-learn-test-automation
多くのソフトウェアテスターは、テスト自動化の実践にすばやく慣れ、比較的短期間で初心者からベテランに成長することができます。
ただし、テストの自動化に苦労している人もいます。
これの根本的な原因には、「不十分なソフトウェア開発スキル、1つのツールまたは言語での経験、適切な学習教材の不足などがあります」とテスト自動化のスピーカー兼ライターであるBasDijkstra氏は言います。
ここで彼は、これらの課題を乗り越え、テスト自動化スペシャリストにスムーズに移行する方法についてアドバイスを提供します。
◇12. コンピュータサイエンスの学位:関連性はありますが、必須ではありません
https://techbeacon.com/app-dev-testing/why-its-still-so-difficult-testers-learn-test-automation
大学の学位は、多くの分野で有能な雇用に不可欠であると考えられていますが、ITではそれほど重要ではありません。
米国労働統計局によると、国内のIT労働者の約25%は学士号を持っていません。
また、ソフトウェアエンジニアリング、DevOps、テスト自動化などの分野で役割を果たそうとしている多くの組織は、特定の役割に必要な学位の種類を指定していません。
それで、コンピュータサイエンスの学位はまだ関連していますか?
フリーランスのジャーナリスト、クリストファーヌル氏は、数人の採用マネージャーやチームリーダーと話をして調べました。
□トップiOSテスト自動化フレームワーク
https://applemagazine.com/top-ios-test-automation-frameworks/51468
こちらは「applemagazine.com」に掲載されていた内容となります。
iOSにターゲットをフォーカスしたテスト自動化のフレームワークについて、掲載されていましたので、ご紹介したいと思います。
◇初めに
アプリケーションやデバイスが非常に多いため、手動テストは不可能です。
幸いなことに、市場には効率的で機能豊富なiOSテストフレームワークがあり、プロセスをより速く、より簡単にし、時には人的資源を必要としないことさえあります。
iOSアプリの手動テストは、各デバイスで個別にテストする必要があるため、時間がかかります。
iOSアプリを開発する人は、この状況を誰よりもよく理解しています。
これらの問題は、iOSテスト用のフレームワークによって解決されます。これらは、プロセスを簡単にするように設計されています。
テストフレームワークは、それを効果的に行うのに役立つツールです。
これらのツールは、Apple APIへの簡単なアクセス、テスト目標の分析、他のテスターとのコラボレーション、スクリーンショット、プロジェクトファイルの編成、詳細なレポートなどの追加機能を提供します。
これはすべて、手動テストでは多くの時間がかかります。次のセクションでは、iOSテスト用のさまざまなフレームワークの機能と利点について学習します。
◇Appium
https://appium.io/
テストコミュニティでは、Appiumはよく知られているオープンソースのテスト自動化フレームワークです。
Appiumの人気は、iOSとAndroidの両方のプログラムをテストできる柔軟性と機能によるものです。
公式ウェブサイトにあるように、Appiumは、ネイティブアプリのテストでSDKをインストールする必要がないという考えに基づいて構築されています。
AppiumでのiOSテストは、JSONWireプロトコルとSeleniumWebDriverを使用して行われます。
●Appiumの長所:
WebDriverが使用されているため、Appiumはほとんどのプログラミング言語をサポートしています。
オープンソースコードのおかげで、フレームワークは大規模で活発なコミュニティを誇っています。
AndroidとiOSのネイティブアプリケーション、およびモバイルWebテストで動作する任意のブラウザを自由に使用できます。
AndroidとiOSのテスト自動化用の同じAPI
箱から出してすぐにすべて—Appiumは他のソフトウェアのインストールを必要としません
エミュレータと実際のデバイスの両方をAppiumで使用できます
CI/CDツールとうまく統合します
●短所:
・Appiumにインストールされているすべてのオープンソースパッケージに互換性のあるバージョンがあることを確認する必要があります
・高いエントリしきい値
・iOSでのテストの実行が遅い
Appiumは、iOSとAndroidの両方で非常に人気のある優れたテストツールです。
長期間使用されており、サポートも良好です。
オープンソースであり、テスターが必要とするほとんどのタスクを実行できます。
ただし、Appiumは、初心者のテスターや、その設定を長期間研究したくない人には適していません。
大画面解像度のデバイスでは動作が遅くなります。
◇TestProject
TestProjectは、AppiumとSeleniumに基づくiOSテストフレームワークです。
Web、Androidアプリ、およびAPIのテストに適しています。
Xcodeを使用する必要はありません。
このモジュールを利用するには、物理デバイスまたはmacOS用のTestProjectエージェントとAppleデベロッパアカウント、およびシミュレータ用のXcodeが必要です。
●TestProjectの長所:
・低いエントリしきい値
・テストの高速実行
・iOSデバイスとシミュレーターのサポート
・開始するには最小限の設定が必要なので、すぐに仕事に取り掛かることができます。
・テストの効率を高める要素ロケーターと人工知能技術を備えたTestProjectレコーダーが含まれています。
・さまざまなオペレーティングシステムで実行できます。
・すべての一般的なプログラミング言語をサポートします。
・Python、Java、JavaScript、およびC#用のSDKがあります。
●TestProjectの短所:
ドキュメントが遅れてリリースされることがあります。
ツールを自分で学習するか、サポートに連絡する必要がある場合があります。
独自の拡張機能を開発するには、プログラミングスキルが必要です。
TestProjectは、多くのテスターに好評の優れた無料のフレームワークです。
わかりやすく、基本的なセットアップに時間がかかりません。
TestProjectの利点は、特定のプラットフォームや言語を使用する必要がないことです。
Python、Java、JavaScript、C#などの一般的なプログラミング言語をすべてサポートしています。
柔軟性と、同時にフレームワークのシンプルさにより、iOSテストにとって魅力的です。
◇EarlGrey
https://github.com/google/EarlGrey/tree/earlgrey2
EarlGreyは、YouTubeやGoogleカレンダーなどの独自のiOSアプリをテストするためにGoogleが開発したオープンソースツールです。
EarlGrey1.0は現在正式に非推奨であり、バージョン2.0が今のところ推奨されています。
EarlGrey 2.0を使用すると、テスターは、EarlGreyテストをAppleが公式に推奨しているXCUITestと組み合わせることができます。
また、Googleのプレゼンテーションで述べられているように、EarlGrey 2.0の目標は、EarlGrey 1.0のような単体テストではなく、ユーザーインターフェイスのテストです。
●アールグレイの長所:
・ネットワークおよびユーザーインターフェイスコンポーネントと自動的に同期できます。
・テストは、XCodeから直接実行することも、コマンドラインから実行することもできます。
・オープンソース
●アールグレイの短所:
一部のAPIでは、コードの記述が必要になる場合があります。
Googleは、テスト実行データおよびその他の分析を収集します。
これは無効にすることができますが、誰もがそれについて知っているわけではありません。
アールグレイは素晴らしいiOSアプリテストツールです。
他のGoogleアプリと簡単に統合できます。
◇まとめ
テストの迅速な実行により、自動テストが市場を支配し始めました。
今日の自動化は、テストの大部分であり、多くのフレームワークとその長所と短所を網羅しています。
ソフトウェアの長所と短所は異なる可能性があると私たちは信じています。
それらは特定のユーザーに依存します。
テスターがObjective-Cに習熟している場合は、Objective-CをサポートするiOSテストフレームワークを喜んで選択します。
(サポートされている言語が唯一の場合でも)。
■最後に
今回は、以上の国内ニュース、海外ニュースを取り上げてみました。
次週も、ソフトウェアテスト、テスト自動化に関するニュースをご紹介したいと思います。
最後まで見て頂き、ありがとうございました。
[改訂新版]マインドマップから始めるソフトウェアテスト
詳細はコチラをクリック!
iOSアプリ開発自動テストの教科書 〜XCTestによる単体テスト・UIテストから,CI/CD,デバッグ技術まで