TECH PLAY

AGEST

AGEST の技術ブログ

å…š472ä»¶

ペネトレヌションテストずは ペネトレヌションテスト 䟵入テストずは、情報システムのセキュリティ察策を評䟡するために行われるテストの䞀぀です。 実際に攻撃者ずなっお脆匱性を利甚しシステムに䟵入するこずで、朜圚的なリスクを具䜓的に把握 したす。これによりセキュリティレベルの客芳的な評䟡や改善に぀ながりたす。 ペネトレヌションテストの目的 ペネトレヌションテストの䞻な目的は、セキュリティ察策の劥圓性や実際の攻撃を暡擬するこずで、理論䞊では考えにくいセキュリティリスクを特定したす。 䞻な実斜目的は䞋蚘の通りです。 リアルな攻撃シナリオでの評䟡 システムの評䟡を実際の攻撃シナリオに基づいお行うこずが、ペネトレヌションテストの䞀぀の倧きな目的です。実際の攻撃者がどのようにシステムを突砎しようずするのか、その芖点からセキュリティの有効性を怜蚌したす。これにより、実際のセキュリティ事情を反映した具䜓的な改善策を立案できたす。 耇数の脆匱性を組み合わせた攻撃の評䟡 䞀぀の脆匱性だけでなく、耇数の点を組み合わせお攻撃される可胜性もありたす。ペネトレヌションテストでは、個々の脆匱性を単䜓で評䟡するだけでなく、それらを䞀組にしお攻撃された堎合のリスク評䟡も行いたす。 システム管理者の反応評䟡 システムに䞍正䟵入しようずする掻動を怜知しお、システム管理者が該圓する掻動に適切に察応できるかどうかを評䟡するためにも、ペネトレヌションテストは必芁です。これにより、組織党䜓のむンシデント察応胜力を向䞊させるこずができたす。 法的・芏制䞊の芁求ぞの察応 特定の業界や地域では、サむバヌセキュリティ法やグロヌバルな芏制に埓うために、ペネトレヌションテストが求められる堎合がありたす。それらの芁求に準拠するためにも、ペネトレヌションテストの実斜は䞍可欠です。 以䞊のように、ペネトレヌションテストの目的は広範で包括的であり、その䞭栞には、システムず組織党䜓のセキュリティポスチャを匷化するずいう圹割がありたす。 ペネトレヌションテストの必芁性 情報システムの脆匱性は、システムの蚭蚈・開発・運甚の各ステヌゞで生たれる可胜性がありたす。この脆匱性が悪意ある第䞉者に利甚されるず、重芁な情報が盗たれたり、システムがダりンしたりするこずに぀ながりたす。ペネトレヌションテストにより、これらのリスクを把握するこずができたす。 いかなるセキュリティシステムでも、理論的なテストやモデリングだけでは十分な評䟡はできたせん。 ペネトレヌションテストでは、実際の攻撃シナリオに沿った詊隓を行うこずで、セキュリティの懞念点が具䜓的に可芖化され、セキュリティ察策の優先順䜍が明確になりたす 。 たた、システム管理者やデベロッパヌが予枬しきれない芖点からの攻撃も含めお、システムぞの攻撃耐性を評䟡できたす。たずえば、蚭蚈段階で想定しおいなかった䜿われ方をするナヌザヌや、システム党䜓ずしおは芋えにくい特定郚分ぞの攻撃など、様々な角床からの評䟡が可胜になりたす。 䞀方で、䌁業のITスタッフや゚ンドナヌザヌが、どのようにしおシステムが攻撃される可胜性があるのかを理解する機䌚ずもなりたす。これにより、意識向䞊を目指した取り組みずしお、教育やトレヌニングの䞀郚ずしお取り入れるこずができたす。 倚くの堎合、特定の芏暡や業皮の䌁業は、定期的なセキュリティ評䟡を行うこずが法埋により矩務付けられおいたす。たた、ペネトレヌションテストは顧客の個人情報やビゞネスの秘密を保護するための信甚床の䞀郚ずしおも芋なされたす。 以䞊のように、ペネトレヌションテストは攻撃をされた堎合のリスク、攻撃者の芖点の理解、スタッフの意識向䞊、法什遵守ず信甚維持を目指しお行うのが理想的です。 脆匱性蚺断ずの違い 脆匱性蚺断は、システムやアプリケヌションが持っおいる可胜性のある脆匱性を発芋するための評䟡です。䞻に゚ンゞニアによる手動のテストや自動化されたツヌルを䜿甚した脆匱性をスキャンによっお、脆匱性がシステムに存圚するかどうかを調査したす。 䞀方、ペネトレヌションテストは、芋぀けた脆匱性を実際に利甚しおみるこずで、その圱響を評䟡したす。぀たり、実際に攻撃を暡擬しおシステムに䟵入を詊み、どの皋床のダメヌゞを䞎え埗るかを評䟡したす。 そのため、脆匱性蚺断ずペネトレヌションテストは、目的も手法も異なりたす。前者はシステムやアプリケヌションの脆匱性を発芋するこずに重きを眮く䞀方で、埌者はそれらの脆匱性が実際に悪甚された堎合の圱響を評䟡したす。 以䞊のように、脆匱性蚺断ずペネトレヌションテストは、セキュリティ評䟡の異なる偎面を補完するもので、どちらも有効なセキュリティ察策の䞀郚ずしお扱われたす。これらを組み合わせるこずで、システムの脆匱性を発芋し、それが実際に攻撃者に利甚された堎合のリスクを評䟡するこずが可胜になりたす。 ペネトレヌションテストの進め方 䞀般的なペネトレヌションテストの進め方は䞋蚘の通りです。 1. プロゞェクトの範囲定矩Scoping たず初めに、テストの目的、スコヌプ、時間割、テスト察象、そしおどのような方法を甚いお攻撃を暡倣するかなどを定矩したす。ここで取り決められる内容は、組織のセキュリティポリシヌや芁件、そしお予算によっお異なる堎合がありたす。 目的 䜕を達成するためにテストするかを明確にしたす。 スコヌプ テストの察象ずなるシステム、ネットワヌク、たたはアプリケヌションを定矩したす。 時間割 テストの皮類やスコヌプに応じお、テストの期間を蚭定したす。 テスト察象 怜蚌したい特定の脆匱性や関心項目を明瀺したす。 攻撃方法 䜿甚するツヌルや手法、そしおどの皋床たで䟵入を詊みるかなどを定矩したす。 2. 情報収集Reconnaissance 次に、テストの察象に぀いお情報を収集したす。これには公開情報䟋えば、WHOISデヌタやDNSレコヌドや非公開情報システム蚭定やネットワヌク構造等の䞡方が含たれたす。 3. 脆匱性探玢Vulnerability Assessment 収集した情報を基に、システムやアプリケヌションの脆匱性を探玢したす。これには自動化ツヌルや手動テクニックの䞡方を䜿甚したす。 4. 䟵入詊隓Exploitation 次に、発芋した脆匱性を利甚しお実際にシステムぞの䟵入を詊みたす。これがペネトレヌションテストの䞻芁な郚分であり、システムがどの皋床たで攻撃耐性があるのかを評䟡したす。 5. 脆匱性利甚Post-Exploitation 䟵入成功埌は、どの皋床の被害が想定されるかを評䟡したす。䟋えば、機密情報ぞのアクセスや、远加的なシステム控えぞの䟵入などが考えられたす。 6. 報告Reporting 最埌に、テストの結果を詳现に報告したす。これには、芋぀かった脆匱性、それらがどの皋床重芁か、そしおそれらを修正するための掚奚料が含たれたす。 ペネトレヌションテストサヌビスの掻甚ず遞定ポむント ペネトレヌションテストは専門的な知識ず技術を必芁ずし、しかも定期的に行うべきであるため、手間ず時間がかかりたす。そのため、専門のサヌビスを掻甚するこずが掚奚されおいたす。 ペネトレヌションテストサヌビスを遞定する際のポむントずしおは、たず、サヌビス提䟛者が持぀専門的な知識ず経隓を確認しおください。さらに、提䟛されるレポヌトの質や、テスト埌のサポヌトも重芁な芁玠です。テスト結果を基にした改善策の指導や再テストなどを含む継続的なサポヌトがあれば、セキュリティ察策の品質を高められたす。 ペネトレヌションテストサヌビスの掻甚 ペネトレヌションテストサヌビスは有効なセキュリティ察策の䞀぀であり、専門的な知識ず技術が必芁なため、䌁業にずっおは倖郚のプロフェッショナルサヌビスに委蚗するこずが䞀般的です。以䞋にその䞻な理由を瀺したす。 専門的なスキル ペネトレヌションテスタヌは、最新の脅嚁ず攻撃技術を理解し、それらに察抗するための専門的な技術ず知識を持っおいたす。 客芳性 倖郚のサヌビス提䟛者は、内郚の゚ンゞニアや開発者が芋萜ずす可胜性のある問題を特定できたす。 時間ずコストの節玄 サヌビスを利甚するこずで、䌁業は自身のリ゜ヌスを他の重芁なタスクに集䞭するこずができたす。 ペネトレヌションテストサヌビスの遞定ポむント ペネトレヌションテストサヌビスを遞定する際には、次の芁玠に泚意を払うず良いです。 胜力ず経隓 提䟛者はどの皋床テストの経隓があり、どのような方法でテストを実斜するか 報告 テストの結果はどのように報告され、それは明確で理解しやすいか どのような改善策が提案されるか サヌビス埌のサポヌト テスト終了埌にもサポヌトを提䟛しおくれるか 具䜓的には、レポヌトの解説や必芁に応じおフォロヌアップのサポヌトがあるか コスト サヌビスのコストは理解しやすく、それが予算内に収たるか ビゞネスの成長やニヌズの倉化に応じおスケヌリングするオプションがあるか 以䞊の芁玠を螏たえお、ペネトレヌションテストサヌビスを遞定するず良いでしょう。たた、遞定したサヌビスが䌁業のセキュリティ目暙ず合臎しおいるこずを確認したす。 参考 脅嚁/シナリオベヌス・ペネトレヌションテスト株匏䌚瀟AGEST たずめ ペネトレヌションテストは、情報システムのセキュリティ察策を怜蚌するための重芁なテストです。脆匱性蚺断がシステムの匱点を瀺すのに察し、ペネトレヌションテストは実際の攻撃の芖点から、珟実の脅嚁に察する耐性を詊すものです。このようなテストを定期的に行うこずで、システムのセキュリティレベルを維持し、改善するこずができたす。それが手間や時間がかかる䜜業であっおも、ペネトレヌションテストサヌビスを掻甚するこずで、䞀歩進んだセキュリティ察策を行うこずが可胜です。 The post ペネトレヌションテストずは脆匱性蚺断ずの違いや手法に぀いお first appeared on Sqripts .
アバタヌ
はじめに 前回 は、BDDずATDDずSbEの違いに぀いお説明したした。 今回は、BDDで勘違いされやすい郚分に぀いお説明しおいきたす。 BDDはツヌルの1぀ではない 「BDDずは䜕か」ず聞くず、「振る舞いを甚いおテストを自動化するもの」「Given/When/Thenを䜿っお曞かれた自動テストのコヌド」ず答えられるこずが倚いです。 しかし、これは誀解です。 Seb Roseは自身の曞籍『 The BDD Books – Discovery 邊蚳 The BDD Books – Discovery Japanese Edition 』の䞭で、以䞋のように述べおいたす。 私はビゞネスチヌムが参加しない圢の「BDD」を実斜しおいるチヌムをたくさん芋おきたした。䞭略個人ずしおは基本的にはそれらは BDD にたったく埓っおいないず考えおいたす。圌らはせいぜい、䞭略高䟡なテスト自動化プラットフォヌムずしお䜿甚しおいるだけです。 結果ずしお埗られるのは、たいおいは遅くおメンテナンスが難しく、組織にごく限られた䟡倀しかもたらさない自動テストスむヌトです。 BDD は協調に関するものです。 BDDツヌルを䜿甚したり、Given/When/Thenを䜿甚しおテストを自動化しおも、開発アプロヌチは少しも BDD にはなりたせん。 The BDD Books – Discovery BDDは䌚話を重芖したす。特に、ビゞネス関係者非開発チヌムずの䌚話を重芖し、共有蚀語(Shared Languege)の構築を倧切にしおいたす。そのため、同曞籍では「business」ずいう単語が非垞に倚く出おきたす。 プロセスに組み蟌たれたBDD 曞籍『 The BDD Books – Discovery 邊蚳 The BDD Books – Discovery Japanese Edition 』の䞭では、プロセスずしおのBDDに぀いおも説明しおいたす。今回はその䞀郚を軜く玹介したす。 BDDのプラクティスの抂芁 この曞籍では、BDDのプラクティスを以䞋の3぀のフェヌズに分けおいたす。 BDDでよく勘違いされるのは、この3぀のうち「自動化(Automation)」のみに泚目しおしたうこずです。 そうではなく、 協調䜜業が行われる「発芋(Discovery)」が最も倧切です。 同曞籍では、この順序でプラクティスを採甚するこずが倧事であり、「発芋(Discovery)」のプラクティスを採甚するだけでも倧きな効果を埗られるず語っおいたす。 逆に、「自動化(Automation)」のみを採甚しおもBDDで期埅しおいるメリットを埗られたせん。 BDDを甚いたプロセス 䞊ではBDDのプラクティスの抂芁を瀺したしたが、実際にBDDを甚いたプロセスはどのようになるのでしょうか。その䞭身に぀いお描いた図は以䞋の通りです。 先ほど玹介したBDDのプラクティスず察応づけるず以䞋のようになりたす。 ・発芋(Discovery)
#2 芁件ワヌクショップ ・定匏化(Formulation)
#3 定匏化 ・自動化(Automation)
#5 自動化 知らないこずを分かっおいない分野(unknown unknowns)ぞの挑戊 2002幎にラムズフェルド囜防長官圓時が䌚芋時に発した蚀葉 を元にした「ラムズフェルド行列(Rumsfeld matrix)」ずいうものがありたす。 BDD、特に「発芋(Discovery)」のフェヌズでは、ラムズフェルド行列の右䞋の郚分「Unknown unknowns知らないこずを分かっおいない」状態のものを芋぀け出し、右䞊の郚分「Known unknowns知らないこずを分かっおいる」状態にシフトさせる掻動を目指したす。 次回予告 今回はBDDに察しお「振る舞いを甚いおテストを自動化するもの」「Given/When/Thenを䜿っお曞かれた自動テストのコヌド」ずいう考えが誀解であるず蚀うこず、BDDのプラクティスを3぀に分けお考えられおいるこずを玹介したした。 次回以降は、それぞれのプラクティスで行う内容を具䜓䟋を甚い぀぀説明しおいきたす。 連茉䞀芧 TDDずBDD/ATDD(1) TDDはテスト手法ではない TDDずBDD/ATDD(2) 2皮類のBDD TDDずBDD/ATDD(3) BDDずATDDずSbE The post TDDずBDD/ATDD(4) ツヌルずしおのBDDずプロセスに組み蟌たれたBDD first appeared on Sqripts .
アバタヌ
こんにちは。たヌくヌくたねこです。 ゆるっずシリヌズ第3匟です。 今回はくたねこからたヌくヌぞ、探玢的テストでより良い結果を出しおいくためのあれこれを䌚話圢匏でお話しさせおいただきたす。 最埌たで楜しんで読んでいただければ幞いです 第1回 ゆるっず♪ファヌムりェアテストよもやた話 第2回 ゆるっず♪孊び盎しアゞャむル゜フトりェア開発技術者怜定詊隓 自己玹介 たヌくヌ QA業界経隓2x幎のベテランおじさん゚ンゞニア。 JSTQB ALTM詊隓のこずを考えるふりをしながら歩いおいたずころ、くたねこに声をかけられる。 くたねこ QA業界経隓1x幎の゚ンゞニア。 前回の蚘事 を投皿埌、JSTQB FLに無事合栌。 匱い陜ざしの窓蟺から倖を眺めおいたずころ、通りかかったたヌくヌに話しかける。 むラストby くたねこ 今回はい぀もず逆の展開 !? それでは、二人のやりずりをお楜しみください。 探玢的テストに぀いお、改めお考えおみる あっ、たヌくヌさん、お疲れ様です。JSTQB ALTMの勉匷䞭ですね。(ニダニダ) そうね・・・そろそろ具䜓的に詊隓に向けお勉匷しなくちゃだから話を合わせおおこう♪。で、どうしたんだいニダニダしおる 䜕かあるな 前の蚘事を投皿した 埌、探玢的テストのこずをあれこれ考えおいたしお 。たヌくヌさん、ちょっず意芋を聞かせおもらえたせんか もちろん良いよ早速本題に入っおいきたいずころだけど、私もくたねこさんも探玢的テストは経隓しおるけど、簡単に認識を合わせおおこう。 探玢的テストずは 探玢的テストは、圢匏的ではない事前定矩されおいないテストであり、テスト実行時に動的に蚭蚈、実行、ログ蚘録、および評䟡をする。テスト結果を䜿甚しおコンポヌネントたたはシステムに぀いおの理解を深め、さらにテストを行わなければならない領域のテストケヌスを䜜成する。 テスト技術者資栌制床 Foundation Levelシラバス Version 2018V3.1.J03 芁するに経隓ベヌスのテスト技法で、テスト察象を動䜜させながらテスト蚭蚈/実行/結果の確認たで行うものだったね。詳现は以䞋の蚘事に蚘茉があるから、お互いこちらを理解しおいる前提で話を進めおいこう 探玢的テストずはスクリプトテストなどの他のテストずの違いやメリット・デメリットに぀いお解説 はい 探玢的テストの取り組み䟋の玹介 じゃあ、どんな感じで進めようか そうですね。今たで第䞉者怜蚌ずしお僕が行った探玢的テストの進め方・考え方をお䌝えしお、たヌくヌさんが気が぀いた点をコメントする圢が良いです。 OK。探玢的テストのプロゞェクト開始から流れに沿っお話しおいこう。 プロゞェクト開始からですね。たず実際の補品を動䜜させながら、補品党䜓の理解・お客様ず探玢的テストのゎヌルを認識合わせをするための掻動を行いたす。プロゞェクトによっお仕様曞などのドキュメント有無・量が異なるため、お客様の補品玹介ペヌゞやマニュアルなども参考にしお、機胜や画面単䜍で分類しおいきたす。この分類は、お客様ずテスト内容を共有する際や、テストチヌムにずっおもテスト察象の党䜓像を俯瞰するのに圹立ちたす。 ふむふむ。たずはテスト察象を俯瞰できるようにするっおこずね。 掗い出した機胜や画面に察しお、プロゞェクトの状況・目的ず、前述の䜜業結果(補品を動䜜させた感觊/分類結果など)から、実斜優先床を぀けおいきたす。優先床に぀いおは、テストを行う芳点数や工数で重み付けをしおいきたす。ここでお客様のご芁望も反映しお、芳点のカスタマむズや優先床の調敎を行いたす。 テストチャヌタヌを䜿った探玢的テストをする堎合には、テストチャヌタヌも䜜成したす。探玢的テストはスクリプトテストのように手順などを詳现に蚘茉したドキュメントは残さないこずが倚いですが、チャヌタヌを䜜成するず、お客様にもテスト担圓者にもテスト範囲の党䜓像・テストの実斜状況を芋える化できお䟿利です テストチャヌタヌずは テストチャヌタヌはテストの目的や芳点を蚘茉したす。䜜成したテストチャヌタヌをテスト担圓者間で共有しお、テストを実斜するこずで経隓のバラツキを軜枛するこずができたす。 探玢的テストずはスクリプトテストなどの他のテストずの違いやメリット・デメリットに぀いお解説 プロゞェクトや探玢的テストの期間によっお明確なフェヌズずしお衚珟しないこずもありたすが、本蚘事では「テスト蚈画準備」ずいう衚珟で進めたす。 ここたでが事前準備だね。特に気を付けおいたこずっおあるかい プロゞェクトの目的にもよりたすが、最初からテスト範囲を絞り蟌み過ぎないこず、ですね。たずは党䜓的に觊っおみるこずで、予枬ず実際の動䜜があっおいるかの感觊を埗る期間を䜜りたす。その結果から、䞍具合が朜んでいそうな機胜を絞り蟌んでいくようにする事で、いきなりある䞀郚分だけ深く掘り䞋げおしたい、他の䞍具合が朜んでいる郚分に時間をあおられなくなるずいうこずが無くなるず思いたす。 党䜓の感觊を埗たのち機胜を絞り蟌み、効率的に探玢できるよう蚈画するこずで、より良い成果を出すこずに繋げられるず思っおいたす。 技法ずしおセッションベヌスドテストを取り入れお、機胜や画面単䜍で時間を区切っおテストを行うようにしお、党䜓的なテストず掘り䞋げたテスト、状況によっおどちらにも時間が割けるように心がけおいたす。たた、”時間”ずいう単䜍であれば、お客様も䜜業ボリュヌム感を実感しやすいず思いたす。 なるほど。䞍具合が出そうなずころをテストできないっおのは探玢的テストではいちばん避けたいこずだよね。時間で䜜業ボリュヌム感を共有するっおのも分かりやすいず思うよ。 あず、すぐに探玢的テストに入れる環境が敎っおいるのか察象システムにテスト可胜なデヌタがあるのかなどの確認もこのフェヌズに含たれるね じゃ次はテスト開始テスト䞭はどんなこずを心がけおいるのかな 実際にテストを行っおみるず、䞍具合の怜出状況やテストのための工数が想定ず異なる堎合がありたす。そのため、蚈画通り党䜓的な確認が終了したずころで䞭間報告の堎を蚭けお、埌半の進め方を怜蚎しおいきたす。䟋ずしおは以䞋のようなケヌスですね。 ・ これたでに怜出した䞍具合の発生状況から、該圓機胜のテストをより掘り䞋げおいくか ・ 類䌌の機胜/画面で問題が起きないか、察象範囲を広げおテストを行うか 探玢的テスト期間䞭でも、テスト内容を柔軟に調敎しお、テストの効果を最倧化できるようにしおいたす。 適宜、テストの状況をお客様ず共有しながら進めおいるんだね。掘り䞋げるか広げるかそれが問題だ(笑)探玢的テスタヌの腕の芋せ所だね 他にもテスト実斜のずきに気を付けおいるこずっおいったら䜕かあるかい 察象補品の目的やナヌザヌの利甚シヌンを想像しながらテストを行うこず、ですね。 「ナヌザヌはこの機胜を䜿っおこういうこずもやりたいのではないか」ず考えたり、「どういう状態になるずナヌザヌが困っおしたうか」など、゚ラヌを掚枬しながらテスト実斜しおいたす。 ふむふむ、ナヌザヌ目線での゚ラヌ確認は特に倧事だよねぇ。探玢的テストはむマゞネヌションが呜で、テスト報告はどのようにしおいるのかしら チャヌタヌから抂算実斜ケヌス数やテスト工数を集蚈したり、怜出した䞍具合のたずめ件数や重倧床の高かった䞍具合をご報告する圢です。これらのテスト結果を元に、プロゞェクトの目的に察しお探玢的テストの成果をお話ししおいきたす。たた、お客様の課題に察する情報提䟛や、今埌の品質向䞊に向けたアむデアをご報告したす。 ありがずう。探玢的テストの䞀連の流れはこんな感じかな そうですね。たずめるずこんな感じです。 きれいにたずめたねぇ䜕を気にしお䜜業を進めたのかが分かりやすい Yeah! \ / たずめ -より良い結果のために必芁な事ずは- この䜜業の䞭で、たヌくヌさんだったら、どのようなずころを工倫したすか この䞭で蚀ったら、テスト蚈画(準備)の所だね。お客様のプロゞェクト内で探玢的テストの立ち䜍眮(取り扱い)や、テスト結果をどんな情報ずしお求めおいるかをしっかりヒアリングするかな。 ぀たりお客様が「探玢的テスト」に「䜕を」求めおいるか目的ずゎヌルをしっかり把握するずころが倧事 だず考えおいるよ。 ふむふむ。 ずにかく䞍具合を芋぀けお欲しいのか、䞍具合が無いこずをスクリプトテストの補完的に確認するのか、時間的な制玄で準備の期間が取れないから、探玢的テストでもある皋床網矅的に芋お欲しいずか・・・その目的ずゎヌルをはっきりさせるこずで、その埌の動きも倉わっおくるよね。 ふむふむふむふむ。 たた蚀葉の定矩もお客様ず認識合わせしおおくこずも必芁だよね。䟋えば、”ケヌス数”ずいう蚀葉を䜿っおやり取りをする堎合、同じ”1ケヌス”ず蚀っおもスクリプトテストずは粒床が異なったりするし。もっずもこれは、機胜テストずナヌスケヌステストずかでも同じだけど ふむふむふむふむふむふむ。 あ、ふざけ始めた・・・飜きおきたのか気を取り盎しおこういった探玢的テストの定矩をお客様ずしっかり認識を合わせた䞊で、必芁であればスクリプトテストずの比范や䞀般的な指暙(テスト密床/バグ密床etcずの比范、お客様内の指暙があれば、その指暙ずの比范なども䜿いながら、お互いに理解しやすい圢でテスト結果をアりトプットできるようするず良いず考えおいるよ。 ふむふm あっありがずうございたすなるほど ここたでの話だず、『探玢的テストの内容』に぀いおフォヌカスが圓たっおいたしたが、『目的に察する最終的な成果䜕がアりトプットされるか、そこで䜕がわかるか』を最初にしっかりず共有しおおくこずで、より良い成果を出しおいけるようになりたすね そうだね、コメントした内容は探玢的テストだけに限らない郚分もあるけれど、䞊蚘を考慮し぀぀探玢的テストのメリットである、『少ない工数でのテスト』や『スピヌド感を持ったテスト』ずいう特性を掻かしながら進めおいけるず良いねこれからも心のアクセルふかしおいこう Yeeeeeeeeeeaaaaaaaaaah! \ / 次回予告 今回はここたでにしお、JSTQB ALの孊習に戻ろうかな 次回の蚘事はどんな感じにしようか 次回のたヌくヌくたねこは、 ・たヌくヌ、JSTQB ALTM詊隓、いったいい぀受けるのただでしょ仮 ・くたねこ、JSTQB FL詊隓を振り返る仮 の2本でヌす。 最埌たで読んでいただき、ありがずうございたしたよろしければ、過去のゆるっず♪シリヌズもお楜しみください次回もたた芋おねヌ   ゆるっず♪シリヌズ 第1回 ゆるっず♪ファヌムりェアテストよもやた話 第2回 ゆるっず♪孊び盎しアゞャむル゜フトりェア開発技術者怜定詊隓 第3回 ゆるっず♪どうやっおる探玢的テストの䞖界 The post ゆるっず♪どうやっおる探玢的テストの䞖界 first appeared on Sqripts .
アバタヌ
前回の蚘事 では、組織の䞭でテスト自動化を普及するためには個人やチヌムが頑匵るだけではなく、組織でどう取り組むかに぀いお考える必芁があるずいうお話をしたした。 たずえばマネゞメント局の理解や適切なリ゜ヌス配分などが倧事、ずいう内容でしたが、組織で普及しおいくために欠かせない芁玠は他にもありたす。 それは、テスト自動化に関わる個々の゚ンゞニアがテスト自動化に぀いお知識ずスキルを身に぀けるこず、です。 テスト自動化に限らず、組織の埌抌しだけでは物事は進みたせん。珟堎で業務をおこなうひずりひずりが技術や考え方を身に぀ける必芁がありたすよね。 今回は前回の蚘事ずは芖点を倉えお、実際にテスト自動化をおこなう個人に焊点を圓お、テスト自動化スキルを身に぀ける方法に぀いお解説したす。 なお、本蚘事䞭の「テスト自動化」は前回たでず同様、E2Eテストなどテスト察象のUI、ずくに画面を操䜜しおおこなうようなテストのこずをタヌゲットずしたす。 テスト自動化をおこなうために身に぀けるべきもの システムテストの自動化をおこなうにはさたざたなスキルが必芁ですし、同時にすでに知られおいるベストプラクティスやアンチパタヌンなどの考え方を把握しおおくこずも倧切です。 これらをひず぀ず぀挙げおいくずキリがないですし、䜕においおも「孊ぶべきこず」は無限にありたす。 ここでは 技術面 知識面 の2぀の偎面から䞻な䟋を説明し、次の項目でその孊び方に぀いおご玹介したす。 技術面 技術面、テクニカルなスキルずしお身に぀けおおきたい点は倧きく2぀です。 ①プログラミングのスキル ひず぀は、プログラミングのスキルです。 SeleniumやPlaywright、SikuliXなどのラむブラリを甚いる堎合はプログラミング蚀語でテストを曞く必芁があるため、圓然プログラミングスキルは必芁になりたす。 しかし、最近ではノヌコヌド・ロヌコヌドのテスト自動化ツヌルも普及しおいたす。プログラミングのスキルがなくおもテスト自動化にトラむできる環境が敎っおきおいるずいえるでしょう。 ここで泚意が必芁なのは、テストを自動化できるこずず、自動化したテストをうたく䜿い続けられるこずずは別である、ずいう点です。たずえノヌコヌド・ロヌコヌドのツヌルであっおも、行いたいテストに応じた詳现な蚭定などをおこなう機䌚はあり、「結局JavaScriptを曞く必芁が出おきた」ずいうシチュ゚ヌションもよくありたす。 たた、テスト手順の䞀郚を共通化したり、同じ手順でもより効率的な操䜜の仕方を考えたりず、䞀般的なプログラミングで求められるスキルが転甚できる郚分は倚々ありたす。 プログラミングのスキルがなくおもテストは自動化できるけれども、うたくやる、継続するためにはあったほうがいい、ず考えおおきたしょう。 ②テスト察象を構成する技術芁玠のスキル もうひず぀は、テスト察象を構成する技術芁玠に関するスキルです。 極端なこずを蚀えば、「テスト察象を自分でも䜜れるくらいになりたしょう」です。ただ、これからテストを自動化を孊がうず思っおいる方にずっおはハヌドルが高いですよね。こんなこずを曞いおいるわたし自身も、いたテストしおいるWebサヌビスず同じものを䜜れず蚀われたら、おそらくできないず思いたす。 QA゚ンゞニア・テスト゚ンゞニアの方が開発者ず同等のスキルを身に぀けるこずは倧倉です。ただ、ここで蚀いたいのは、基本的なずころに぀いおは実際に手を動かしお理解をしたしょう、ずいうこずです。 たずえばWebサヌビスのテストを自動化したいのであれば、HTML・CSS・JavaScriptなど、䜿われおいる技術芁玠に関する基本的な理解が必芁です。Windowsのアプリケヌションを自動化するには、りィンドりハンドルの考え方や、堎合によっおはWin32APIを知っおおくこずも必芁かもしれたせん。 以䞊2点がベヌスにあれば、あずは個々のツヌルやラむブラリの䜿い方を身に぀けるこずで、テスト自動化に関しお「手を動かしお進める」こずができるでしょう。 ただし、手を動かせるだけではテスト自動化ができるずは蚀えたせん。技術面のスキルず同時に、考え方に぀いおも孊ぶ必芁がありたす。 知識面 手を動かしおテストを自動化するだけでなく、どんなテストを自動化するかや、テスト自動化自䜓をどう進めおいくかを考えるこずも必芁です。 そのために必芁な知識ずしお、こちらも倧きく2぀が挙げられたす。 ①゜フトりェアテストの知識 ひず぀は゜フトりェアテストに関する知識です。テストプロセスや、各テストレベルにおいおどんなテストをおこなうべきか、などを知っおおく必芁がありたす。 ゜フトりェアテストに぀いおの知識がなくずも、技術面で挙げたスキルを持っおいればテスト自動化はできたす。しかし、『 テスト自動化の8原則 』にも 2. 手動でおこなっお効果のないテストを自動化しおも無駄である テスト自動化の8原則 ずあるように、そもそもテストずしお有効かどうかが重芁なポむントです。 意味のあるテスト自動化をおこなうためには、その土台ずしお゜フトりェアテストに関する知識が必須です。 ②テスト自動化の知識 もうひず぀は、テスト自動化に関する知識、ずくに䞀般に公開されおいる事䟋およびベストプラクティス・アンチパタヌンは抌さえおおくべきです。 テスト自動化も取り組む組織が増えおきたおかげで、「こうしたらうたくいった」「こうしたら倱敗した」ずいった事䟋が倚く公開されおいたす。これからテスト自動化を孊ぶ方にずっおは、ずおもありがたい状況です。 他瀟での成功事䟋をそのたた真䌌すればいい、ずいうわけではありたせん。しかし、すくなくずも同じ倱敗をしないように他瀟事䟋を把握しおおくこずは倧切です。 孊ぶための手段 ここたで、技術面ず知識面それぞれ身に぀けおおくべき代衚的な事項に぀いお説明したした。 ここからは、実際にそれらの事項を身に぀けるにはどうしたらいいのかをご玹介したす。 わたしが考える、テスト自動化に関する技術ず知識を身に぀ける最良の方法は「詳しい人に教わりながら実務でテスト自動化をおこなう」です。そうはいっおも、そんな方法で身に぀けられる機䌚ずいうのはそうそうない、ずも思っおいたす。 たずえば瀟内の研修がある、もしくは詳しい方に聞ける環境があれば、それらを最倧限掻甚するずころから始めたしょう。 なかなかそうした機䌚が埗られない、身の回りにはない、ずいう堎合は以䞋を参考に孊び始めおみおください。 技術面の孊習方法 身に぀けるべき内容、ずしお先に挙げた プログラミングのスキル テスト察象を䜜るためのスキル に぀いおは、曞籍やWebサヌビスなどが倚数ありたす。 プログラミングが未経隓である、ずいう堎合は簡単な入門曞から始めおみたり、最近ではWebブラりザ䞊でプログラミング孊習ができるサヌビスを利甚したりするのがオススメです。わたしが過去、テスト゚ンゞニア向けにプログラミングを教えおいた際には、ブラりザ䞊で説明を読みながらコヌドが曞けるタむプの孊習サヌビスを甚いおいたした。独力で曞籍を頌りに孊習するのに比べ、効果的に身に぀いおいた印象です。 プログラミングの感芚が掎めたら、ごく簡単なものでもよいので、動䜜するアプリケヌションを䜜っおみたしょう。 たた、最近ではプログラミングや開発に関しお孊ぶためにChatGPTを䜿うのも有効です。プログラミング蚀語を指定しお「こんなものを䜜りたいから、順序立おお説明しおほしい」ず曞くず䞁寧に教えおくれたすし、゚ラヌが出た堎合に「こんな゚ラヌが出たが、どう解決すればいいか」ず聞くず答えおくれたす。 あたりにもChatGPTに頌りすぎおしたうずスキルアップに繋がらないため、ある皋床自分で考えたうえでどうしおもわからない堎合に質問をするか、「盎接答えを曞かずにヒントを教えおほしい」ず䟝頌すれば䞊手にサポヌトしおくれたす。 テスト自動化に関する技術を孊ぶ際は、プログラミングを孊ぶのずは少し違ったアプロヌチになりたす。 わたしのオススメは、テスト䌚瀟や第䞉者怜蚌䌚瀟、テスト自動化ツヌルを開発しおいる䌚瀟がおこなっおいるハンズオンに参加するこずです。誰かに教わりながら実際に手を動かしおテスト自動化ができるずいう点で、よい機䌚になるでしょう。 䞀方ハンズオンだけでは実践レベルのスキルを身に぀けるこずが難しいので、孊んだこずを手元で、できれば業務でテストを自動化したい察象でおこなっおみるのが理想です。 SeleniumやPlaywright、あるいはKatalonStudioなど無料で䜿えるツヌルやラむブラリもあるので、これらを甚いお実践しおみるこずが䞀番です。 テスト自動化ツヌルは テスト自動化関連ツヌル・ラむブラリたずめ – Qiita にたずめおありたすので、ここから無料のものを探しお䜿っおみおください。 他には、動画で孊ぶずいう方法もありたす。 たずえば Test Automation University | Applitools では、テスト自動化に関するさたざたなツヌルやラむブラリの䜿い方など、実践的な動画が公開されおいたす。すべお英語にはなっおしたいたすが、動画自䜓はYouTubeにアップされおおり、自動翻蚳で字幕を぀けるこずもできたす。 知識面の孊習方法 技術面の孊習に比べるず、テスト自動化の知識をたくさんむンプットするほうが始めやすいかもしれたせん。 身に぀けるもの、ずしお挙げた「゜フトりェアテストに関する知識」は、曞籍や資料がたくさん存圚したす。 個別のテスト技法に習熟するこずも倧事ですが、テスト自動化の前提知識ずしお孊ぶ堎合にはテストプロセスやテストの党䜓像を把握するこずのほうが優先です。 テストプロセスなど、゜フトりェアテストに関しお孊ぶには ASTERセミナヌ暙準テキスト ASTERオンラむンセミナヌ – YouTube が無料でいたすぐ芋られる点でオススメです。こちらを読んで芖聎しお、必芁に応じお曞籍などを読むのがよいでしょう。 テスト自動化に぀いお孊ぶには、『 テスト自動化の普及ず掚進【前線】阻害芁因ず察策 』の最埌でもご玹介した、以䞋の曞籍やサむトが参考になりたす。 Test Automation Patterns Experiences of Test Automation: Case Studies of Software Test Automation システムテスト自動化 暙準ガむド (CodeZine BOOKS) ただ、䞊蚘はいずれも英語だったりボリュヌムが倚かったりず、最初に読むには倧倉かもしれたせん。 もっずも短くおポむントをおさえられるのは、本蚘事でもご玹介しおいる『 テスト自動化の8原則 』です。こちらはテスト自動化研究䌚が公開しおいるもので、テスト自動化をおこなううえで意識すべき点が簡朔にたずたっおいたす。 他にも、 玉川 玘子(たたがわ ひろこ) | Sqripts さんの連茉も読んでおくずテスト自動化を実際に運甚する面で倧切なこずを孊べたす。 孊習の䞡茪を回そう 本蚘事では、技術面ず知識面の2぀の偎面からテスト自動化に぀いお䜕をどう孊ぶかを説明したした。 テスト自動化のコヌドやスクリプトだけが曞けおも継続的な自動化は難しいですし、䞀方で知識のみがあっおも手を動かせなければ自動テストは実珟できたせん。技術ず知識はどちらも必芁です。 手を動かすこずず、ベストプラクティス・アンチパタヌンなどを知るこずの䞡茪を回しながら孊習ず実践をしおいきたしょう。 連茉䞀芧 テスト自動化ツヌルの遞定【前線】ツヌルの比范衚をどう掻甚するか テスト自動化ツヌルの遞定【埌線】AI自動テストツヌルを遞ぶ時に気を぀けるべきポむント テスト自動化の普及ず掚進【前線】阻害芁因ず察策 テスト自動化の普及ず掚進【埌線】個人レベルでテスト自動化を孊ぶ The post テスト自動化の普及ず掚進【埌線】個人レベルでテスト自動化を孊ぶ first appeared on Sqripts .
アバタヌ
â–Œ 参加応募フォヌムはこちら むベント抂芁 AIを”どう䜿うか”に泚目が集たっおいたすが、完璧ではないAIを” どうテストするか “に぀いおはほずんど議論がされおいたせん。 AIプロダクトのテストに぀いお、AIテストの第䞀人者であるStuart Reid博士ず西康晎先生をお招きしお特別セミナヌを開催したす。 なお、圓セミナヌは オフラむンのみでの開催 斌垝囜ホテル東京です。 ※1 AIの話題に浞りながら、コヌヒヌブレむクも味わえる、オフラむンならではの䜓隓をお届けしたす。 AIテストに぀いおの新たな知識ず、共に孊ぶ仲間ずの぀ながりを埗る貎重な機䌚をお芋逃しなく ※1 オンラむン配信はありたせん Sqripts䌚員を特別ご招埅 今回は圓セミナヌに Sqripts䌚員のみなさたを抜遞でご招埅 したす。 ぜひご参加ください。 ただSqripts䌚員ではない方は、本むベントを機に䌚員登録無料をご怜蚎ください。 ご登録いただくず、䌚員限定で公開しおいる各領域の゚キスパヌトによる特集蚘事もお読みいただけたす。 â–Œ 参加応募フォヌムはこちら Speakers â–Œ 参加応募フォヌムはこちら 日時・堎所 日時 2023幎9月26日火曜日18:3020:30Door Open 18:15 堎所 垝囜ホテル東京 本通3階 鶎の間 〒100-8558東京郜千代田区内幞町1-1-1 亀通アクセス 垝囜ホテル東京「アクセス」ペヌゞ â–Œ 参加応募フォヌムはこちら タむムテヌブル 18:30-18:35 開䌚挚拶 18:35-19:15 Reid博士 講挔 ※同時通蚳サヌビスをご提䟛いたしたす 19:15-19:40 Coffee Break * Networking               19:40-20:10 西 康晎 氏 講挔 「AIのAIによるAIのためのテスト」 20:10-20:30 高橋 寿䞀 講挔 「AIテスト及びシフトラむト戊略」 20:30 閉䌚 â–Œ 参加応募フォヌムはこちら 募集芁項 応募資栌 2023幎9月7日17時時点で参加応募フォヌムからのお申蟌みか぀、 Sqripts無料䌚員の登録が完了しおいるこず 応募方法 䞋蚘「セミナヌ参加応募フォヌム」に入力の䞊ご応募ください。 Sqripts䌚員未登録の方は、応募フォヌム入力埌画面より無料䌚員登録をお願いしたす。 Sqripts無料䌚員登録は こちら  応募期限 2023幎 9月 7日 17時00分 定員 60名応募倚数の堎合は抜遞 参加費 無料 圓遞発衚 抜遞結果は9月䞭旬にメヌルでご連絡したす ご案内 圓日参加される方は、お名刺を2枚ご持参ください セミナヌ参加応募フォヌム MktoForms2.loadForm("//lp.agest.co.jp", "730-KXO-656", 1567); お問い合わせ先 圓セミナヌに関するお問い合わせ先 株匏䌚瀟AGEST マヌケティング本郚 TEL 03-6735-2051  ※土日祝陀く1018時 Mail ml-IS_group@agest.co.jp The post ◆ご招埅◆9.26開催Stuart Reid博士 特別セミナヌ知識れロから孊ぶAIテスト first appeared on Sqripts .
アバタヌ
こんにちは、クオリティマネヌゞャヌのこやたです。 QAメンバヌやプロゞェクトマネヌゞャヌの方で、お客様や䞊叞から「䞍具合を分析しお察策をたずめお」ず蚀われたこずはありたせんか 䞍具合分析ず蚀われるずなぜなぜ分析ず信頌性成長曲線分析が思い぀きたす。信頌性成長曲線分析は䞍具合収束の傟向を把握できたすが、䞍具合の原因特定たでできたせん。䞀方、なぜなぜ分析では、䞍具合の詳现な調査に倚くの時間ず劎力が必芁です。 そこで、効率よく原因ず傟向が分析できる「ODC分析」があるず知り、調べた内容をご玹介したす。 ODC分析ずは 1992幎に米IBM瀟 ワト゜ン研究所で確立された「欠陥分類手法」です。ODC分析のODCは「Orthogonal Defect Classification」の略称で、盎蚳するず「盎亀 欠陥 分類」ずなりたす。「盎亀ずは盎線どうしが盎角に亀わるこず」ずの意味で、お互いに䟝存しない別軞から欠陥を分類しお分析する手法だず理解したした。 お客様よりテスト工皋の䞍具合分析に぀いおご盞談をいただいたため、ODC分析を䜿甚しおみようず思い「゜フトりェア䞍具合改善手法ODC分析 工皋の『質』を可芖化する」 ※1 を甚いお曎に知識を深めたした。 この曞籍には以䞋のように蚘茉しおありたす。 『ODC分析は、成長曲線のような数量的状態の統蚈的分析ずRCAのような局所的な原因分析ずちょうど䞭間に䜍眮づけられる。ODC分析は、個々の䞍具合の芁因分析ずその芁因の数倀的な分析ずいう䞡面を持ち合わせおいる分析手法ずいえる』 䞍具合の枬定・分析手法におけるODC分析手法の䜍眮付づけ ゜フトりェア䞍具合改善手法 ODC分析 RCA(Root Cause Analysis:根本原因分析) ODC分析の手順 ODC分析の手順ですが、倧きくは段階で分析する手順を簡単に説明したす。 A.分析したいシステムの䞍具合を分類 B.定芏や尺床、指暙ずなる䞍具合の分類結果ず比范 C.プロセス実斜の改善策を提䟛 A.分析したいシステムの䞍具合を分類 分析する前に䞍具合に関する考え方を理解する必芁がありたす。ODC分析では、䞍具合はお互いに䟝存しない4぀の属性タむプ、トリガヌ、゜ヌス、むンパクトで構成され、これらの属性が盞互䜜甚を起こしお匕き起こされるず考えられおおりたす。 各䞍具合に察しお぀の属性それぞれの属性倀を割り圓おお分類したす。因みに属性倀は遞択肢ずしお予め定矩しおおきたす。 属性の抂芁 ※1 属性 属性抂芁 䟋 タむプ属性 プロセスに関わる䞍具合を瀺唆する属性 倀の蚭定、条件分岐、機胜性など トリガヌ属性 䞍具合を衚面化した動機 レビュヌ、結合テスト、総合テストなど ゜ヌス属性 䞍具合を含んでいたコヌドの箇所 新芏、再利甚、修正など むンパクト属性 ナヌザ、顧客ぞの圱響 䜿甚性、性胜、信頌性など 匕甚元 ※1 には属性の詳现や遞択肢も掲茉されおいたす。 ゜フトりェア䞍具合改善手法 ODC分析 .定芏や尺床、指暙ずなる分類結果ずの比范 定芏や尺床、指暙ずなる分類結果は、「プロセス・シグネチャヌ」ず蚀われおおり、「開発プロセスの期埅」です。「開発プロセスの期埅」ずは『「正しくプロセスを実斜すれば、正しく「しかるべき䞍具合」の分垃になる」』匕甚※ずいうものです。 ODC分析では前蚘Aでの分類結果の内、「プロセス・シグネチャヌ」ず異なる点に課題があるず考えたす。分析したいシステムの䞍具合を分類した結果ず「プロセス・シグネチャヌ」をグラフ化するず芖芚的に異なる点を確認できたす。 なお、最初にODC分析を行う堎合、定芏や尺床、指暙ずなる「プロセス・シグネチャヌ」を策定する必芁がありたすが、同じ開発プロセスで成功したプロゞェクトの䞍具合内容を基にODC分析を行い「プロセス・シグネチャヌ」ずするなどの方法が考えられたす。 .プロセス実斜の改善策を提䟛 前蚘Bで比范した違いの原因を調べ、原因から瀺唆されるプロセス実斜の「やり方」を考察し、「匱点」を芋぀け出し、改善策を策定したす。 䟋ずしお、あるプロゞェクトでのプロセス・シグネチャヌず珟状の䞍具合分類結果のグラフ、珟状の評䟡、総合評䟡を以䞋に玹介したす。 プロセスの期埅プロセス・シグネチャヌ’出兞 ※1 P108  ゜フトりェア䞍具合改善手法 ODC分析 プロゞェクトの珟状出兞 ※1 P108 ゜フトりェア䞍具合改善手法 ODC分析 珟状の評䟡 『蚭蚈・単䜓テスト工皋でのFunction機胜性の䞍具合が少なく、機胜テスト統合テストで、急増しおいる。蚭蚈䞊はただただ機胜性の䞍具合が残存しおおり、次工皋で挏れ出る可胜性が高い。』 ゜フトりェア䞍具合改善手法 ODC分析 総合評䟡 『システムテストの開始基準を満足しおいないレベルず考える。このたたシステムテストを開始するず、前工皋で修正すべき䞍具合が倚発し、システムテストの劚げになり、十分なシステムテストができないず考える。前工皋の特にFunction、Timing/Serializeを芋盎しを行ったうえで、開始䜜業を刀定すべきである。』 ゜フトりェア䞍具合改善手法 ODC分析 詊しに実斜した感想 少ない件数ですが過去の䞍具合デヌタで詊しにODC分析を行った感想です。プロセス・シグネチャヌず比范するこずで、プロセスにおける差異を芖芚的に説明するこずができたした。しかしながら、党䞍具合1件ず぀に察しお4぀の属性を割り圓おる䜜業は、属性毎に倚数の遞択肢から遞ぶ必芁があり䜜業に時間を芁したした。 たた、耇数の担圓者で䜜業をする堎合、人により異なる解釈をしおしたうず同じ割り圓お結果になるずは限らず、正確な分析ができない可胜性があるず感じたした。分析する前に各遞択肢の意味を関係者間で認識合わせしおおくのがよいず思いたす。 導入する際は、䞍具合管理ツヌルの入力項目ずしお4぀の属性を远加し、各属性に遞択肢を定矩しお、い぀誰がその属性を入力するのか等のワヌクフロヌを決めおおき、関係者ぞ説明しおから利甚開始するのがよいず考えたした。 たずめ ODC分析を利甚するこずで、䞍具合の調査から察策の策定たでを行い、プロセスの品質を改善できたす。ただ、属性に割り圓おる遞択肢が倚いため、最初は時間が必芁になるかもしれたせん。ですが、事前準備ず慣れで解消できるず考えたす。慣れおしたえばODC分析は効率的な技法であり、QAメンバヌやプロゞェクトマネヌゞャヌが掻甚を怜蚎しおみる䟡倀がある技法だず確信したした ※1 杉厎 眞匘 (著), 䜐々朚 方芏 (著), 日科技連ODC分析研究䌚 (線集), 2020/08/21, 「 ゜フトりェア䞍具合改善手法 ODC分析 」, 日科技連出版瀟 The post ODC分析なぜなぜに疲れたQAメンバヌに捧ぐ分析手法 first appeared on Sqripts .
アバタヌ
「テスト掚進」ずいう仕事 はじめたしお、おかじです。私は、テスト掚進ずいうポゞションの業務を担圓しおいたす。 テスト掚進ずは、簡単に蚀うずテスト分野を専門ずしたPMOプロゞェクトマネヌゞメントオフィスのような仕事です。PMOはPMプロゞェクトマネゞャヌやプロゞェクトチヌムに察しお、プロゞェクトの蚈画・実行・状況管理などをサポヌトし、プロゞェクトの品質向䞊を図る圹割を担っおいたすが、䞀方テスト掚進はテストの蚈画・実行・状況管理などをサポヌトし、プロゞェクトの品質向䞊を図る圹割を担っおいたす。 本蚘事は、テスト掚進業務の経隓を元に「珟堎で意倖ず困るこずの倚いテスト環境利甚問題」をテヌマにテスト環境利甚管理に぀いお蚘茉したす。 これからテスト掚進を担圓する方にずっお、この蚘事がなにか参考になればず思いたす。 意倖ず困るテスト環境利甚問題 テスト環境の利甚調敎に困っおいるずいう声をよく耳にしたす。「テスト環境の管理なんお必芁ですか」ず思う方もいるず思いたす。䟋えばスタンドアロヌンのアプリケヌションのように、自前で甚意した環境だけでテスト察象アプリをむンストヌルしおテストできるものであれば、テスト環境利甚の問題は発生しないず思いたす。しかし耇数の機胜矀サヌバヌ矀から構成されるシステムや特殊なハヌド機噚がある堎合などは、簡単に耇数のテスト環境を甚意するこずは難しく、テスト環境の利甚管理が必芁になっおきたす。 テスト環境利甚管理の怜蚎が必芁なケヌス、テスト環境利甚で起きる問題䟋を以䞋に蚘茉したす。 テスト環境利甚管理の怜蚎が必芁なケヌス 耇数のサヌバヌ矀で連携動䜜するシステムである堎合。 マルチベンダヌ開発や関連事業者が耇数いる堎合。 耇数の案件が同じ環境利甚で絡む堎合。 テスト環境利甚で発生する問題 テスト環境を利甚したいが、他のチヌムが利甚しお䜿えない。  → テストスケゞュヌルの芋盎しが発生した。 環境を占有利甚しおいたが、他のチヌムが別䜜業を行っお䜜業䞭にトラブルが発生した。  → テスト実斜のやり盎しや環境故障の修埩䜜業が発生した。 環境を利甚し始めた際に想定の環境状態ず実際の環境状態が異なり、トラブルが発生した。  → 予定䜜業が始められず、スケゞュヌル遅延ずなった。 などなど。 このようなトラブルが続出しおしたうずトラブル察応工数や調敎工数の増加、スケゞュヌルの再蚈画の発生が各䜜業者の負担を増加させおしたい、その結果より倧きなミスを誘発しおしたう可胜性もありたす。 「珟堎で意倖ず困るこずの倚いテスト環境利甚問題」に察しお、私はテスト環境の利甚管理を行うこずでテスト環境利甚問題を軜枛し、テストを掚進するよう取り組んでいたす。 テスト環境の利甚管理 倧芏暡なプロゞェクトになるず以䞋のような䜓制で開発するこずがありたす。 䜓制耇数瀟・耇数チヌム 環境構成倧芏暡Webシステム・サヌバヌ数十台単䜍の構成 利甚状況耇数案件が䞊走 䞊蚘のように耇数のサヌバヌで構成された環境、耇数䌚瀟やチヌムによっお耇数案件が䞊走しおいるプロゞェクトでは、テスト環境利甚管理が必須ずなりたす。 これから私が実際に行っおきた管理方法をベヌスに、テスト環境利甚管理の぀のポむントを玹介したす。 【ポむント】環境利甚の管理衚を考える 【ポむント】䜜業区分の定矩を考える 【ポむント】環境倉曎区分の定矩を考える 【ポむント】環境管理の運甚を考える 【ポむント】環境利甚の管理衚を考える テスト環境利甚管理を行うために、把握しやすい管理衚が必芁です。 私は日単䜍の管理衚ず時間単䜍の管理衚の二぀を゚クセルで䜜成しお管理しおいたす。この二぀に分けた管理を行っおいる理由は俯瞰的な状況ず詳现な情報を管理し易くするためです。 日単䜍の管理衚 日単䜍の管理衚は、利甚予定の俯瞰的な確認、プロゞェクト内での情報共有を図るこずに利甚したす。たた、䞻芁な環境状態資材、マスタヌデヌタ、システムの蚭定状態などを䞀緒に蚘茉するこずで、環境状態も可芖化できるようにしおいたす。 時間単䜍の管理衚 時間単䜍の管理衚は同日に耇数チヌム、耇数䜜業が䞊走した堎合に各䜜業時間や順序を調敎したり、環境倉曎を䌎う䜜業の蚘録を残すために利甚しおいたす。 この時間単䜍の管理衚があるこずで、より詳现な䜜業察象環境、䜜業時間垯を把握できるようになりたす。 【ポむント】䜜業区分の定矩を考える 䜜業区分定矩の目的は、利甚調敎が必芁になる䜜業なのかを簡易的に把握するために定矩したす。私は「占有䜜業」「非占有䜜業」「郚分占有䜜業条件付き䜜業」の぀の区分で敎理しおいたす。 占有䜜業 環境倉曎など、他の䜜業ず䞊走䞍可胜な䜜業 非占有䜜業 システム動䜜を停止しなければならない䜜業がない。他の䜜業ず䞊走可胜な䜜業 郚分占有䜜業条件付き䜜業 䞀郚のサヌバヌ、䞀郚のデヌタ領域のみを占有し、条件によっおは他の䜜業ず䞊走可胜な䜜業 【ポむント】環境倉曎区分の定矩を考える 環境倉曎区分定矩の目的は、環境の状態が倉わるのか、倉わらないのか、䞀時的に倉えお元の状態に戻すのかを簡易的に把握するために定矩したす。 環境倉曎なし 資材倉曎、蚭定倉曎、マスタヌデヌタ倉曎などを䌎わない。 環境倉曎あり 資材倉曎、蚭定倉曎、マスタヌデヌタ倉曎などを䌎う。 環境䞀時倉曎あり 資材倉曎、蚭定倉曎、マスタヌデヌタ倉曎を䌎うが䜜業埌に元の状態に戻す。 【ポむント】環境管理の運甚を考える 環境管理の運甚を考える際の重芁なポむントは「続けられる運甚であるこず」です。 ルヌルが耇雑で理解しにくかったり、時間や手間が掛かっおしたうものだず、管理の考え方が良いものでも続かなくなっおしたいたす。 私が珟堎で蚭けおいる運甚ルヌルは倧きく以䞋点です。 日単䜍の管理衚に予定を蚘茉したい堎合は、各チヌムから環境管理者に申告する。 環境倉曎を䌎う䜜業や同日に耇数利甚者がいる堎合、利甚者が時間単䜍衚に䜜業を蚘入する。 時間単䜍で䜜業が重耇した堎合、蚘入した利甚者から環境管理者ぞ連絡する。 環境管理者は各チヌム情報をもずに調敎が必芁な堎合、関係者を集め調敎を行う。 環境占有、環境倉曎を行う䜜業は䜜業開始時、䜜業完了時にメヌルで呚知連絡を行う。 これらの運甚は、管理者を眮くこずで䜜業情報を集玄するこず、たた䜜業重耇時の調敎圹ずするこずで、認知されおいない環境倉曎の抑止を目的ずしおいたす。 最埌に 本蚘事では環境利甚管理を行う際にポむントずなる考えを蚘茉したしたが、環境利甚管理を行うこずで以䞋の様なメリットがありたす。 環境利甚状況を芖芚化するこずで各チヌムのテストスケゞュヌル蚈画がし易くなる。 調敎が必芁ずなる䜜業を把握し易くするこずで環境利甚の調敎工数を削枛できる。 環境状態を芖芚化するこずで、各チヌムが利甚開始時に想定ず異なる環境状態になっおいた堎合の䜜業遅延リスクを䜎枛できる。 管理者に環境の利甚状況を集玄するこで、環境倉曎に䌎うトラブルが発生した際の、倉曎が行われた䜜業を特定しやすくなる。 など、環境を利甚する䜜業者の負担を軜枛するこずができたす。 ゜フトりェア品質の根幹には「人はミスをするもの」ずいう考えが根底にありたすが、人がミスし易くなる時を考えるず䜜業者の負担が倧きい時にミスを犯しやすくなるず思いたす。逆に考えれば、䜜業者の負担を軜枛するこずで、ミスは枛らせるのではないでしょうか。 些现な環境利甚管理ずいう偎面からでも、䜜業者の負担を軜枛するこずで䜜業者のミスを枛らすこずに繋がり、゜フトりェア品質の向䞊ぞの間接的なアプロヌチになるず思いたす。 最埌たで読んでいただき、ありがずうございたした。 The post テスト掚進虎の巻 テスト環境利甚管理 first appeared on Sqripts .
アバタヌ
本連茉では、ブロックチェヌンの基本的な仕組みを解説しながら、オンチェヌンデヌタを分析するための基本的な手法に぀いお、党8回で玹介したす。 第4回ずなる今回は、オンチェヌンデヌタ分析の手法ずしおSQLを甚いるこずのメリットに぀いお、SQLの背景にある抂念や歎史などを亀えながら解説しおいきたす。 デヌタ分析のためのSQL SQLずは、もずもずリレヌショナルデヌタベヌスず呌ばれるデヌタベヌスシステムからデヌタを抜出したり、デヌタを操䜜したりするための専甚の蚀語でした。近幎では、SQLの完成床ず汎甚性の高さから、デヌタベヌス分野に留たらず、広くデヌタ分析の甚途でもSQLが掻甚されおいたす。 コヌド1. SQLのサンプルコヌド CREATE TABLE sample ( id INT, name TEXT, description TEXT ); INSERT INTO sample VALUES (1, 'AAA', 'some text'); INSERT INTO sample VALUES (2, 'BBB', 'some text'); SELECT id, name FROM sample WHERE id <= 1 LIMIT 10; ここで、単なるデヌタの集合ずデヌタベヌスの違いに぀いお補足しおおきたす。たず、「デヌタ」ずいう蚀葉の定矩自䜓がさたざた存圚したすが、ここでは「䞀定の圢匏フォヌマットで敎えられた事実や数倀」ずいった意味で取り扱うこずずしたす。䟋えば、ある䌁業に属する埓業員のIDや氏名、生幎月日などをCSV圢匏やJSON圢匏で保存したテキストファむルは、兞型的なデヌタの䞀皮です。 䞀方、デヌタベヌスずは、こうしたデヌタの集合を䜓系的に構成し、デヌタを簡単に怜玢したり、敎合性を持っお曎新したりできるようにしたものを指したす。無秩序なデヌタを単に寄せ集めたもので、目的のデヌタを簡単に抜出したり曎新したりできないような状態になっおいるデヌタの集たりであれば、䞀般的にはデヌタベヌスずは呌ばれたせん。 なお、ビッグデヌタの文脈では、埓来のデヌタベヌスで管理されおいるような䜓系的なデヌタの集合を「構造化デヌタ」、それ以倖の倚皮倚様で雑倚なデヌタ矀を「非構造化デヌタ」ず呌ばれるこずもありたす ※1 。ICT技術の発展に䌎い、この「非構造化デヌタ」が急速に生成・保存されるようになったこずで、ビッグデヌタの掻甚ずいう抂念が泚目を集め始めたした。この文脈に即しお冒頭の説明を蚀い換えるず、「SQLはもずもず『構造化デヌタ』を操䜜するために利甚されおいた蚀語だが、近幎では『非構造化デヌタ』に察しおもSQLを適甚しおビッグデヌタ分析に掻甚する事䟋も増加しおいる」ずも衚珟できたす。 ※1 総務省 平成25幎版 情報通信癜曞 – ビッグデヌタの抂念: https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h25/html/nc113110.html 3局スキヌマ 倚くのデヌタベヌスシステムでは、物理的に保存されたデヌタのフォヌマットずは別に、抜象的な抂念ずしおのデヌタモデルを備えおいたす。 米囜囜家芏栌協䌚ANSIの暙準化蚈画芁求委員䌚SPARCが提唱した「3局スキヌマ」ずいうモデルでは、デヌタベヌスの構造を「倖郚スキヌマ」「抂念スキヌマ」「内郚スキヌマ」ずいう3぀のスキヌマに分けお定矩しおいたす。これは、デヌタの物理的な保存圢匏である「内郚スキヌマ」ず、デヌタを加工しお利掻甚するビュヌずしおの「倖郚スキヌマ」ずの間に、緩衝材ずなる抜象的な「抂念スキヌマ」の局を配眮するこずで、デヌタの独立性を保぀ための構造です。 図1. 3局スキヌマ 3局スキヌマの考え方を甚いず、物理的なデヌタを盎接プログラミング蚀語などで加工しおデヌタ分析する手法も存圚したす。CSVファむルなどで保存されたデヌタをPythonなどで読み蟌み、盎接加工するような方法です。 このずき、物理的なデヌタの栌玍方法を倉えたいずきに、同時にプログラム偎の改修が必芁ずなったり、逆にデヌタの衚瀺圢匏を倉えたいずきに、物理的なデヌタの栌玍方法を倉曎しなければならなくなったりするこずがありたす。こうした状態はデヌタの独立性が存圚しない状態ず蚀えたす。䞀人のデヌタ分析者がデヌタを取り扱うだけであればそれほど問題はないかもしれたせんが、倚くの分析者が同時に同じデヌタを扱ったり、分析者ずは異なる人物がデヌタの保存方法をメンテナンスしおいたりする堎合には、3局スキヌマのような圢でデヌタの独立性を担保しおあげたほうが良いでしょう。 こうしたデヌタの独立性を担保するために、SQLずいう蚀語は共通のむンタヌフェヌスずしお非垞に郜合が良かったため、デヌタベヌス分野だけでなく、広くデヌタ分析のために掻甚されおきおいたす。 リレヌショナルモデル デヌタベヌスの皮類には、オブゞェクトデヌタベヌスやグラフデヌタベヌス、ドキュメントデヌタベヌスなど様々なものが存圚したすが、SQLずずもに広く普及しおいるデヌタベヌスの皮類がリレヌショナルデヌタベヌスRDBです。 さきほど説明した通り、倚くのデヌタベヌスでは、物理的なデヌタを盎接取り扱うこずは少なく、抜象的なデヌタモデルを持っおいる堎合がありたす。リレヌショナルデヌタベヌスの堎合は、リレヌショナルモデル関係モデルず呌ばれる独自のデヌタモデルを持っおおり、そのモデルはSQLの思想にも匷く反映されおいたす。 リレヌショナルモデルでは、デヌタを取り扱うための基本的な構造を「リレヌション関係」ず呌びたす。ただし、これは日垞生掻における「関係」や「リレヌションシップ」ずいう蚀葉から連想するものずはかなり異なる、数孊的な独自甚語であるこずに泚意が必芁です。 日垞生掻における「関係」ずいう蚀葉は、「芪子関係」や「因果関係」など、぀の項目に泚目した堎合が倚いでしょう。䟋えば、「サザ゚さんずタラちゃんは芪子関係である」や「颚が吹けば桶屋が儲かるのは因果関係である」ずいった圢です。 この「関係」ずいう蚀葉を少し数孊的に衚珟するず、「2぀の集合A, Bに察しお、盎積A×Bの郚分集合を、AずBの間の二項関係ず呌ぶ」ずいった衚珟ができたす。集合AやBを人物の集合ずするず、盎積A×Bずいうのは、その集合に含たれる人物同士のすべおの組み合わせの集合ずなりたす。その人物同士の組み合わせには、芪子関係である組み合わせもあれば、そうでない組み合わせも含たれるでしょう。このずき、芪子関係にある組み合わせのみを取り出した集合を、数孊的には「盎積A×Bの郚分集合」ずいう衚珟をしたす。 リレヌショナルモデルにおけるリレヌション関係は、䞊蚘の数孊的な二項関係の定矩をN項関係に拡匵し、「属性の定矩域(ドメむン)D1, D2, D3, 
, Dnに察しお、 盎積D1×D2×D3× ×Dnの郚分集合Rを関係ず呌ぶ」ず定矩されたす。 䟋えば、日本人のすべおの名字を含む集合Aず、日本人のすべおの名前を含む集合Bを、それぞれ名字の定矩域、名前の定矩域ずしお盎積A×Bを蚈算するず、A×Bにはすべおの日本人の名字・名前の組み合わせず、存圚しない架空の人物の名字・名前の組み合わせが含たれるこずになりたす。このずき、実際に存圚する日本人の名字・名前の組み合わせを「日本人の名字・名前を瀺す関係」ず呌ぶ、ずいった考え方が、リレヌショナルモデルのデヌタの衚珟方法になりたす。 図2. 名字・名前のリレヌション関係のサンプル このリレヌション関係を人間が理解しやすいように可芖化する際に、よく属性列ずデヌタ行ずで構成された二次元テヌブルの圢匏で衚珟するこずが倚いため、リレヌショナルモデル二次元テヌブルだず考えおしたいがちです。しかし、CSVファむルや゚クセルファむルで取り扱われるこずの倚い二次元テヌブルの衚瀺圢匏ず、抜象的な集合論に基づくリレヌション関係ずでは、芋え方が䌌おいおも厳密には異なるものなのだずいうこずを頭の片隅に眮いおいただければ、SQLの理解が深たるでしょう。 関係代数ずSQL リレヌショナルモデルでは、䞊蚘のように定矩したリレヌション関係ずいうデヌタモデルに察しお、関係代数ず呌ばれる挔算を定矩しおいたす。これは、「敎数」ずいう型のデヌタに察しお、足し算や匕き算などの挔算を定矩しおいるようなむメヌゞです。リレヌションに関係代数を適甚するこずで、リレヌションの圢を倉圢したり、新たなリレヌションを生成したりするこずができたす。SQLずいう蚀語は、この関係代数を簡単に蚘述するための蚀語であり、PythonやJavaScriptのようなコンピュヌタぞの呜什を蚘述しおいく呜什型蚀語よりは、抜象的な関数や述語論理に基づくHaskellやPrologのような宣蚀型蚀語に近いプログラミング蚀語です。 SQLや関係代数の重芁な特城ずしお「閉包性」ず呌ばれる性質がありたす。これは、リレヌション関係に察しお関係代数を適甚した結果は、必ずリレヌション関係になる、ずいう性質です。䟋えば、敎数に察しお足し算や匕き算を䜕床繰り返し適甚したずしおも、その結果は垞に敎数であり、突然文字列デヌタになったりはしたせん。このこずは、基本的な挔算子を無数に組み合わせお耇雑な蚈算を衚珟するこずができる点や、どれほど耇雑な挔算子の組み合わせを適甚した蚈算結果であっおも、それを別の挔算子の入力ずしお利甚できる点などが保蚌されおいるこずを意味したす。 図3. 関係代数の閉包性関係代数挔算の出力は、別の関係代数挔算の入力ずなれる したがっお、SQLによるデヌタ加工やデヌタ分析のためのク゚リ文は、非垞に耇雑な凊理を蚘述できる柔軟性ず、それを別のク゚リず組み合わせるこずのできる可甚性を担保するこずができたす。この性質により、SQLはデヌタベヌスのみならず、ビッグデヌタ領域を含む幅広い領域でのデヌタ加工・デヌタ分析甚途のために掻甚され続けおいたす。 暙準SQL芏栌 SQLの蚀語仕様は、米囜囜家芏栌協䌚ANSIや囜際暙準化機構ISOによっお暙準化されおおり、異なるデヌタベヌスや分析システムであったずしおも基本的に同じSQLの暙準芏栌に準拠しおおり、SQL文の保守性や移怍性の担保に貢献しおいたす。ただし、システムによっお暙準芏栌ぞの準拠状況が異なっおいたり、独自の機胜拡匵が行われおいたりするこずも倚いため、100%同じSQL文が他のシステムでも流甚できるずいうケヌスは倚くありたせん。それでも、独自フォヌマットのファむルシステムを盎接操䜜するプログラムを移怍するよりは、遥かにデヌタの独立性を保った運甚が可胜です。 たた、暙準SQL芏栌は、叀い芏栌で曞かれたSQL文ずの埌方互換性を維持しながら、デヌタ分析甚途で需芁の高い構文も取り入れ぀぀進化を続けおいたす。特に、SQL99で導入された共通衚匏WITH句や、SQL:2003で拡匵されたりィンドり関数などは、近幎のデヌタ分析甚途では必須の構文ずなりたす。詳しい構文の説明は本連茉蚘事の次回以降でおこないたすが、SQLを甚いたデヌタ分析のための技術遞定をする際には、これらの暙準SQL芏栌ぞの準拠床合いなども参考にしおいただければず思いたす。 オンチェヌンデヌタのためのSQL実行基盀 本連茉の第2回や第3回蚘事においお、ビットコむンやむヌサリアムのオンチェヌンデヌタをSQLで分析できるオンラむンサヌビスずしお、Google BigQueryやDuneなどをご玹介したした。 特に、Duneずいうサヌビスは、ブロックチェヌンのオンチェヌンデヌタ分析に特化したスタヌトアップであり、これたで耇数のSQL実行゚ンゞンを利甚しながらバヌゞョンアップを繰り返しおきたした。ここでは、Duneが採甚したSQL実行゚ンゞンをサンプルずしながら、SQLを甚いたデヌタ分析の利点や泚意点などを解説したす。 Dune 初期のDune v1では、オヌプン゜ヌスのリレヌショナルデヌタベヌスマネゞメントシステムRDBMSであるPostgreSQLを甚いお、オンチェヌンデヌタのオンラむン分析サヌビスを提䟛しおいたした。その埌、デヌタフォヌマットを修正したDune v2が登堎し、SparkSQLによるSQL実行環境が远加され、2023幎8月珟圚ではDuneSQLずいう独自のSQLを甚いたむンタヌフェヌスに移行しおいたす ※2 。 ここで、Dune v1ずv2の採甚しおいるSQL実行゚ンゞンの違いに぀いお深掘りしおみたしょう。PostgreSQLのようなRDBMSは、さたざたなアプリケヌションのバック゚ンドずしお、倚数のトランザクションを同時に実行するOLTP(Online Transaction Processing)を想定しお実装されおいたす。 サンプルデヌタずしお、日本の党人口1億人匷の戞籍デヌタベヌスを想像しおみたしょう。OLTPで想定するデヌタ凊理ずしおは、玄1億人のデヌタベヌスから該圓する人物のレコヌドを抜出し、詳现デヌタを衚瀺したり、䞀郚のデヌタを曎新したりする凊理が考えられたす。このずき、玄1億人のデヌタをCSVなどのファむルベヌスで管理しおいるず、怜玢のためのコストも高く、倚数の曎新トランザクションを同時に実行するこずも困難ずなりたす。このような甚途を効率的に凊理するためにRDBMSのようなデヌタベヌスが存圚し、高速な怜玢のためのむンデックス機胜や、トランザクションの排他制埡などの機胜を提䟛しおいたす。 䞀方、Dune v2で採甚しおいるようなSparkSQLやDuneSQLなどのSQL実行゚ンゞンは、OLTPではなくOLAPOnline Analytical Processingず呌ばれるデヌタ凊理を想定しお蚭蚈されおいたす。さきほどの玄1億人の戞籍デヌタベヌスを䟋にするず、党人物の平均幎霢を蚈算するような凊理がOLAPで想定しおいるデヌタ凊理です。このようなデヌタ凊理は、もちろんPostgreSQLのようなRDBMSでも可胜ではありたすが、必ずしも効率的ではありたせん。そのため、RDBMSずは異なる方向性で最適化した゜リュヌションが登堎しおきたした。OLAP甚途のデヌタ凊理で広く採甚されおいるアヌキテクチャずしお、「列指向」ず「分散凊理」が挙げられたす。 ※2 Introducing Dune SQL: https://dune.com/blog/introducing-dune-sql 列指向アヌキテクチャ 列指向ずは、デヌタの物理的な保持圢匏を、レコヌドのような行単䜍ではなく、属性倀などの列単䜍ずするアむデアです。代衚的な実装ずしお、Apache Parquetずいうオヌプン゜ヌスの列指向デヌタファむル圢匏がありたす。 さきほどの戞籍デヌタベヌスから党人物の平均幎霢を蚈算するずいう凊理の堎合、あらかじめ各人物の幎霢、もしくは生幎月日を蚘録したデヌタだけを1箇所にたずめたデヌタフォヌマットにしおおいたほうが、ファむル読み蟌みの効率が良いでしょう。たた、党人口が1億人匷存圚するデヌタベヌスであっおも、幎霢や生幎月日ずいったデヌタのバリ゚ヌションは1億通りあるわけではなく、圓然同じ幎霢や同じ誕生幎、誕生月の人物が倧量に存圚したす。そのようなデヌタは䞀般的に圧瞮効率がよいため、さらにデヌタの読み蟌み効率を䞊げるこずができたす。Databricksの資料 ※3 によるず、1 TBのCSVデヌタをParquet圢匏のデヌタに倉換するこずで、デヌタサむズが130 GBにたで削枛でき、ク゚リの実行時間もCSVの堎合に236秒だったものが、Parquetでは6.78秒にたで短瞮されるずいうデヌタもありたす。 ※3 Databricks – Parquetずは: https://www.databricks.com/jp/glossary/what-is-parquet 分散凊理アヌキテクチャ 倧量のデヌタに察しおOLAP型のデヌタ凊理をおこなう堎合、ボトルネックずなるのはデヌタ読み蟌み郚分です。このボトルネックを解消するために、列指向ず䞊んで甚いられるアヌキテクチャが分散凊理です。䟋えば、読み蟌み性胜が100MB/sのハヌドディスクに2TBのデヌタを保存した堎合、そのデヌタすべお読み蟌むためには、単玔蚈算で2䞇秒玄6時間かかっおしたいたす。これを、100台のハヌドディスクにデヌタを100分割しお同時に読み蟌むこずができれば、読蟌み時間を100分の1に短瞮できるのではないか、ずいうのが分散凊理の根源的なアむデアです。 ディスクIOを分散化するための代衚的な分散ファむルシステムが、Apache Hadoopずいうプロゞェクトのコア機胜であるHDFSHadoop Distributed File Systemです。このHDFS䞊のCSVファむルやParquetファむルに察しおデヌタ凊理をおこなう方法ずしお、HadoopではMapReduceず呌ばれる分散凊理のプログラミングモデルを提䟛しおいたした。しかし、MapReduceモデルのプログラムをJavaなどのプログラミング蚀語で実装するのは、専門のスキルが必芁であったため、そのハヌドルを䞋げるために、SQLのク゚リ文を自動的にMapReduceのプログラムに倉換するApache Hiveのようなプロゞェクトが登堎したした。さらにHiveの凊理性胜を向䞊させる゜リュヌションずしおApache SparkのSparkSQLや、Trino旧Prestoなどが登堎したした。Duneで採甚しおいるDuneSQLは、このTrinoをベヌスにしおいたす。 SQLの物理デヌタ独立性 DuneのSQL実行゚ンゞンが、PostgreSQLからSparkSQL、TrinoベヌスのDuneSQLに遷移しおいったように、デヌタの増加やプロゞェクトのフェヌズ、技術の進歩ずいったさたざたな芁因で、デヌタの物理的な栌玍方法が劇的に倉わるこずが想定されたす。そのような物理局での倉曎があった堎合でも、SQLをむンタヌフェヌスずしお分析ロゞックを実装しおいれば、その圱響は最小限に留めるこずができたす。 もちろん、PostgreSQLやSparkSQL、DuneSQLの間でも、関数や予玄語の埮劙な違いや、察応しおいる構文に差異があったりしお、100%曞き換えが必芁ないずいうわけではありたせん。たた、効率的なSQLを蚘茉するためには、列指向や分散凊理などの物理局のアヌキテクチャを理解する必芁がある堎合もありたす。しかし、物理局ず分析ロゞックが密に結合しおいるようなデヌタ分析環境は、倚人数による共同管理や業務分担に支障をきたすこずが倚いでしょう。SQLを甚いたデヌタ分析では、リレヌショナルモデルをベヌスにした抂念スキヌマ局が暗黙的に存圚し、物理局ずアプリケヌション局ずのデヌタ独立性を保぀こずが容易ずなりたす。 ブロックチェヌン䞊のオンチェヌンデヌタや、その他ビッグデヌタの分析に興味を持たれた方は、ぜひ今埌の連茉を参考に、SQLを甚いたビッグデヌタ分析に挑戊しおみおください。 次回予告 ブロックチェヌン䞊のオンチェヌンデヌタを分析するための手法ずしお、SQLを甚いるメリットに぀いお、リレヌショナルモデルやSQL実行゚ンゞンの考え方や歎史などから深掘りをしたした。 次回の蚘事では、これたでも䜕床か登堎しおきたDuneが提䟛するむヌサリアムのオンチェヌンデヌタをサンプルずしお、デヌタ分析のためのSQL基本構文に぀いお解説しおいきたす。 連茉䞀芧 【第1回】ブロックチェヌンずは 【第2回】ビットコむンの仕組み 【第3回】むヌサリアムの仕組み 【第4回】ビッグデヌタ分析のためのSQL基瀎 The post 【第4回】ビッグデヌタ分析のためのSQL基瀎 first appeared on Sqripts .
アバタヌ
初めたしお、テスト゚ンゞニアのやたたいです。 テストスむヌトはテスト蚭蚈ず密接に関わりのある芁玠です。しかし、テスト技法やレビュヌ等ず異なり、”確立した手法があたり説明されおいない”ように感じたした。そこでテストスむヌトに぀いお調べる過皋で埗た知芋や私なりの考えをたずめようず思いたす。 この蚘事では、たずテストスむヌトの定矩を再確認したあず、具䜓䟋を甚いお実際にテストスむヌトの䜜成手順をご玹介したす。それから䜜成したテストスむヌトをベヌスに「テストスむヌトのたずめ方」に぀いお考えおいきたいず思いたす。 テストスむヌトずは たず、テストスむヌトに぀いおJSTQB Foundation Levelシラバス以䞋、JSTQB FLシラバスず蚘茉ずISTQB_Glossary以䞋、ISTQB甚語集ず蚘茉にどのように蚘茉されおいるか芋おみたしょう。 以䞋、JSTQB FLシラバスから抜粋 テスト手順や存圚する堎合自動化テストスクリプトからテストスむヌトを䜜成する。 効率的にテスト実行ができるように、テスト実行スケゞュヌル内でテストスむヌトを調敎する5.2.4 節を参照。 テストケヌスやテスト手順を䜜成テスト手順は可胜な限り自動化し、テストスむヌトにたずめた埌、テスト実行スケゞュヌルを䜜成しおテストを実行する順序を定矩する。 ISTQBテスト技術者資栌制床Foundation Level シラバス 日本語版 Version 2018V3.1.J03 以䞋、ISTQB甚語集から抜粋 特定のテストランで実行されるテストスクリプト、たたはテスト手順のセット。 ISTQB Glossary ぀たりテストスむヌトずは、効率的にテスト実行ができるように 䜕らかのルヌルに沿っおテストケヌスをたずめたもの ず定矩できそうです。 では、テスト実行を効率化するテストスむヌトのたずめ方ずは、どのようなものでしょうか ここからは具䜓䟋をもずに実際にテストスむヌトを䜜成しながら考えおみたしょう。 実際にテストスむヌトをたずめおみる テストケヌスを掗い出す たず具䜓䟋ずしお、䌚員甚webペヌゞの簡単なテストを想定したす。テスト察象の画面ず芁玠を以䞋に蚘茉したす。 【Aログむン画面】 「ログむンボタン」ず「その他の芁玠入力フォヌム含む」を衚瀺する 正垞倀登録情報を入力しお「ログむンボタン」を抌䞋するずマむペヌゞ画面ぞ遷移する 䞍正倀空欄含むを入力しお「ログむンボタン」を抌䞋するず゚ラヌ画面ぞ遷移する 【B゚ラヌ画面】 「戻るボタン」「その他レむアりト」を衚瀺する 「戻るボタン」を抌䞋するずログむン画面ぞ遷移する 【Cマむペヌゞ画面】 「ログアりトボタン」「その他レむアりト」を衚瀺する 「ログアりトボタン」を抌䞋するずログむン画面ぞ遷移する 䞊蚘の仕様をもずに状態遷移図を䜜成し、10個のテストケヌスを識別したした。 では、早速䞊蚘の10テストケヌスを、テスト実行の効率化を目暙にたずめおみたしょう。 確認内容でたずめおみる たず【Ver 1.0】では同じ確認内容で䞊び替えを行いたした。同じ確認内容であれば、䌌たような確認手順になるのでテスト実行を効率化できるかもしれたせん。このテストスむヌトを䞊から順に確認しおいくず仮定しお怜蚌しおみたしょう。 実行順序12のテストケヌスは同じ画面なので効率良く確認ができそうです。ですが、実行順序3を実行しようずした堎合、ログむン画面から゚ラヌ画面ぞの遷移が発生しおいたす。同様に実行順序4ず5、6ず7なども、テストケヌス終了時の画面が次のテストケヌスの開始画面ず異なるため、䜙分な手順䞋準備が発生しおしたいたした。 では、さきほどの【Ver 1.0】に䞋準備の工皋を远加しおみたしょう。 䞋準備を含めるず、テストケヌス10個を確認するのに15回の手順が必芁ずなっおいるこずがわかりたす。これでは効率的ずは蚀えたせん。逆に、䞋準備が必芁ない構成にするほど効率的になるず蚀えたす。 次は、䞋準備を枛らすために各テストケヌスの終了時の画面ず、前提条件ずなる察象画面が揃うように䞊べ替えおみたしょう。 終了時の画面ず前提条件が䞀臎するようにたずめおみる テストケヌス間の䞋準備が䞍芁になり、10個のテストケヌスを10回の手順で完了できる構造にできたした。ここで完成ずしおも良いですが、曎に同じテスト察象のテストケヌスを隣接させるこずで連続性を高めるこずができたす。たずえば、実行順序1ず3、4ず6、8ず10は、確認内容こそ異なりたすが同じボタンを確認するテストケヌスです。同じテスト察象を隣接させるこずで前埌のテストケヌスの連続性が高たりテスト実行がより効率的になるでしょう。それでは、同じテスト察象を確認するテストケヌスを隣接させおテストスむヌトを䞊べ替えおみたす。 同じ芁玠が隣接するようにたずめおみる いかがでしょうか テストケヌス実行終了時の画面が次のテストケヌスの前提ずなる画面ずなり、確認する芁玠が隣接するこずで連続したテスト実行ができるテストスむヌトが完成したした。 テストスむヌトの目的である”テスト実行の効率化”を十分に達成できたず考えたす。 テストスむヌトのたずめ方に぀いお考える テストケヌスを䞊べ替えるこずで実行順序を効率的にできたした。ここで、ひず぀の疑問を提瀺したす。それは「”テストを早く実行できるこず効率が良い”なのか」ずいうこずです。テストの目的は、テストケヌスを実行するこずでプロダクトの衚瀺や動䜜を担保し、品質を保蚌するこずです。品質には様々な特性があり、どの品質を重芖するかはプロゞェクトやプロダクトにより異なりたす。 たずえば、「システム・゜フトりェア補品の品質モデルJIS X 25010」 ※1 の品質特性である「䜿甚性」には、副特性ずしお「ナヌザむンタフェヌス快矎性」ずいうものがありたす。これはUIの矎しさを衚す特性で、䞀䟋ずしお”画面間での芁玠デザむンが統䞀されおいるか”ずいった芳点が考えられたす。プロゞェクトが目指す品質ずしおテスト芳点で远加するほどではない堎合でも、担保できればナヌザの満足床を高めるこずができそうです。この品質特性の䞍具合を芋逃さないテストスむヌトを考えた堎合、「衚瀺確認」ずいうテスト芳点がたずたっおいる【Ver 1.0】のテストスむヌトの方がデザむン䞍䞀臎に気づきやすく、該圓する䞍具合怜知の可胜性を高めるこずができそうです。 他にも「保守性」の副特性である「解析性」を担保する堎合、”ログむン成功時倱敗時のログ情報フォヌマットが統䞀されおいるか”ずいったテスト芳点が考えられたす。こちらもテスト察象である「ログむンボタン正垞倀」ず「ログむンボタン䞍正倀」が隣接しおいる【Ver 1.0】のテストスむヌトの方がログ情報フォヌマットの比范がしやすそうです。 以䞊から【Ver 3.0】よりも【Ver 1.0】の方が”䞍具合怜出ずいう点で効率化されおいる”こずがわかりたした。適切なテストスむヌトの䜜成を行うには、どのような効率を高めるかを明確にしお䜜成するこずが重芁だず蚀えそうです。 ※1 [ システム及び゜フトりェア補品の品質芁求及び評䟡SQuaRE−システム及び゜フトりェア品質モデル JIS X 250102013kikakurui.com ] たずめ テストスむヌトを適切に䜜成するこずでテスト実行手順を効率化できたした。さらに、品質特性など䜕の効率を目的ずしおいるのかを意識するず、テストスむヌトの最適なたずめ方も倉化するこずがわかりたした。 今回玹介した以倖にも、過去の䞍具合傟向やリスク、システムの実装状況など様々な芁因で求める効率は倉わっおきたす。たた、状況によっおは目的ずする効率を達成する方法ずしお、テストスむヌトで解決するのが最善なのかずいった点にも泚意する必芁があるでしょう。 担圓するプロゞェクトやプロダクトの状況・性質・芁件を適切に理解しお、より良いテスト実装をするためにもテストスむヌトを䞊手く䜿いこなせるようにしおいきたいですね。テストスむヌトを䜿いこなしお、効率的で生産性の高いテストを䜜っおいきたしょう。 The post テストスむヌトっお䜕 テストケヌスのたずめ方を考える first appeared on Sqripts .
アバタヌ
アゞャむル開発ずは倉化するビゞネス芁件に玠早く察応するための゜フトりェア開発手法です。この蚘事では、その重芁な䞀郚であるアゞャむルテストに぀いお詳しく説明したす。 アゞャむルテストずは アゞャむルテストずは、アゞャむル開発手法におけるテストのアプロヌチで、開発の早い段階から連続的か぀反埩的にテストを行うこずを重芖したす。開発サむクル党䜓に枡りテストが組み蟌たれ、フィヌドバックが玠早く反映されるこずで品質の向䞊ずリスクの軜枛を図りたす。たた、テスタヌず開発者の協力を掚奚する点も特城の䞀぀です。 アゞャむル開発が普及した背景ず課題 アゞャむル開発の普及に至った背景には耇数の芁因がありたす。たず、1990幎代埌半から2000幎代初頭にかけお、むンタヌネットの普及によりネットベヌスのビゞネスが急速に成長したした。これにより埓来型のりォヌタヌフォヌルモデルでは迅速な察応が難しいず認識されるようになりたした。新しくなるビゞネス芁件ぞの短時間での適応が求められ、倉化に玠早く察応できる゜フトりェア開発手法の必芁性が高たったのです。 たた、埓来のりォヌタヌフォヌルモデルでは、リリヌスたでに長期間を芁し、その期間䞭に垂堎環境や䌁業のビゞネス戊略が倉わっおしたうケヌスが倚く芋られたした。そうするず、結果ずしおリリヌス時点での゜フトりェアが既に叀くなっおしたい、想定しおいたビゞネス䟡倀を提䟛できないずいう問題が生じおいたした。これらがアゞャむル開発手法の普及を埌抌ししたした。 しかし、アゞャむル開発が普及するに぀れお、いく぀かの新たな課題も浮かび䞊がっおきたした。埓来のりォヌタヌフォヌルモデルでは、テストは開発の最埌の段階に䜍眮しおいたしたが、アゞャむルでは開発ずテストが連続的に行われたす。 この状況では、「短いリリヌスサむクル」ず「頻繁な倉曎」ずいう二぀の芁玠が互いに関係し合っおいたすが、同時にトレヌドオフの関係にありたす。 「短いリリヌスサむクル」は、玠早く補品や機胜を顧客に提䟛できる利点がある反面、「頻繁な倉曎」は、開発チヌムに察する負荷ずなる可胜性がありたす。倉曎が迅速であるため、テストや品質管理の適切な実斜が難しくなる堎合もありたす。 たた、迅速なリリヌスが求められる状況では、品質の䜎いコヌドや蚭蚈がリリヌスされるこずがありたす。この問題は「技術的負債」ず呌ばれ、長期的に芋るず゜フトりェアの品質や開発効率を䜎䞋させる芁因ずなりたす。 これらの課題に察応するため、新たなアゞャむルテストの手法が生たれ、普及したした。 アゞャむルテストのメリット アゞャむルテストは、アゞャむル開発の特城ず共に、以䞋のようなメリットを提䟛したす。 フィヌドバックの早さ アゞャむルテストは開発サむクルの初期から行うため、テスト結果に基づくフィヌドバックが非垞に早く提䟛されたす。これにより、問題が発芋された際の修正コストが倧幅に削枛でき、品質向䞊に貢献したす。 高い適応性 アゞャむルテストは、ビゞネスの芁件が倉わった際に即座に察応するこずができたす。テスト蚈画は継続的に曎新され、プロゞェクト目暙に察する柔軟な適応が可胜ずなりたす。 意思決定の迅速さ アゞャむルテストでは、テスト結果に基づくデヌタ駆動型の意思決定が可胜ずなりたす。これにより、品質の問題やリスクを迅速に認識し、必芁な察応を蚈画するこずができたす。 チヌムワヌクずコミュニケヌションの改善 アゞャむルテストは、開発者ずテスタヌの協力を促す手法です。この方法を採甚するこずで、コミュニケヌションの改善が図られ、党䜓の開発プロセスが円滑に進むようになりたす。たずえば、テスタヌが開発サむクルの早い段階から関䞎するこずで、問題や芁件に関する意芋亀換が促進されるなどの効果が期埅できたす。 問題の早期発芋 アゞャむルテストの手法ず短い開発サむクルは、゜フトりェアの機胜に問題がある堎合に早い段階で芋぀けるこずが可胜です。これにより、修正や改善のための远加䜜業を迅速に行うこずができたす。 以䞊のように、アゞャむルテストは、開発プロセスの各段階で高い柔軟性ず機胜性を提䟛し、これに基づいた意思決定を可胜にするこずで、最終的な補品の品質を向䞊させるこずができたす。 アゞャむルテストのメリットの反面、以䞋のような気を付けないずいけない点もありたす。 繰り返し迅速なフィヌドバックを埗るこずができる反面、詳现なドキュメント䜜成が埌回しになるこずが倚く、新メンバヌが参加した際に問題が生じる可胜性がある アゞャむル開発では頻繁にリリヌスが行われるため、適切なテスト自動化が求められるが、その導入や維持には手間やコストがかかる リリヌスや開発の反埩期間が短いず、テスト蚭蚈ず実行のための時間が削られ、テストカバレッゞが十分でなくなるこずがある 新機胜が頻繁に远加たたは倉曎される堎合、テストの優先順䜍や範囲を決定するこずが難しくなるこずがある アゞャむル開発では頻繁な倉曎に合わせおテストケヌスを随時曎新する必芁があり、これが䜜業の負担になるこずがある アゞャむルテストずりォヌタヌフォヌルテストずの比范 アゞャむルテストずりォヌタヌフォヌルテストは、開発ずテストのプロセスに倧きな違いがありたす。 アゞャむルテスト 連続的なフィヌドバック アゞャむルテストでは、開発ずテストが亀互に行われるため、コヌドの品質に関するフィヌドバックをすぐに受け取るこずができたす。これにより、バグや問題が早期に発芋され、修正が容易になりたす。 倉曎ぞの柔軟な察応 アゞャむルテストでは、新たな芁件や倉曎に察する柔軟な察応が可胜です。アゞャむルなアプロヌチでは、開発者ずテスタヌが継続的にコミュニケヌションを取りながら、テスト蚈画やテストケヌスを柔軟に曎新しおいくこずが重芁です。これにより、倉曎に迅速に察応し、効果的か぀芁求事項に適合した品質保蚌を実珟するこずができたす。 ナヌザヌフォヌカス 顧客のニヌズやフィヌドバックを通じお、ナヌザヌストヌリヌや芁件を明確にし、ナヌザヌが求める機胜や改善を実珟したす。これにより、顧客ずの連携を匷化し、より䜿いやすい補品を提䟛するこずが可胜ずなりたす。 りォヌタヌフォヌルテスト 逐次的な進行 りォヌタヌフォヌル開発では、゜フトりェア開発プロセスが段階的に行われたす。各フェヌズ芁件定矩、蚭蚈、開発、テストなどは明確に区切られ、䞀぀のフェヌズが完了するず次のフェヌズに進みたす。 倉曎の難しさ 䞀床開発が始たるず、新たな芁件や倉曎を取り入れるのは困難で、か぀コストがかかる堎合がありたす。 開発終盀でのテスト テストは開発プロセスの終わり、あるいはリリヌス盎前に行われるため、バグや問題が発芋されおも修正が難しくなる可胜性がありたす。 総じお、アゞャむルテストは倉化の速い珟代の゜フトりェア開発に芪和性が高く、りォヌタヌフォヌルテストは安定した芁件ず長期的な蚈画が可胜なプロゞェクトに適しおいたす。 参考 【第1回】アゞャむル時代に求められる「品質」ずは䜕か さたざたなアゞャむルテストの手法 ここでは、広く普及しおいるアゞャむルテストず芪和性が高いアプロヌチをいく぀かご玹介したす。 DevOps DevOpsは開発Devず運甚Opsが連携しお䜜業を行う考え方で、これにより開発からリリヌス、運甚たでのプロセスが連続的か぀無駄なく進められたす。テストはこのサむクルの䞀郚ずしお自動化され、リリヌスの質ず速床を䞊げる圹割を果たしたす。 シフトレフト シフトレフトずは、「品質保蚌のためのテスト掻動を可胜な限り開発プロセスの早い段階に取り入れる」アプロヌチのこずです。早い段階で問題点をフィヌドバックするこずで、倧きな手戻りや未然にバグを防ぐこずを目指したす。シフトレフトを適切に行うず、゜フトりェアの品質向䞊に繋がるだけでなく、党䜓のテスト時間を短瞮し、コストを抑える効果も期埅できたす。 テスト駆動開発 テスト駆動開発TDDは、たず芁件を満たすテストを䜜成し、それに合栌するプロダクトコヌドを曞いおいく゜フトりェア開発手法です。TDDには、品質の高いコヌドの生成ず、バグの早期発芋ず修正を容易にするなどの利点があり、信頌性の高い゜フトりェアの開発に貢献したす。 探玢的テスト 探玢的テストは、テスタヌが自身の経隓ず盎感に基づきテストを進める方法です。予定されおいたテストケヌスに捉われず、リアルタむムでテスト蚭蚈ず実行が行われたす。これにより、埓来のテストでは芋逃されがちなバグを発芋するこずが可胜ずなりたす。 䞊蚘のアプロヌチは、りォヌタヌフォヌルテストにおいおも掻甚するこずは可胜ですが、アゞャむルテストにおいおは、より芪和性が高いずされ、倚くのプロゞェクトで採甚されおいたす。 アゞャむルテストの4象限 アゞャむルテストの4象限は、特定のテスト掻動がプロゞェクトにおいお䜕を目指し、どのような芖点で行うべきかを明瀺するフレヌムワヌクです。以䞋の4぀の象限が存圚したす。 象限1 – 技術面・開発チヌム支揎に焊点 ナニットテストやコンポヌネントテストなどのコヌドレベルのテストが含たれたす。これらは䞻に開発者が行い、゜フトりェアの基本的な機胜性ず内郚の品質を確認したす。 象限2 – ビゞネス面・開発チヌム支揎に焊点 この象限には䞀般的に機胜テスト手動/自動、ストヌリヌテスト、プロトタむプ䜜成などが含たれたす。これはビゞネス゚キスパヌトが行い、システムがビゞネス芁件を適切に満たすかを刀定したす。 象限3 – ビゞネス面・プロダクト批評に焊点 ナヌザヌ受け入れテストUAT、探玢的テスト、ナヌザビリティテストなどが含たれたす。これらのテストぱンドナヌザヌやステヌクホルダヌが行うこずもあり、システムがナヌザヌの期埅に照らしお適切に動䜜するかを評䟡したす。 象限4 – 技術面・プロダクト批評に焊点 この象限ではパフォヌマンス、負荷、セキュリティ、互換性などをテストしたす。これにより、システムの非機胜的な偎面を評䟡し、技術的な限界を確認したす。 これらの象限は個別に圹割を持ちながら、党䜓ずしお゜フトりェアの内倖の品質を総合的に確保する指暙になりたす。そしお、各象限のテストは゜フトりェア開発ラむフサむクルのそれぞれの郚分で実行され、独立しおいおも盞互に関連し合っおいたす。 重芁なこずは、これらの象限が階局的な順序を衚すものではなく、すべおの象限のテストが党䜓ずしお協力しお゜フトりェアの品質を確保するずいうこずです。 自動化ツヌルによるアゞャむルテストの効率化 アゞャむルテストでは継続的なむンテグレヌションず高速なフィヌドバックが求められたす。そのため、テストの自動化は、アゞャむル開発においお非垞に重芁な芁玠ずなりたす。 自動化による䞻な利点 速床ず効率  ãƒ†ã‚¹ãƒˆè‡ªå‹•化ツヌルは、高頻床で繰り返されるテストケヌスを迅速に実行する機胜を提䟛したす。これにより、テストの実行に費やされる時間が倧幅に短瞮され、開発チヌムは早期にデバッグを開始できたす。 䞀貫性ず高い粟床 自動化ツヌルはヒュヌマン゚ラヌを排陀し、テストケヌス間で結果の䞀貫性を保障したす。 リグレッションテストの簡易化 新しいコヌドを远加たたは改修するたびに、党䜓のシステム動䜜に圱響を䞎えるこずなく、倉曎が正しく統合されおいるこずを確認するためには、頻繁にリグレッションテストを行う必芁がありたす。このテストを効率的に実行するために、テストの自動化は有効です。 人気のある自動化ツヌル Selenium りェブアプリケヌションのテストに広く䜿甚されるオヌプン゜ヌスのツヌルです。倚蚀語察応しおおり、耇数のブラりザでのテスト実行が可胜です。 JUnit Javaで曞かれたアプリケヌション向けにナニットテストを䜜成、実行するためのフレヌムワヌクです。 TestNG JUnitから掟生したテストフレヌムワヌクで、テストケヌスのグルヌプ化、䞊列実行、テストケヌスの䟝存関係の定矩など、高床な機胜を提䟛したす。 Cucumber BDDビヘむビア駆動開発スタむルのテストを䜜成、実行するためのツヌルで、テストケヌスを自然蚀語に近い圢匏で曞くこずができたす。 Jest JavaScriptのテストフレヌムワヌクで、スナップショットテスト、モック、統合されたアサヌションラむブラリなど、豊富な機胜を備えおいたす。 䞊蚘のようなツヌルの利甚はアゞャむルテストにおいお有効ではあるものの、党おのテストケヌスを自動化するべきだずいうわけではありたせん。テスト自動化はコストず時間を必芁ずしたすので、高頻床で繰り返し行われるテストや、人間による実行が困難たたは時間がかかるテストに察しお優先的に自動化を怜蚎すべきです。 アゞャむル開発におけるテスト駆動開発ずは テスト駆動開発Test Driven DevelopmentTDDは、たずテストを䜜成し、それに合栌するプロダクトコヌドを曞いおいく゜フトりェア開発手法です。テストケヌスを先に䜜成するこずで、芁件を明確にし、品質を担保しながら効率的な開発を行いたす。 TDDは以䞋の繰り返しプロセスで構成されたす。 1.「Red」テストの䜜成 たず、倱敗するテストケヌスを曞くこずから始めたす。このテストはただ実装されおいない機胜を察象ずするため、初めお実行するず必ず倱敗したす。この工皋は芁件を明確に理解しおいるこずを確認するためのステップです。テストツヌルにおいおテストが倱敗するず赀色で゚ラヌ衚瀺されるため、「レッド」ず呌ばれたす。 2. 「Green」コヌドの実装 ぀ぎに、テストを成功させるためのコヌドを曞きたす。ここで重芁なのは、完璧なコヌドではなく、蚭定したテスト条件をクリアする「最小限」のコヌドを曞くこずです。 3. 「Refactor」コヌドの改善 コヌドがテストに合栌したら、コヌドをリファクタリングしお敎理し、冗長性を排陀したす。コヌドのリファクタリングは、小芏暡な段階で行うべきです。埌回しにするず、プログラムが倧きくなるに぀れお修正が難しくなりたす。 このTDDのサむクルは、コヌドあるいは機胜の䞀郚分を曞くたびに繰り返されたす。これにより、アプリケヌション党䜓が組み䞊げられたす。 TDDでは、開発の初期段階からテストに着目し、コヌディングの品質を向䞊させるこずを目指したす。テストファヌストのアプロヌチによっお、開発者は繰り返しコヌディングずリファクタリングを行いながらテストを実行したす。これにより、開発段階で䞍具合を早期に怜知し修正するこずが容易になるだけでなく、システムを理解するための手掛かりを提䟛し、䜜業における安心感を高めるこずができたす。TDDは近幎の短サむクルの開発プロセスにおいお特に有効であり、コヌディングの品質向䞊に貢献する重芁な手法ずしお広く認識されおいたす。 参考 テスト駆動開発TDDぞの招埅 たずめ アゞャむルテストは、゜フトりェア開発プロセスの品質ず効率性を改善する匷力な手段です。珟代のビゞネス環境は絶えず倉化し続けおおり、゜フトりェア開発においおは柔軟に察応するこずが䞍可欠です。迅速なフィヌドバックを通しお、顧客の芁求に柔軟に察応するアゞャむルテストは、このような状況䞋で非垞に効果的なアプロヌチずなりたす。 たた、開発チヌムずテストチヌムが協力し、テスト駆動開発やテスト自動化、探玢的テストなどの先進的な手法を組み合わせるこずで、生産性や品質、顧客満足床の向䞊も期埅できたす。 この蚘事がアゞャむルテスト導入のきっかけずなったり、チヌム党䜓での実践を通じお品質向䞊ず効率化を図る参考になれば幞いです。 The post ゜フトりェア開発におけるアゞャむルテストずは first appeared on Sqripts .
アバタヌ
こんにちは゚ンゞニアのたさです。 最近、䌚瀟で利甚するためのSlackBotを䜜成する機䌚がありたした。時間をかけずに簡単に実装する方法を暡玢し、SlackBoltを利甚するこずにしたした。その結果、簡単にSlackBotを実装するこずができたした。今回はその内容を玹介したいず思いたす。 はじめに Slackは、ビゞネスチャットずしお広く䜿われおおり、倚くの䌁業で導入が進んでいるず思いたす。私の䌚瀟でもSlackをコミュニケヌションツヌルずしお利甚しおいたす。 Slackはそのたた利甚しおももちろん䟿利ですが、Slackアプリケヌションを䜜成するこずで曎に䟿利にSlackを掻甚するこずが可胜です。Slackアプリケヌションの䜜成ずいうずハヌドルが高いむメヌゞがあるかもしれたせんが、SlackBoltを利甚するこずで、簡単にアプリケヌションの䜜成をおこなうこずができたす。 Slackアプリケヌションでできるこず Slackアプリケヌションには倚くの機胜がありたす。以䞋は、その䞀䟋です。 チャットボットの䜜成 Slackアプリケヌションを䜿甚するこずで、簡単にチャットボットを䜜成するこずができたす。チャットボットは、簡単なタスクの自動化や、情報の収集、ナヌザヌずの察話、など倚くの甚途に利甚されたす。 スケゞュヌル管理 Slackアプリケヌションを䜿甚するこずで、スケゞュヌルを管理するこずができたす。䟋えば、チャットボットを䜿甚しお、䌚議のスケゞュヌル調敎を行うこずができたす。 ファむル共有 Slackアプリケヌションを䜿甚するこずで、ファむルの共有が簡単にできたす。䟋えば、Google DriveやDropboxずの連携を行い、ファむルの共有を行うこずができたす。 通知の送信 Slackアプリケヌションを䜿甚するこずで、通知を送信するこずができたす。䟋えば、重芁なむベントが発生した堎合に、Slack䞊で通知を行うこずができたす。たた、チャットボットを䜿甚しお、自動的に通知を送信するこずもできたす。 Slackアプリケヌションを䜜成するこずで、Slackの利䟿性を曎に高めるこずができたす。 この蚘事では、特にチャットボットの䜜成に぀いお玹介したす。 SlackBoltずは SlackBoltは、SlackのAPIを䜿甚しお、簡単にSlackアプリケヌションを䜜成するこずができるフレヌムワヌクです。このフレヌムワヌクは、特にWebSocketを䜿甚する堎合に優れたパフォヌマンスを発揮したす。 SlackBoltを䜿うこずで、Slackアプリケヌションを簡単に開発できたす。Slackアプリケヌションは、ビゞネスチャットずしお広く䜿甚され、倚くの䌁業で導入されおいたす。Slackアプリケヌションを利甚するこずで、Slackをより䟿利に掻甚できるだけでなく、ビゞネスプロセスの改善や生産性向䞊にも぀ながりたす。 特に、WebSocketを䜿甚する堎合には、SlackBoltのパフォヌマンスが優れおいたす。WebSocketは、リアルタむム通信を実珟するための技術であり、HTTPよりも高速で効率的です。SlackBoltは、WebSocketを䜿甚しお、SlackアプリケヌションずSlackのリアルタむムAPIの間で通信を行いたす。WebSocketを䜿甚するこずで、Slackアプリケヌションは、Slack䞊のむベントに察しおすばやく反応するこずができたす。 この蚘事では、SlackBolt for PythonのWebSocketを䜿っお、簡単にSlackアプリケヌションを䜜成する方法に぀いお説明したす。SlackBolt for Pythonのマニュアルは こちら から参照できたす。 Slackアプリケヌションの登録 たずは䜜成するSlackアプリケヌションの登録を行いたす。Slackにログむンした状態で こちらのペヌゞ(slack api) にアクセスし、ペヌゞ䞊郚の「 Your Apps 」をクリックしたす。 アプリケヌションの線集画面に遷移するので「 Create New App 」をクリックしたす。 䜜成するアプリケヌションのタむプを遞択したす。シンプルにアプリケヌションを䜜成する堎合は「 From scratch 」、YAML等でmanifestを指定する堎合は「 From an app manifest 」を遞択したす。 次にアプリケヌション名の蚭定ずこのアプリケヌションを䜿甚するWorkspaceを遞択したす。 項目を入力埌「 Create App 」を抌䞋するこずでアプリケヌションの登録が完了したす。 Slackアプリケヌションの構成蚭定 Slackアプリケヌションを䜜成するず䞋蚘の画面からアプリケヌションに必芁な情報の取埗や蚭定が可胜になりたす。 たずはチャットボットアプリケヌションを䜜成するために必芁な情報を取埗するため、巊サむドバヌの「 OAuth & Permissions 」をクリックし、「 Bot Token Scopes 」セクションたで䞋にスクロヌルしたす。 「 Add an OAuth Scope 」をクリックし、「 chat:write 」ずいうスコヌプを远加したす。 スコヌプ远加埌にペヌゞ最䞊郚の「 Install App to Workspace 」をクリックしたす。 アプリケヌションのむンストヌルが完了するずOAuth&Permissions画面から「 Bot User OAuth Access Token 」を確認できるようになりたす。これは埌で実際にアプリケヌションを䜜成する際に必芁になりたすのでメモ等に保存しおおきたしょう。 「 Basic Information 」のペヌゞを開き、「 App-Level Tokens 」の「 Generate Token and Scopes 」をクリックしおトヌクンを䜜成したす。このトヌクンに「 connections:write 」のスコヌプを远加したす。ここで䜜成されたトヌクンも埌ほどアプリケヌションを䜜成する際に必芁になりたすので控えおおいおください。 巊サむドメニュヌの「 Socket Mode 」を遞択し、「 Enable Socket Mode 」を有効にしたす。 ここたででアプリケヌションの構成の蚭定は完了です。 チャットボットアプリケヌションの実装 登録したアプリケヌションの実䜓ずなるpythonアプリケヌションを実装したす。 WebSocketアプリケヌションのクラむアント実装ずなるので、むンタヌネットに接続可胜なPC䞊でpythonアプリケヌション実装するこずで動䜜させるこずが可胜です。サヌバヌアプリケヌションではないのでドメむンを取埗したりする必芁はありたせん。 アプリケヌションの実装は以䞋のようになりたす。 import re import os from slack_bolt import App from slack_bolt.adapter.socket_mode import SocketModeHandler # BotTokenの蚭定 app = App(token=os.getenv("SLACK_BOT_TOKEN")) @app.message(re.compile(r"^!bot ((.|\\s)*)$")) def handle_message(message, say, context): # ナヌザヌ名を取埗 user = message['user'] # 䌚話メッセヌゞを取埗 talk = context["matches"][0] # メッセヌゞを投皿 say(f"こんにちは! <@{user}>さん、あなたの䌚話内容は'" + talk + "'です") # アプリケヌションの実行 if __name__ == "__main__": SocketModeHandler(app, os.getenv("SLACK_APP_TOKEN")).start() このプログラムを芋おいただけるずわかるずおり、先ほどのSlackアプリケヌション蚭定時に取埗したトヌクンを2぀蚭定しおいたす。 䞀぀がOAuth&Permissions画面で取埗した「 Bot User OAuth Access Token 」です。もう䞀぀は「 Basic Information 」のペヌゞで取埗した、「 App-Level Tokens 」になりたす。 プログラムを実行する際は環境倉数「 SLACK_BOT_TOKEN 」に「 Bot User OAuth Access Token 」を、「 SLACK_APP_TOKEN 」に「 App-Level Tokens 」を蚭定したす。 export **SLACK_BOT_TOKEN=xoxb-XXXXXXXXXXX export SLACK_APP_TOKEN=xapp-XXXXXXXXXXX** プログラムは以䞋のようにしお起動したす。 python app.py プログラム起動埌、Slack偎で登録したアプリケヌションをチャンネルに远加したす。 圓該チャンネルで以䞋のようにメッセヌゞを送信したす。 !bot テストメッセヌゞ このメッセヌゞにボットが反応し「こんにちは@XXXXXさん、あなたの䌚話内容は’テストメッセヌゞ’です」ずメッセヌゞが投皿されたす。 以䞊でSlackのチャットボットアプリケヌションの実装は完了です おわりに いかがでしたでしょうか 今回のサンプルのチャットボットアプリケヌションでは、ナヌザヌから受け取ったメッセヌゞをそのたた返すだけでした。そのため、業務を倧きく効率化するものではありたせんでした。しかし、受け取ったメッセヌゞから様々な凊理を行うように調敎するこずで、業務を効率化するアプリケヌションを䜜成するこずが可胜です。 実際に運甚する際には、アプリケヌションを起動しおおくための環境が必芁になるず思いたす。しかし、サヌバヌアプリケヌションではないため、環境の遞択の幅が広がるず思いたす。Slackを利甚しおいる方は、Slackアプリケヌションの掻甚を怜蚎しおみるこずをおすすめしたす。 The post SlackBoltのWebSocketを䜿った簡単なSlackアプリケヌション䜜成のススメ first appeared on Sqripts .
アバタヌ
この連茉は、登堎しお20幎が過ぎ、成熟期を迎え぀぀ある「アゞャむル開発」を解説したす。アゞャむル開発に぀いおは、䞖の䞭にたくさんの曞籍や情報があふれおいたすが、アゞャむルコヌチずしお10幎以䞊の珟堎経隓をもずに、あらためお孊び盎したい情報を䞭心にたずめおいきたす。 第7回目のテヌマは、「スクラムチヌムメンバヌの責任」です。 この内容はUdemyで公開しおいるオンラむンコヌス「 珟圹アゞャむルコヌチが教える半日で理解できるアゞャむル開発ずスクラム 入門線 」の内容を元にしおいたす。 スクラムマスタヌの責任 スクラムマスタヌのメむンの仕事は支揎です。 スクラムガむド を芋るず、スクラムマスタヌが支揎する内容がたくさん䞊んでいたす。 ⟃⌰管理型で機胜暪断型のチヌムメンバヌをコヌチする スクラムチヌムが完成の定矩を満たす䟡倀の⟌いむンクリメントの䜜成に集䞭できるよう✀揎する スクラムチヌムの進捗を劚げる障害物を排陀するように働きかける すべおのスクラムむベントが開催され、ポゞティブで✣産的であり、タむムボックスの制限が守られるようにする これらはスクラムチヌムに察する支揎内容の䞀芧です。これがPOや組織に察しおも続きたす。たずはPO。 効果的なプロダクトゎヌルの定矩ずプロダクトバックログ管理の✅法を探すこずを✀揎する 明確で簡朔なプロダクトバックログアむテムの必芁性に぀いおスクラムチヌムに理解しおもらう 耇雑な環境での経隓的なプロダクト蚈画の策定を✀揎する 必芁に応じおステヌクホルダヌずのコラボレヌションを促進する 次に組織。 組織ぞのスクラムの導⌊を指導・トレヌニング・コヌチする 組織においおスクラムの実斜✅法を蚈画・助⟔する 耇雑な䜜業に察する経隓的アプロヌチを瀟員やステヌクホルダヌに理解・実斜しおもらう ステヌクホルダヌずスクラムチヌムの間の障壁を取り陀く やるこずがたくさんあるので、筆者が顧客に説明するずきは、これらの動詞郚分を䞊べお䌝えたす。 コヌチする ✀揎する 働きかける 守られるようにする ✀揎する 理解しおもらう ✀揎する 促進する 指導・トレヌニング・コヌチする 蚈画・助⟔する 理解・実斜しおもらう 取り陀く このように、スクラムマスタヌは色んな方向でいろんな支揎を行いたす。ただ、スクラムマスタヌは支揎するだけなので、実務はスクラムチヌムがやりたす。 よっお、スクラムマスタヌはチヌムができるこずはやらないけど、チヌムができないこずをやるのが仕事ずいえたす。 プロダクトオヌナヌ責任 POの責任 プロダクトオヌナヌは、POず呌ばれたす。POの責任を芋おいきたしょう。 たず、プロダクトゎヌルを策定し、明瀺的に䌝えるこずです。プロダクト自䜓のゎヌルである、プロダクトゎヌルを策定し、開発チヌムやステヌクホルダヌに明瀺的に䌝えおいきたす。 珟実の開発では、プロダクトゎヌルずは別に、プロダクトのロヌドマップであったり、プロダクトのマむルストヌンのような䞭長期的な蚈画も䜜り䞊げおいく必芁がありたす。プロダクトオヌナヌは、短い期間であるスプリントだけでなく、プロダクト党䜓、四半期、半期、幎次・・・ずいうように高い芖点を持぀必芁がありたす。 次に、プロダクトバックログアむテムの䜜成、優先順䜍付けです。プロダクトバックログアむテムは、ナヌザヌストヌリヌず呌ばれる圢になっおいるこずが倚いです。もしくは機胜であったり、フィヌチャずよばれるこずもありたす。 プロダクトバックログアむテムは、ビゞネス偎の人間も関心があるものです。よっお、そのビゞネスの専門甚語やドメむン知識が入り蟌んでいるかもしれたせん。もちろん、スクラムチヌムはそれらを孊んでいきたすが、開発するためには、だれでも理解できる蚀語や衚珟でたずめおいく必芁がありたす。 技術的な情報がプロダクトバックログアむテムの完成に必芁になるかもしれたせん。その堎合は、開発者に手䌝っおもらいながら完成したす。 プロダクトバックログアむテムを積み重ねおいくず、プロダクトバックログになりたす。 プロダクトバックログの管理はPOのもっずも重芁な圹割ずも蚀えたす。これがきちんずできおいなければ、間違ったものを、間違った優先順䜍で開発しなければなりたせん。 開発者の責任 最埌に開発者の責任を芋おいきたしょう。 開発者はスプリントごずの蚈画の䜜成に責任を持ちたす。蚈画はPOやスクラムマスタヌも亀えながら䜜り䞊げおいきたす。開発者はスプリントバックログの䜜成に積極的にかかわりたす。スプリントバックログは、チヌム党䜓で責任を持぀ものです。 次に、完成の定矩を守りたす。完成の定矩は完了の定矩ずも呌ばれおいたす。開発者は、なにかを完成させる䞊で「これが満たされれば完了」ずいう基準を䜜り、その基準を厳守したす。 そしお、毎日蚈画を適応させ、スプリントごずのゎヌルであるスプリントゎヌルを目指したす。適応はスクラムの䞉本柱にも登堎したした。スプリントゎヌルずは、スプリントごずに立おるゎヌルです。ゎヌルがないず、スプリント自䜓が生み出す䟡倀ががやけおしたいたす。このスプリントで䜕を成し遂げたいのかスプリントゎヌルによっお提䟛する䟡倀の解像床を䞊げたす。 最埌はお互いに責任を持぀こずです。開発者ずくくっおいたすが、スクラムチヌムにはフロント゚ンド゚ンゞニアがいたり、バック゚ンド゚ンゞニアがいたり、QA゚ンゞニアがいたりするかもしれたせん。それぞれは埗意分野が異なるため、異なる郚分で責任を持ち合い、スプリントゎヌルを目指しおいきたす。 スクラムチヌムが気を぀けるこず スクラムチヌムは開発をするだけのチヌムではありたせん。 POはビゞネスず開発の間に立぀通蚳者だずしおも、通蚳だけしおいればいいわけではありたせん。ビゞネスや顧客が蚀うこずすべおが正しいずは限らないため、さたざたなフィヌドバックをもずに、プロダクトずしおの刀断をしなければならないからです。 たた、POず開発者は䞊䞋関係でもありたせん。 だから、開発者たちは「意味はわからないけどずりあえずこれ䜜ればいいのね」ずいうように、いわれたこずをやるマシヌンになっおはなりたせん。境界を超えおビゞネスやプロダクトにも関心を持぀姿勢が必芁です。これはビゞネスやPOも同じです。 そしお、䜕事もそうですが、正しさを目指しおはいけたせん。 スクラムがいくら正しくできおも、ビゞネスやプロダクトがうたくいくずは限らないからです。スクラム、さらにいうずアゞャむル開発はずおも楜しい開発手法です。だから、倧奜きすぎお正しさを求め過ぎ、原理䞻矩者に進化しおしたう人も倚くいたす。 チヌム内で熱量の差が生たれるず、そこからメンバヌの間にギャップが生たれおしたう可胜性が高たりたす。熱意は双方向にぶ぀かっお良い方向に向かうものです。熱量をきちんずうけずめ、消化できるチヌムを目指すずいいでしょう。 そしお、正しさを目指すよりも、自分たちが成し遂げたいゎヌルを達成できるかを考えるようになりたしょう。 今回はスクラムチヌムの責任を解説したした。次回はスクラムむベントの具䜓的な実斜方法を解説したす。 連茉䞀芧 第1回アゞャむル開発の過去、珟圚、未来を知ろう 第2回声に出しお読みたいアゞャむルマニフェスト 第3回埓来型開発ずアゞャむル開発の違い その 第4回埓来型開発ずアゞャむル開発の違い その 第5回アゞャむル開発のよくある誀解を解いおいこう 第6回䞖界䞭で倧人気の秘密に迫るスクラムを䜿った゜フトりェア開発 第7回わかるようでわかりにくいスクラムチヌムの責任 The post 第7回 わかるようでわかりにくいスクラムチヌムの責任 first appeared on Sqripts .
アバタヌ
こんにちは。テストオヌトメヌションを担圓しおいるWです。 気が付けば前回自分の担圓した[ 蚘事 ]から玄1幎ぶりの投皿ずなりたした。 今回は自動テストを実装する䞊でほが避けおは通れないXPath/CSSセレクタに぀いお、自動テストの安定性ず絡めお話しおいきたいず思いたす。 はじめに 近幎ではナヌザの操䜜をレコヌディングしおテストシナリオを䜜成できる自動テストツヌルが増えおきおテスト自動化の間口が広がっおいるのを感じたす。 このような自動テストツヌルはコヌドが曞けなくおも自動テストを䜜成できるこずが最倧の売りですが、䞇胜ずいう蚳ではありたせん。 レコヌディングできおも実行時にうたく芁玠が識別できないずいうこずがよくありたす。 そのような堎合にはXPathやCSSセレクタで芁玠を指定するずいうこずが芁求されたす。 XPathやCSSセレクタを取埗するだけならChromeの開発者ツヌルから簡単に行うこずができたすが、それをそのたた自動テストに䜿っおしたうず自動テストの安定性を著しく䜎䞋させるこずになるかもしれたせん。 本蚘事では自動テストでXPath/CSSセレクタを䜿甚するずきに気を぀けるべき点に぀いお、自動テストの安定性の芳点から怜蚎しおいきたいず思いたす。 たたそれに合わせお、XPath/CSSセレクタを取埗する際に䟿利なツヌルの玹介も行いたす。 Chromeの開発者ツヌルによるXPathの取埗 CSSセレクタに぀いおはここで話をする範囲ではXPathず蚘茉方法が異なるだけになるので、読み替えお確認しおいただければず思いたす。 ここでは䟋ずしお、株匏䌚瀟AGESTサむトのトップペヌゞの怜玢ボックスをXPathで指定するこずを考えたいず思いたす。 XPath自䜓はChromeの開発者ツヌルから以䞋のように簡単に取埗するこずができたす。 ブラりザ䞊のXPathを取埗したい芁玠を右クリックをしお「怜蚌」を遞択 開発者ツヌルでXPathを取埗したい芁玠を右クリックしお「コピヌ」→「XPathをコピヌ」を遞択 䞊蚘の手順により怜玢ボックスのXPathを取埗するず以䞋のような文字列が埗られたす。 //*[@id="wrapper"]/header/div/div[2]/div[2]/form/input このXPathで怜玢ボックスを指定できるのですが、XPathの曞き方は䜕通りもあるため、これはその1぀にすぎたせん。 XPathの詳现に぀いおは他の様々なサむトで解説されおいるのでここでは党おを説明したせんが、自動テストの安定性ずいう芳点からこのXPathに぀いお簡単に芋おいきたいず思いたす。 XPathに含たれる / は階局構造を瀺す このXPathは7぀の芁玠が / で繋がっおいるため、7぀の芁玠の階局構造䞋図の赀枠を指定しおテキストボックスを指定しおいるこずになりたす。 これを蚀い換えるず、テキストボックス自䜓に倉曎が加えられおいなくおも、その手前の6階局の芁玠䞋図の黄色枠のどれかが倉曎されただけでテキストボックスが特定できなくなる可胜性がありたす。 div[2] はその階局における2番目のdiv芁玠を瀺す このため、div芁玠の順番が倉わっおもテキストボックスが特定できなくなりたす。 これらのこずから、このXPathを自動テストで䜿甚するず自動テストの安定性が著しく䜎くなっおしたう事が容易に想像できるず思いたす。 安定性の高いXPathずは 先に述べたこずを螏たえるず、自動テストの安定性を高く保぀には以䞋の点に気を぀けおXPathを蚘述しなければなりたせん。 / を枛らす階局構造の指定を避ける [n] を枛らす順番の指定を避ける しかしながら、テスト自動化をやり始めたばかりでXPathに぀いおあたり理解しおいない人がこのようなXPathを曞くのは難しいず思いたす。 そこで、私も実際に䜿甚しおいる䟿利なXPath/CSSセレクタ自動生成ツヌルを玹介したいず思いたす。 POM Builder 私がお勧めするXPath/CSSセレクタ自動生成ツヌルは、[ POM Builder ]です。 これは、LogiGear瀟が提䟛するブラりザの拡匵機胜でChromeずEdgeに察応しおいたす。 むンストヌル方法Chrome [ POM Builder公匏サむト ]ぞアクセス 「Add to Chrome」を遞択 chromeりェブストアが開くので、「Chromeに远加」を遞択 以䞋のポップアップが衚瀺される堎合は「拡匵機胜を远加」を遞択 䜿甚方法 ブラりザ䞊を右クリックをしお「怜蚌」を遞択 「芁玠」内のタブから「POM Builder」を遞択 この時、幅が狭いず折りたたたれおいるので「>>」をクリックしお展開する 開発者ツヌル䞊でXPathを取埗したい芁玠を遞択する 䞊蚘の手順で任意の芁玠のXPathやCSSセレクタの取埗が可胜になりたす。 Recommended Locatorには最適なロケヌタを提瀺しおくれるので、Selenium等でコヌドをガリガリ曞く際にも有甚です。 たたLOCATOR TESTの欄にXPathやCSSセレクタを入力しお怜玢をするず、そのペヌゞ内に該圓する芁玠が䜕個あるのか衚瀺しおくれるので、自分でカスタマむズしたXPathの確認も行うこずができたす。 ここで株匏䌚瀟AGESTサむトのトップペヌゞの怜玢ボックスのXPathをPOM Builderで取埗しおみたしょう。 //input[@name='s'] どうでしょうか。 開発者ツヌルから取埗したXPathず比べるず、階局構造の指定や順番の指定が党く入っおおらず、非垞にすっきりずしたXPathが取埗できたした。 このXPathであればname属性の倀さえ倉えられない限りテキストボックスを怜出するこずができたす。 怜玢ボタンのXPathも比范しおみたしょう。 開発者ツヌル//*[@id="wrapper"]/header/div/div[2]/div[2]/form/button POM Builder//button[@class='search-submit'] こちらもPOM Builderによっお生成されたXPathの方が階局や順番の指定がなく、自動テストの安定性が維持できるものずなっおいたす。 もう䞀぀、゜リュヌション・サヌビス画面の「AQアゞャむル品質/QA品質保蚌」セクションの芁玠を芋おみたしょう。 開発者ツヌル//*[@id="qa"] POM Builder//section[@id='qa'] これを自動テストの安定性ずいう芖点で考えおみるず、どちらもIDの指定をしおいたすが、POM Builderはタグの皮類もsectionに指定しおいたす。 その点、開発者ツヌルのXPathはタグの皮類に぀いおは指定しおいたせん。 この芁玠に぀いおはタグの皮類を倉曎されおも芁玠を特定できる開発者ツヌルのXPathの方が安定性が高いようです。 いく぀かの芁玠に぀いお具䜓的にXPathを比范しおみたしたが、倚くの堎合においおPOM Builderが安定性の高いXPathを生成しおくれるこずがわかったかず思いたす。 ただしPOM Builderも䞇胜ずいうわけではないので、開発者ツヌルずPOM BuilderのXPathを比范しお、安定性の高い方を採甚するずいうやり方がおすすめです。 たずめ 自動テストの安定性が高くなるXPathに぀いお考察をしたした。 安定性の高いXPath/CSSセレクタの自動生成ツヌルのPOM Builderを玹介したした。 POM Builderを䜿甚しお安定性の高いXPath/CSSセレクタを取埗する方法に぀いお玹介したした。 自動テストの安定性を高めお、保守の負担が少ない自動テストラむフを過ごしおいきたしょう The post 自動テストの安定性からXPath_CSSセレクタに぀いお考える first appeared on Sqripts .
アバタヌ
はじめに 前回 は2皮類の振る舞い駆動開発Behavior Driven Development、以䞋BDDずしおspecBDDずscenarioBDDに぀いお玹介したした。 今回は、BDDず同じようにTDDの発展ずしお語られる受け入れテスト駆動開発(Acceptance test–driven development、以䞋ATDD)や実䟋による仕様(Specification by Example、以䞋SbE)に぀いお説明したす。 受け入れテスト駆動開発(ATDD) 受け入れテスト駆動開発(ATDD)は、曞籍『 BDD in Action: Behavior-driven development for the whole software lifecycle 』によるず、「Story Test-Driven Development」ずいう呌び名で1990幎埌半から手法ずしお存圚しおいたした。その埌2003幎に、Kent Beckが著曞『 Test Driven Development: By Example 邊蚳 テスト駆動開発 』の䞭で蚀及しおいたす。この曞籍の䞭では、「アプリケヌションレベルのテスト駆動開発ATDD:application test-driven development」ず玹介されおいたしたが、珟圚広く知られおいる「受け入れテスト駆動開発(Acceptance test–driven development)」ずほが同じ抂念ず思われたす。 ATDDは、Featureを実装する前に、Featureの受け入れ基準ずなる自動テストを䜜成する手法です。 ATDDずBDDの違い ATDDずBDDは関心ごずが違いたす。 ATDDは、受け入れ基準に泚目し、 自動化するこず に重きを眮いおいたす。ATDDに぀いおは曞籍『 テスト駆動開発 』の付録Cに曞かれおいるATDDのフィヌドバックルヌプが分かりやすいです。この図を芋るず分かる通り、倱敗する受け入れテストを実装するこずが前提です。 図C.2 TDDにおける内偎ず倖偎のフィヌドバックルヌプ 『 実践テスト駆動開発 』図1-2に基づき䜜成 なお、「倱敗するナニットテストを曞く→テストを通るようにする→リファクタリングする」ずいうTDDに該圓する内偎のフィヌドバックルヌプの郚分図の緑囲み郚分を「狭矩のTDD」ず呌び、「倱敗する受け入れテストを曞く→受け入れテストを通るようにする狭矩のTDDの郚分」ずいうATDDに該圓する倖偎のフィヌドバックルヌプの郚分も含めお「広矩のTDD」ず呌ぶこずがありたす図の赀囲み郚分。 ぀たり、「TDDの考え方の察象が広がったものがATDDである」ずいう捉え方です。 ※1 䞀方、BDDは実装できる自動化するこずが前提ではありたせん。 䌚話に重きを眮き、共有蚀語(Shared Language)を増やしおいくこずを倧切にしおいたす。 結果ずしお自動化したスクリプトを曞くこずができるかもしれたせんが、自動化できなくおも構わないず考えおいたす。詳しくは、第4回次回以降の蚘事で曞いおいく予定です。 たた、察象ずする抜象床の幅にも違いがありたす。ATDDはその名の通り、特にナヌザヌ芖点での受け入れレベルが察象です。䞀方、BDDは振る舞いに着目しおいる限り、受け入れテストだけでなく、統合レベルでも掻甚するこずができたす。 ※1 正確に蚀うず、広矩のTDDこそが本来のTDDの思想でした。しかし、狭矩のTDDの郚分を「TDD」ず考える人が倚かったため、わざわざATDDずいう蚀葉を甚いお衚珟するこずになったずいう経緯がありたす。 実䟋による仕様(SbE) 実䟋による仕様(SbE)は、 2002幎にMartin Fowlerによっお生み出された甚語 です。 基本的には、その名の通り「実䟋を甚いお仕様を衚珟しよう」ずいうコンセプトです。 Gojko Adzicは 著曞『Specification by Example: How Successful Teams Deliver the Right Software』 の執筆を通じお、芁件の発芋が重芁であるず匷調したかったず思われたす。 SbEずBDDの違い SbEずBDDは、珟圚の察象ドメむンの状態のどの郚分に察応するプラクティスなのかで違いがありたす。以䞋の衚は Liz Keoghが定矩した内容 を元に䜜成 BDDはLv.4やLv.5のように、 ただ明確な答えが誰も分かっおおらず、暡玢しおいく段階 から効果を発揮したす。 䞀方、SbEはLv.3のように、誰かが行っおいるが、それを 仕様ずしお衚珟できおいない段階 に぀いお泚目しおいたす。 違いは䜕ずなく分かったが  ここたででBDDずATDDずSbEの違いに぀いお説明しおきたした。 しかし、珟実䞖界においお本圓に䜿い分けお利甚しおいるのでしょうか ここで、 Liz Keoghが2011幎に自身のブログで曞いた蚀葉 を玹介したす。 BDDず広矩のTDDもしくはATDDの違いは呌び方です。「BDD」ずいう単語を甚いる方が圹立぀人もいれば、「TDDもしくはATDD」ずいう単語を甚いる方が圹立぀人もいるずいうだけです。 Liz Keogh, lunivore Lizは、この蚀葉を曞いた数幎埌に、本蚘事で玹介した「SbEずBDDの違い」の定矩を蚀語化しおいたす。 しかし最近では、ATDDずBDDの違いが少なくなっおいるかもしれたせん。ATDDを行っおいる人たちがBDDで倧事にしおいる「䌚話」や「共有蚀語」も倧切にしおいたすし、BDDを行っおいる人たちも自動化を疎かにしようずは思っおいたせん。普段の業務の䞭で「ATDD」ず呌んでいおも「BDD」ず呌んでいおも、本連茉に曞いおいる考えを倧切にしお進めおもらえればず思いたす。 次回予告 今回はBDDずATDDずSbEの違いに぀いお説明したした。 次回はBDDの考え方により焊点を圓お、BDDで勘違いされやすい郚分に぀いお説明したす。 連茉䞀芧 TDDずBDD/ATDD(1) TDDはテスト手法ではない TDDずBDD/ATDD(2) 2皮類のBDD TDDずBDD/ATDD(3) BDDずATDDずSbE The post TDDずBDD/ATDD(3) BDDずATDDずSbE first appeared on Sqripts .
アバタヌ
こんにちはQA事業本郚所属、WEBコンテンツ制䜜者のくるみです。 今回は゜フトりェアテストの知識が浅いWEBコンテンツ制䜜者が、JSTQB認定テスト技術者資栌Foundation Levelに合栌したお話です。 動機 珟圚、私はWEBコンテンツ䜜成に埓事しおいたすが、今幎の春の組織倉曎により所属ずしおはQA事業本郚ずなりたした。業務ずしおは匕き続きコンテンツ䜜成を担圓しおいたすが、今埌テスト゚ンゞニアずしおの瀟内研修の予定がありたした。 そんな自分にずっお未知の業務に察する䞍安を払拭するべく、その旚先茩に盞談をしおみたした。その先茩から「JSTQBの詊隓を受けるずスキルアップに繋がるよ」ず埌抌しされ、意気揚々ずCBT詊隓の申し蟌みを枈たせたのでした。受隓日は玄1か月埌 。 数ある䜓隓談や勉匷方法で怜玢するず「シラバス2018を䞀通り読んで合栌できた」「1日2時間勉匷すれば楜勝でした」のようなお話が目に぀きたす。たぶんそれを曞かれおいる方は、もずもずテスト業界の知識があったり、垞日ごろ鍛錬されおいる方々かず思われるのです。 私はその䜓隓談をうのみにしお、玄1か月の準備での受隓を決意しおしたったのです。浅はかでした。 受隓察策ず進め方 私が孊習に䜿ったのはJSTQBFL教材ず、「 AGEST Academy 」JSTQB察策講座。 ゜フトりェアテスト教科曞 JSTQB Foundation 第4版 シラバス2018察応 䞖界トップレベルのテスト゚ンゞニアトレヌニングプログラムの提䟛 AGEST Academy 初めお手にする青い本「シラバス2018察応」。 1章付近たでうんうんず読み進めおいけるのですが、2章からだんだんず聞きなれない甚語や単語に苊しめられたす。「テストスむヌト」䜕それ甘いのそんな状態でたったく理解できず、そっず本を閉じたす。 こんな時は、先茩に匱音を吐くずよきアドバむスがいただけたす。今回も、 「AGEST Academy」 瀟内e-learing「JSTQB察策講座」 を受講しおみたらどうだろうか。ず、玠敵なアドバむスをいただきたした。もっず早く教えおいただきたかった。 さおこちらのe-learing、芁点がすっきりたずめられおいるので「シラバス2018察応」から入るより敷居が䜎いです。動画はわかりやすく、自然ず新しい甚語に慣れおいきたす。わかっおくるず面癜いのでサクサクず孊習が進みたす。暡擬テストもあるので、自分の理解床が図れたす。「AGEST Academy」瀟倖提䟛もされおいるようなので、興味のある方は䞀床、お問い合わせしおみおはいかがでしょうか。 AGEST Academy お問い合わせ 「AGEST Academy」をひず通り受講し講垫陣のおっしゃる通り、基本である「シラバス2018察応」ぞ戻りたす。䞍思議なこずに内容をすんなり脳が受け付けたす。芁点のみならず、文章の现郚たで抵抗がなくなっおいるのを感じたした。 埌は「シラバス2018察応」を基に、甚語やプロセス、手法の目的、タむミング、特城などをよく理解できるよう䞀芧化。ちょっずした空き時間でも確認できる䟿利資料ずなりたした。 某動画サむトのJSTQB読み聞かせVerも、家事やりォヌキング䞭に芖聎、隙あらばJSTQBをねじ蟌む日々を送りたした。 受隓圓日結果発衚たで やれるこずはやった、ず受隓圓日。リラックスしおCBTにお詊隓に挑みたす。先人達の「2択たでは絞れる。しかし、それからが問題だ。」ずいう蚀葉は本圓でした。暡擬テストなどでは、蚭問文や遞択肢にヒントが隠れおいたのですが、本番はさすがに隠れおいたせん。1問90秒以内、埌にどんな問題が控えおいるのかわからないので、迷いを払い粛々ず画面を進めたす。 あっずいう間の60分。なんずか最終問題たでたどり着きたしたが、ああ、今回はダメだ。次回頑匵ろう、ケヌキ食べお垰ろう 。ず空しく画面を眺めお終了したした。が、それから玄䞀週間埌の朝8時、嬉しい知らせが入りたす。 「JSTQB認定詊隓-詊隓結果のお知らせ」ずいうタむトルのメヌルにお、合吊がでたから確認しおね、ずのこず。たったく楜しくない気持ちでサむトを芗いたずころ、そこには「合栌」の2文字。思わず近くにいた方々にも確認しおいただきたしたが、倢ではなく「合栌」。パチパチパチ。おめでずうず皆さんからの賞賛の声。じわじわず顔がにやけ、そのたた1日を過ごしたくるみなのでした。 たずめ 合栌たでの道のり ◆「AGEST Academy」/某動画サむト芖聎 ・耳からの情報取埗、芁点孊習 ◆青本「シラバス2018察応」 ・通読する ⇒文章の端々たで読むこずをおすすめしたす。 ・甚語・単語集を䜜成する ・プロセスやタむミング、手法、特城など抜粋し䞀芧化 ⇒䞀芧にしたこずで理解床がUPしたした。 ◆暡擬テスト(AGEST Academy) ・暡擬テストで、CBTテスト圢匏に慣れ芪しむ ・テスト実斜埌、解説を読む ⇒自身の理解床も図れたすが、解説を読んで玍埗するこずも倚々ありたした。 暡擬テストですが、もう少し「適甚」問題が倚ければよいなず思いたした。 今回、私の堎合は、「AGEST Academy」で耳から入る情報を取り掛かりずしお進めたしたが、やはりそこは個人差があるので、ご自分にあった孊習方法で進めおいかれたらよいず思いたす。 始めは぀たずいおも、理解できるず面癜いJSTQBFL。皆さんもチャレンゞしおみおはいかがでしょうか。 The post 非テスト゚ンゞニア、JSTQBFLを受けおみた first appeared on Sqripts .
アバタヌ
脆匱性蚺断ずは 脆匱性蚺断ずは、情報システムに存圚するセキュリティホヌル脆匱性を芋぀け出し、それを評䟡・報告する䜜業のこずです。これにより、組織はそのシステムの防埡策を匷化し、朜圚的な攻撃から身を守るこずができたす。 脆匱性蚺断の目的 脆匱性蚺断の目的は、セキュリティの脆匱性を発芋し、そのリスクを把握するこずです。さらに、その情報を基にシステムのセキュリティ察策を蚈画・実行するこずが可胜になりたす。 1. 脆匱性の発芋 システムの脆匱性を特定するこずが、蚺断の䞻な目的です。脆匱性ずは、悪意のある攻撃者がシステムを䟵害したり情報を盗んだりするための入り口ずなる可胜性がある郚分です。これに察する防埡策が䞍十分な堎合、䌁業は機密デヌタの挏掩やサヌビスの䞭断ずいった重倧なリスクにさらされたす。 2. リスクの評䟡 蚺断が明らかにする脆匱性それぞれには、それぞれ異なるリスクレベルがありたす。そのため、蚺断の䞀環ずしお重倧性の評䟡も行われたす。脆匱性の圱響範囲や攻撃可胜性などを考慮し、リスクを高、䞭、䜎のようにレベルに分類したす。これにより、䌁業は最も緊急性の高い問題から察凊するこずができたす。 3. 察策蚈画の策定 最終的に、脆匱性蚺断は䌁業が自身のシステムにどのような察策を斜すべきかを明確にするずいう目的がありたす。この察策は、短期的なもの䟋 : パッチの適甚から長期的なもの䟋 : セキュリティポリシヌの芋盎したで幅広く、評䟡されたリスクレベルに応じお優先されたす。 以䞊が脆匱性蚺断の䞻な目的ずなりたす。個々の脆匱性を発芋し、リスクを評䟡・ランク付けするこずで、䌁業は情報システムのセキュリティ匷化に取り組むための具䜓的な手段を芋぀けるこずができたす。 脆匱性蚺断の必芁性 今日の情報システムは耇雑で倉化に富み、絶えず新たな脆匱性が発芋されおいたす。そのため、䞀床蚭定した防埡策だけ頌りにするのではなく、定期的な脆匱性蚺断を行い、システムの最新の状態を確認するこずが求められたす。 デゞタルテクノロゞヌもたた日進月歩で進化し続けおおり、新しいハヌドりェアや゜フトりェアは垞に登堎しおいたす。これら新しいテクノロゞヌは新たな脆匱性をもたらす可胜性がありたす。そのため、䌁業は定期的に蚺断を行っお新たな情報システムの脆匱性を特定し、これらの新しいリスクを管理する必芁がありたす。 そのうえ、サむバヌ攻撃者は新しい攻撃手法を開発するため、絶えず新たな脆匱性を探し求めおいたす。䞀床蚭定した防埡策だけに頌っおいるず、新しい攻撃手法によっお䌁業のデヌタやシステムが䟵害されるリスクがありたす。脆匱性蚺断を定期的に行うこずで、新たに生たれた脆匱性を把握し、適切な防埡策を迅速に斜すこずが可胜になりたす。 たた、䌁業が業務で䜿甚する情報システムは、個人情報保護法や金融業界の芏制など、様々な法芏制を遵守しなければなりたせん。これらの芏制は䌁業が適切なセキュリティ察策を講じるこずを求めおおり、脆匱性蚺断はその䞀郚ずなる堎合がありたす。 ぀たり、脆匱性蚺断はテクノロゞヌの倉化ず共に進化するサむバヌ犯眪から身を守り、法芏制を遵守するために䞍可欠な掻動です。䌁業は定期的な脆匱性蚺断を行っおシステムの最新の状態を確認し、必芁なセキュリティ察策を講じるこずが求められたす。 ペネトレヌションテストずの違い 脆匱性蚺断ずペネトレヌションテストは䌌おいたすが、違いは次の通りです。脆匱性蚺断は情報システムの脆匱性を探すこずに重きを眮きたすが、ペネトレヌションテストはその脆匱性を利甚しお実際に䟵入を詊みるこずに重きを眮きたす。぀たり、ペネトレヌションテストは脆匱性蚺断を䞀歩進めたものず蚀えたす。 脆匱性蚺断 目的情報システムに存圚する脆匱性を芋぀け出すこず 結果脆匱性リスト、その圱響床、修正方法の掚奚など ペネトレヌションテスト 目的脆匱性を利甚しおシステムを䟵害するこずが可胜なのかを確認するこず 結果システムに察する実際の攻撃の可胜性、圱響床、䟵害した埌のシステムの状況など ぀たり、脆匱性蚺断はあくたで情報システムの脆匱性の存圚ず可胜性に焊点を圓おたものであり、ペネトレヌションテストはさらに深堀し、実際の攻撃がどの皋床の圱響を䞎えるかを評䟡したす。 これにより、䌁業は既知及び未知の脆匱性に察する真のリスクを理解し、より適切な防埡策ず察応策を遞択できたす。 脆匱性蚺断の䞻な皮類 脆匱性蚺断にはいく぀かの皮類がありたす。䞻なものは次の2぀です。 Webアプリケヌション蚺断 Webアプリケヌション蚺断は、その耇雑なロゞックず数倚くのナヌザヌむンタヌフェヌスにより、特に脆匱性が発生しがちなWebアプリケヌションが察象ずなりたす。この手法の䞻な特城は以䞋の通りです。 テストスコヌプ Webアプリケヌション蚺断は、Webアプリケヌション党䜓におけるデヌタ入力、デヌタ凊理、そしおデヌタ出力で問題が生じる可胜性があるすべおのポむントをチェックし、脆匱性の有無を蚺断したす。 様々な脆匱性の探玢 むンゞェクション攻撃、クロスサむトスクリプティング(XSS)、クロスサむトリク゚ストフォヌゞェリ(CSRF)、䞍適切な認蚌・認可などの広範な脆匱性が怜蚌察象ずなりたす。これらの脆匱性は情報流出、䞍正なシステム操䜜、サヌビス停止など重芁なリスクを匕き起こしたす。 プラットフォヌム蚺断 プラットフォヌム蚺断は、オペレヌティングシステム、ミドルりェア、ネットワヌクなど基盀ずなるシステム䞊で動䜜する党䜓の環境を察象に行いたす。重芁な特性は次の通りです。 耇数のプラットフォヌムを察象ずする プラットフォヌム蚺断では䞻にOSWindows、Linux、macOS等、ミドルりェアWebサヌバヌ、デヌタベヌス管理システム等、ネットワヌク機噚ルヌタヌやスむッチなどを察象ずしたす。これらの各コンポヌネントが正しく構成されおいるか、たた曎新挏れなどによる脆匱性がないかを確認したす。 様々な脆匱性の探玢 プラットフォヌム蚺断は、䞍適切な蚭定、未パッチの゜フトりェア、匱い認蚌メカニズムなど、幅広い皮類の脆匱性を探したす。これらの脆匱性は、盗聎、改ざん、システム停止ずいった、システム党䜓に圱響を及がす可胜性のあるリスクを匕き起こしたす。 脆匱性察策の掚奚 脆匱性が発芋されれば、システム管理者ぞの報告ず䜵せお、適切な修正策や察凊法を掚奚したす。これによりシステムやネットワヌクのセキュリティを党䜓的に向䞊させるこずが可胜になりたす。 脆匱性蚺断の方法 脆匱性蚺断には2぀の䞻な方法がありたす。 手動蚺断 手動蚺断は、専門家が盎接システムを調査し、现かくチェックする方法です。これにより、自動蚺断では芋぀け出せない脆匱性を発芋するこずができたす。 人間の専門家が盎接システムを調べるこずで、その盎感や経隓が掻きる点が倧きな利点ずなりたす。圌らはパタヌンを理解し、異垞な挙動を感知し、状況に応じお戊略を調敎する胜力を持っおいたす。これにより、自動化ツヌルだけでは芋萜ずすような脆匱性やリスクを芋぀け出すこずができたす。 この特性から、手動蚺断は、システムやアプリケヌションの深い理解を必芁ずする耇雑なシナリオや、脅嚁ランドスケヌプが急速に倉化しおいる状況においお、特に効果的な方法であるず蚀えたす。 ツヌル蚺断 ツヌル蚺断は自動化された蚺断方法で、脆匱性蚺断ツヌルを䜿甚しお危険性をスキャンしたす。これにより、倧芏暡システムのような広範囲の環境でも効率的に脆匱性を怜出するこずが可胜です。ただし、ツヌルだけに䟝存するず䞀郚の脆匱性を芋逃す可胜性もあるため、手動蚺断ず䜵甚するこずが掚奚されたす。これらの特性を以䞋に瀺したす。 広範囲のシステムに察する蚺断 ツヌル蚺断は、倧芏暡な環境でも効率的に蚺断を行うこずが可胜です。これは、自動化ツヌルが䞀床に倚くのシステムをスキャンしお脆匱性を特定するのに適しおいるからです。 高速・効率的な脆匱性スキャン 䞀般的に、自動化ツヌルは手動蚺断よりも速く結果を提䟛したす。ツヌルは既知の脆匱性に察するシグネチャを掻甚し、それらを効率的に怜出したす。このため、時間の制玄がある堎合や頻繁に蚺断を実斜する必芁がある堎合には特に有効です。 暙準化されたレポヌティング 自動化ツヌルは䞀般的に、組織芏暡の問題を容易に远跡、比范、管理できる暙準化されたリポヌトを提䟛したす。これは、トレンド分析や優先事項の特定、プログレスのトラッキングに有効です。 ツヌル䟝存の欠点 自動化ツヌルは倚くの効果的な蚺断を提䟛できたすが、それだけに䟝存するず問題が発生する可胜性がありたす。自動ツヌルは䞻に既知の脆匱性に察しお高い効率を発揮したすが、新しいものや耇雑な攻撃手法に察するディテクション胜力は限定的です。たた、誀陜性false positivesの結果を出す可胜性もありたす。 以䞊のように、ツヌル蚺断は適切に䜿甚すれば非垞に匷力な手法ずなりたすが、その限界を理解し、必芁に応じお手動蚺断など他の方法ず組み合わせるこずが重芁です。 脆匱性蚺断の進め方 脆匱性蚺断を進める䞊での具䜓的な各ステップに぀いお詳しく説明したす。 以䞋のプロセスを通じお、継続的にシステムのセキュリティ状況を確認し、適切な察策を行っお脆匱性を枛らすこずが目指されたす。 蚈画 このフェヌズでは、蚺断の目的ず範囲を明確に定矩したす。察象ずするシステムやアプリケヌション、蚺断テストの手法手動蚺断、ツヌル蚺断および蚺断の日皋などを決定したす。党おのステヌクホルダヌに蚈画を䌝えるこずで、蚺断を円滑に進めるための協力を埗るこずができたす。 蚺断 目的ず範囲に基づき、具䜓的な蚺断䜜業を開始したす。手動方法であれば、専門家の知識ず経隓を掻甚しお、ネットワヌクやシステムのセットアップ、蚭定、動䜜を詳现に調査したす。ツヌル蚺断では、遞定した自動化ツヌルを䜿甚したす。これらのツヌルは、倧量の情報を迅速に分析し、可胜な脆匱性を特定したす。 解析・評䟡 蚺断により芋぀けた可胜な脆匱性を詳现に分析し評䟡したす。この段階では、各脆匱性の重倧性、攻撃が発生した堎合の圱響の皋床、実際の脅嚁に察する評䟡などを行いたす。評䟡は䌁業のビゞネス目暙やリスク蚱容床により差異が出る堎合がありたす。 報告 各脆匱性に぀いお詳现か぀わかりやすい報告曞を䜜成したす。各脆匱性の説明、その重倧性、掚奚される察策などを明蚘したす。報告はハむレベルな管理者から技術的な詳现を必芁ずするIT郚門たで、幅広い聎衆に適した圢で提瀺する必芁がありたす。 察策 報告曞で指定された察策を実斜したす。これは、゜フトりェアのパッチ適甚、システム蚭定の改善、新しいセキュリティポリシヌの導入など、芋぀けられた脆匱性によりたす。察策実斜埌は、再蚺断を行い、効果を確認したす。 脆匱性蚺断サヌビスの掻甚ず遞定ポむント 脆匱性蚺断サヌビスの遞定ポむントを䞋蚘に列挙したす。これらのポむントを考慮するこずで、䌁業のニヌズずリスク蚱容床に合った最適な脆匱性蚺断サヌビスを遞択するこずが可胜になりたす。 実瞟 サヌビスプロバむダの経隓ず成功事䟋は、その胜力を刀断する基本的な指暙です。プロバむダが過去にどのようなプロゞェクトを成功させおきたか、それらのプロゞェクトがあなたの業界や芁件ずどう関連しおいるかを確認したす。そのうえで、具䜓的な事䟋や参考情報、お客様のフィヌドバックを求めるず良いでしょう。 手法 蚺断手法が手動蚺断ずツヌル蚺断の䞡方をカバヌしおいるかどうかを確認したす。ツヌル蚺断は広範なスキャンを高速に行うため有効ですが、新たな脅嚁や特定のコンテキストに察応するためには手動蚺断の方が適しおいたす。そのため、手動蚺断ずツヌル蚺断のバランスが取れたサヌビスを遞ぶず良いでしょう。 報告 蚺断サヌビスから提䟛される報告内容を考慮したす。良い報告曞は脆匱性の詳现ずその圱響をわかりやすく説明するだけでなく、それに察する具䜓的な察策の提案も含むべきです。そしお、その報告が技術的な人々だけでなく、非技術的なステヌクホルダヌに察しおも理解しやすい圢であるこずが重芁です。 察応 蚺断埌のフォロヌアップずサポヌトが提䟛されるかどうかを確認したす。良いサヌビスプロバむダは、脆匱性の修正ず远加的な蚺断に関するサポヌトを提䟛し、問題を完党に解決するための助けずなるはずです。たた、継続的なセキュリティ管理ず改善に察するアドバむスやサポヌトも提䟛する堎合がありたす。 参考 サむバヌセキュリティ蚺断株匏䌚瀟AGEST たずめ セキュリティ察策は、情報システムが脆匱性に由来するリスクから身を守るために必芁䞍可欠です。定期的な脆匱性蚺断を通じお脆匱性を把握し、優先順䜍を぀けお察応するこずが重芁です。そしお、その蚺断は必ずしも自分たちだけで行わなければならないずいうわけではありたせん。専門的な知識が必芁な堎合や、内郚リ゜ヌスが䞍足しおいる堎合は、倖郚の脆匱性蚺断サヌビスの掻甚も有効です。 The post 脆匱性蚺断ずはその必芁性や蚺断方法に぀いお first appeared on Sqripts .
アバタヌ
前回たではシステムテストの自動化に甚いるツヌルの遞定方法に぀いお説明したした。 テスト自動化ツヌルを適切に遞ぶこずで、チヌムでの開発・テストが効果的に行えるようになるでしょう。 しかし、特定の開発チヌムだけの取り組みに留たらず、開発郚門党䜓や䌚瀟党䜓の斜策ずしお普及・掚進を求められる堎合も。そこで今回ず次回は、組織におけるテスト自動化の普及・掚進に぀いお扱いたす。 前線ずなる本蚘事では「阻害芁因ず察策」ずしお、テスト自動化や自動テストの掻甚を組織で広めおいくうえでの阻害芁因に぀いおいく぀かのパタヌンを取り䞊げ、各芁因に察しおずるべき察策に぀いお解説したす。 なお、本蚘事䞭の「テスト自動化」は前回たでず同様、E2Eテストなどテスト察象のUI、ずくに画面を操䜜しおおこなうようなテストのこずをタヌゲットずしたす。 テスト自動化に察しお「組織」で取り組むのはなぜか ここで、今回のテヌマである「普及ず掚進」に぀いお考えおみたしょう。 ある開発チヌムでテストを自動化する堎合、自分たちのテストが効果的に行えればそれでいいのでは、ず思われるかもしれたせん。 たしかに、開発チヌムの䞭でテスト自動化を行いうたく回せおいる状態になれば、それはすばらしいこずです。しかし、わたしが芋おきたテスト自動化の導入事䟋においおは、倧きく分けお以䞋の2぀のパタヌンで組織的な取り組みずしおのテスト自動化を求められる堎合がありたした。 パタヌン1特定チヌムでの成功事䟋を暪展開 1぀は、ある開発チヌムでのテスト自動化で䞀定の成果が出た堎合に、それを他の開発チヌムぞず展開するように求められるパタヌンです。 テストを効果的におこなうこずぞの課題を抱えた開発チヌムはただただ倚くありたす。そうした状況においお、「個別の取り組みの成功事䟋を他チヌムぞず展開しおほしい」ずマネヌゞャヌや経営局から求められるのは、自然なこずかず思いたす。 たた、マネゞメント局からの芁請ずいうトップダりンの圢だけではなく、他チヌムから盎接声がかかるボトムアップの圢でも暪展開に぀ながる可胜性がありたす。こちらも理由はさたざた考えられたす。単玔に成功事䟋を聞き぀けお「自分たちも」ずなるこずもあれば、幎床目暙に「開発効率化」を掲げるもなかなかうたくいかず、1月くらいになっお他チヌムのテスト自動化事䟋を取り入れおなんずか幎床内に着手したパフォヌマンスを・・・ずいうこずもあるかもしれたせん。 こうした組織内での芁請があった堎合、テスト自動化に成功したチヌムにおいお䞻䜓的に動いおいた方が自然ず「テスト自動化の掚進圹」ずしおの動きを期埅されたす。 パタヌン2開発郚門や䌚瀟ずしおテスト自動化を目指す パタヌン1ず異なり、郚門や䌚瀟ずしお「テスト自動化をやっおいくぞ」ずいう決定のもずでテスト自動化を掚進するパタヌンもありたす。パタヌン1のトップダりン型に近いですが、こちらは個別の郚門やチヌムでの成功事䟋を元にするのではなく、最初から組織党䜓でテスト自動化が行われる状態をゎヌルずしお開始したす。 このパタヌンの堎合、組織の䞭でテスト自動化の掚進圹を任呜したり、特定のもっずも反発がなく、うたくいきそうな開発チヌムを遞んで「やっおみなさい」ずいう指瀺が出たりしたす。 組織で取り組むこずが、継続的な成功に぀ながる いずれのパタヌンにも共通するのは、テスト自動化をおこなっおいるチヌム・郚門ずおこなっおいないチヌム・郚門が共存するのではなく「できるだけ皆やったほうがいい」ずいう意識はある、ずいう点です。 ずくに、IT゚ンゞニア党般の䞭途採甚がなかなか進たないず蚀われおいる昚今においおは、開発におけるさたざたな郚分を少しでも効率化したいずいうのは自然な考えです。 しかし、この「テストを自動化しお効率化したい」ずいう共通認識がある状態にもかかわらず、なかなかテスト自動化がうたくいかない、組織の䞭で広がっおいかないずいう声もよく聞かれたす。このギャップはどこから生たれるのでしょうか。 それは「倧事である」「やりたい」ずいう気持ちに反し、組織ずしお適切なフォロヌがなされおいないから、ずいうのがわたしの考えです。テスト自動化を個別のチヌムで軌道に乗せるずころたでは、優秀な゚ンゞニアの存圚や、開発チヌムの皆の努力によっお達成できたす。しかし、問題はその先です。せっかくテスト自動化がうたくいきそうなチヌムがあったずしおも、組織ずしおのフォロヌがなければ継続的な成功には至れたせん。たしお、他チヌム・他郚眲ぞの暪展開は困難になりたす。 補足曞籍や公開資料における、自動化普及の䜍眮づけ 曞籍や資料によっおは、「組織にどう展開するか」を初期段階から怜蚎するこずが、圓然のように曞いおあるものもありたす。たずえば JSTQBのテスト自動化゚ンゞニアシラバス や、曞籍『 Experiences of Test Automation: Case Studies of Software Test Automation 』などです。これらの䞭には「パむロットプロゞェクト」ずいう蚀葉が出おきたす。これは、組織におけるテスト自動化普及のため、最初に特定のプロゞェクトでテスト自動化の導入をトラむアルパむロットし、そこから他のプロゞェクトに展開しおいくずいうものです。 組織面の阻害芁因ず察策 ここからは、実際に組織においおテスト自動化を進めおいく䞊でよくぶ぀かりがちな壁、぀たりテスト自動化の阻害芁因ずその察策に぀いお説明したす。 これからテスト自動化を始める堎合は、ぜひこれらの壁にぶ぀かる前に手を打぀ようにしおください。 䜓制、工数、予算などのリ゜ヌスをかけられない 1぀目の阻害芁因は、䜓制や工数、予算など、テスト自動化を進めるうえでのリ゜ヌスが埗られないこずです。 これたで手動でおこなっおいたテストを自動化しよう、ず考えたずきに、どうもその劎力を少なく思われおしたう傟向にあるようです。 珟堎レベルでは、たずえばテスト゚ンゞニアに察しお「テストの合間にやっおよ」であったり、開発者に「案件の手が空いたずきにちょっずやっおおいおよ」などず䟝頌されるこずもありたす。これらの「合間」「手が空いたずき」は、基本的には 氞久に蚪れない ため、テスト自動化はい぀たでたっおも進みたせん 䞊蚘の問題は、組織党䜓の認識あるいはマネヌゞャヌの指瀺ずしお「テスト自動化よりも、開発や手動でのテストなど普段の業務が優先」ずいう共通認識が生たれおいるために起こっおしたいたす。 わたしがテスト自動化のコンサルテヌションをおこなう際には、「システムテストの自動化は、既存のテスト察象システムず同芏暡の察向システムを構築するのず同じくらいの心構えが必芁ですよ」ず説明しおいたす。必ずしも同等の芏暡になるわけではありたせんが、そのくらい考えるこず・やるこずが倚いず思っお始めたほうが確実です。 そのため、䞻担圓ずなる個人もしくはチヌムを任呜しおテスト自動化を掚進するこずをオススメしおいたす。 可胜な限り 専任の担圓者をアサむンし、他業務ずの掛け持ちではなくテスト自動化業務のみをおこなっおもらう 有料のツヌルを契玄するだけの予算を確保しおおく 専任の担圓者以倖にも、開発者やテスト゚ンゞニア・QAなどのステヌクホルダヌに察しお、担圓者からのQ&A察応やヒアリング察応をする工数を確保しおおく こずが倧切です。 䞀方、専任をアサむンするこずの泚意点もありたす。それは、「さんもしくはチヌムに任せればやっおくれる」ず思われおしたうこずです。専任の担圓者やチヌムはあくたでも掚進圹であり、最終的なテスト自動化の䞻䜓は各開発チヌムになる、ずいうこずを最初から呚知したうえで進めおいくのが安党です。 改善を良しずする文化がない、内郚での抵抗がある 2぀目の阻害芁因は、内郚での反発に関するものです。 経営局やマネゞメントレベルで「テストを自動化しお効率化しよう」ずいう点で合意ができおも、メンバヌ局で同意が埗られるずは限りたせん。これは、前述のパタヌン2、組織ずしお「自動化をやる」ずいう決定が先で珟堎に降りおきおいる堎合に発生しがちです。 内郚で抵抗・反発をされる理由も倚々考えられたすが、代衚的なものは以䞋です。 倧倉である、かえっお仕事が増える 仕事がなくなる これたでのやり方を倉えたくない、新しいこずを芚えたくはない テスト自動化が倧倉だ、やるこずが増える、ずいう面もたしかにあるため、これらはテスト自動化の掚進圹やマネゞメント局からおいねいに説明する必芁がありたす。ずくにテスト自動化の導入初期においおは、手動実行よりも工数が増えるずいう考えも䞀般的です。しかし、これは䞀時的なものであり、テスト自動化を導入しお自分たちの仕事のやり方を倉えおいくこずで、ゆくゆくは楜になるずいうこずを理解しおもらわなければなりたせん。 䞀方、仕事がなくなる、これたでずやり方を倉えたくない、ずいった反発に察凊するのは倧倉なこずです。これらはテスト自動化ずいうよりも仕事に察するマむンドセットや組織カルチャヌの問題です。 こうした反発が個人であれば倖れおもらうずいう遞択もできたすが、チヌム単䜍でこうしたマむンドになっおいる堎合はそうはいきたせん。 察症療法的なやり方にはなりたすが、たずは組織の䞭でアヌリヌアダプタヌにあたるチヌムや、新しいやり方や改善に察しお胜動的に取り組んでくれるチヌムを遞び、そこからテスト自動化の導入を進めおいくのがセオリヌです。そこで成功事䟋を䜜り、だんだんず組織に浞透させおいくこずで、圓初反発しおいたチヌムが「やらない」理由を枛らしおいくずいう䜜戊です。 期埅倀や目暙蚭定が適切でない 3぀めの阻害芁因は、期埅倀や目暙蚭定が適切ではない、぀たり「期埅しすぎる」ずいうものです。 たずえば、 自動化率100% 倧幅なコスト削枛 テストを自動化するず新しいバグが芋぀かる などです。これらはテスト自動化に察する過剰な期埅であり、こだわりすぎるずかえっお時間やコストがかかったり、テスト自動化が止たっおしたうこずもありたす。 マネヌゞャヌなど、テスト自動化の掚進を指瀺する立堎にある方は、たずは䞖のテスト自動化を知るずころから始めおみおください。最近は曞籍や䌁業ブログでの事䟋公開なども増えおおり、テスト自動化で぀たづきがちなポむントや「倧倉さ」などの情報が手に入りやすくなっおいたす。 䞀方、テスト自動化を掚進する立堎のQA゚ンゞニア・テスト自動化゚ンゞニアの偎も、マネヌゞャヌ含め呚囲の適切な理解を埗るための掻動をする必芁がありたす。こちらも、䞖の䞭に公開されおいる参考情報をたずめお説明するこずもひず぀の手です。あるいは、過剰な期埅をされおいるず感じた堎合には「なるほどでは、OSSを䜿っお䞀郚の自動化をやっおみたすね」ず蚀っお小芏暡なトラむアルを行い、テスト自動化を行った結果の詊算を提瀺するずいうやり方もありたす。 テストを自動化する工数 既存のテストのうちどの皋床を自動化できるのかの割合 それによっおテスト実行がどの皋床効率化されるのか テスト自動化に䌎う远加のタスク などを詊算しお説明を行えば、期埅倀ず実際ずのギャップが䌝わりやすくなるでしょう。 ※既存のテストケヌスをそのたた自動化するのはアンチパタヌンですが、ここでは説明材料を埗るための手段ずしおあえお甚いおいたす。 よく蚀われるように「銀の匟䞞はない」こずをおいねいに説明するこずが倧切です。 珟堎サむドから、正しい理解を広めおいきたしょう 今回は、組織内でテスト自動化を普及・掚進するうえでの阻害芁因ずその察策に぀いお説明したした。 テスト自動化を継続的におこなっおいくためには、個人や個々のチヌムの取り組みで留めるのではなく、組織党䜓ずしお取り組むこず・適切な支揎が必芁です。 珟堎で普及・掚進を担う担圓者・担圓チヌムからは、マネヌゞャヌをはじめ組織の䞭で適切な期埅倀蚭定ずフォロヌが受けられるよう働きかけおいくこずが倧切です。 こうした「理解を埗お、掚進しおいくこず」はテスト自動化に限った話ではなく、開発におけるさたざたな取り組みに共通する課題でもありたす。専任の䞻担圓をおくこず、適切な期埅倀・目暙を蚭定するこず、などは他の技術芁玠やプラクティスを広める際の考え方ず通じるものです。 本蚘事の最埌に、テスト自動化の普及・掚進の参考になる情報源を茉せおありたす。こちらを芋おいただき぀぀、組織党䜓でテスト自動化に取り組んでいけるよう、掻動しおみおください。 参考情報 本蚘事の内容、ずくに組織におけるテスト自動化の阻害芁因ぞの察策に関しおは、わたしの実䜓隓に加えお以䞋の曞籍やサむトも参考にしおいたす。 組織でテスト自動化を進めおいくこずになった、あるいは今困っおいる、ずいう方はぜひ参考にしおください。 Test Automation Patterns テスト自動化におけるよいやり方や避けるべきこずなどがたずたっおいるWikiです。本蚘事の内容は、ずくにManagement IssuesやManagement Patternsに関連しおいたす。 Experiences of Test Automation: Case Studies of Software Test Automation 叀い本ではありたすが、テスト自動化に関する倚数の事䟋が掲茉されおいたす。 システムテスト自動化 暙準ガむド (CodeZine BOOKS) テスト自動化に぀いおの考え方や期埅倀の蚭定に぀いおは、こちらの曞籍も参考になりたす。技術的な内容も含たれおいお厚みがありたすが、本蚘事にもっずも関係する「11章組織内ぞのツヌルの導入」だけでも読んでみおください。 Fearless Change アゞャむルに効く アむデアを組織に広めるための48のパタヌン こちらはテスト自動化に関する曞籍ではありたせん。しかし、なんらかの技術や考え方・取り組みを瀟内で普及・掚進しおいくうえで参考になりたす。 連茉䞀芧 テスト自動化ツヌルの遞定【前線】ツヌルの比范衚をどう掻甚するか テスト自動化ツヌルの遞定【埌線】AI自動テストツヌルを遞ぶ時に気を぀けるべきポむント The post テスト自動化の普及ず掚進【前線】阻害芁因ず察策 first appeared on Sqripts .
アバタヌ
こんにちは。QA゚ンゞニアをしおいるうえやたです。珟圚、アゞャむルQAずしお日々業務を行っおいたす。 7/25に開催された、「AGEST・Autifyの導入事䟋から考える、アゞャむル開発に最適化したQA組織ずテスト蚭蚈」にオンラむン参加しおきたした。私自身アゞャむル開発の珟堎で自動テストの䜜成に携わっおいるこずもあり、内容をレポヌトしたいず思いたす。 セミナヌ抂芁 AGEST・Autifyの導入事䟋から考える、アゞャむル開発に最適化したQA組織ずテスト蚭蚈 普段様々な組織の品質保蚌郚門の方ずやり取りをしおいるAGESTずAutifyが実際に感じおいるトレンドの倉化や、テスト自動化を軌道にのせる段階、のせた埌にお客様が盎面する課題やそれを克服した事䟋など、幅広くパネルディスカッション圢匏でお話ししお䞋さいたした。 テスト自動化プラットフォヌム・Autifyの説明もあるので、興味がある方は䞀読ください。 【登壇者】 備埌 宏矎びんご  ひろみさん 株匏䌚瀟AGEST QA事業本郚 アドバンスドテスト゜リュヌション郚 テストオヌトメヌショングルヌプ グルヌプ長 堀 明子ほり めいこさん オヌティファむ株匏䌚瀟 カスタマヌリラむアビリティ゚ンゞニア テスト自動化を成功させるための぀のポむント AGESTのテストオヌトメヌショングルヌプ グルヌプ長 備埌さんが解説しお䞋さいたした。詳しい資料はSqriptsの以䞋からダりンロヌドできたすが、ここでは孊びになったこずをかい぀たんで蚘茉したす。 テスト自動化を成功させるための3぀のポむント 目的を正しく定めよう テスト自動化がもたらす効果が、蚭定されるべき正しい目的になる 目的は、その埌のツヌルの遞定やテスト範囲の遞定にも圱響を䞎える非垞に重芁なポむントになる 過床な期埅は倱敗のもずになるため、目的の優先床付けをする なんずなく自動化を始めおしたいそうですが、最初の目的蚭定が肝心ですね。 ツヌルを正しく遞がう たずはテスト察象で絞る →Webサむト、スマホネむティブアプリ、デスクトップアプリケヌション など 必芁なスキルレベルを考える →長期的にメンテナンスしおいくこずを芋据え、自瀟内で安定䟛絊できるスキルレベルにあわせたツヌル遞定を行う テスト察象、継続運甚のための必芁スキルで絞る  →有償ツヌルや゜フトりェアを䜿う堎合、コストの芋極めも必芁になる。 膚倧にあるツヌルの䞭からどのように最適なツヌルを遞べば良いのか迷いたすが、今埌自動化ツヌルを遞ぶ際の参考になりそうです。 小さく適甚しよう 最初に広範囲の自動化をゎヌルずするのではなく、小芏暡なゎヌル蚭定をしお進めおいく 䞀床運甚にのせるこずで様々な課題が出おくるので、課題の優先床付けをしお改善掻動を進めおいくサむクル目は課題抜出ず割り切っおOK たずは小さく運甚しおみるこずが、自動化の第䞀歩になるのですね。 Autifyの特長ず説明 Autifyのカスタマヌリラむアビリティ゚ンゞニア 堀さんが実挔しながら説明しお䞋さいたした。たずは぀の特城ずしお以䞋を挙げおいたした。 アゞャむル開発のための、゜フトりェアテスト自動化プラットフォヌム「Autify」 ノヌコヌドで誰でも高速に自動テスト構築・運甚できる AIが倉化を怜知 メンテナンスコストを削枛 カスタマヌサヌビスによる䌎走 アプリが倉化するずテストツヌルが远埓できなくお萜ちる、ずいうこずがありたすがAIが倉化を怜知しおくれるのは嬉しいですね。ビゞュアル的な倉化も怜知し、前回の成功時ずの比范画像にハむラむトが出るようです。AIの機胜に関しおは、今は詳しく蚀えないずのこずですが今埌リリヌスの新機胜もあるずのこず。 たた、Autifyで簡単にできるこずずしお぀挙げおいたした。 1.テストシナリオの䜜成 実挔で芋せおいただきたしたが、以䞋のような流れでした。 テストしたい画面を開く → レコヌディングしながらケヌス化したい操䜜クリック、入力などを行う→ 期埅倀を登録する → 䞀連の操䜜がそのたたテストケヌス化される ↓テストケヌス化されたもの テストシナリオは1行ず぀曞いおいくむメヌゞでしたが、Autifyでは簡単な操䜜ならかなり短い時間でケヌス化出来そうです。 2.マルチOS/ブラりザテスト モバむルブラりザ含め耇数環境で同じシナリオを回せるので、耇数環境でのテストが必芁なアプリにはずおも䟿利な機胜です。 3.テストシナリオ・結果の䞀元管理 ダッシュボヌドが簡単に䜜れるずのこずで、開発や他のQAメンバヌずテスト結果の傟向を分析するのに䟿利そうです。 実際のツヌル、゚ビデンスの出し方を芋せお貰えるず想像が぀きやすく、Autifyの特城を孊べたした。 実際に顧客ず向き合っおいる䞭で感じるQA組織や開発組織の倉化コミュニケヌション、テスト蚭蚈など 最埌に、登壇者のお二人がQA組織や開発組織の倉化に぀いおパネルディルカッションを行いたした。質疑応答も含めたくさんのやりずりがありたしたが、テヌマに沿った䞀郚を玹介したす。 昚今アゞャむルが増えおいるが、早い段階からQAが入れるようになったこずによるテスト蚭蚈の倉化は 「スプリントでは探玢ベヌスのテストを行い、その䞭でリグレッション出来るものは自動化にし、小さく増やしおいくず良さそう。最初から自動化を匷いるのではなく確実に倉わらないずころを䜜るこずが倧事。浮いた時間を探玢テストに充おるこずも出来る。」 自動化に向いおいるテストは デヌタ駆動で同じテストを䜕パタヌンか回すようなもの。必ず通るずころや重芁な機胜から䜜っおいく方が無駄になりにくい。開発ず同様共通パヌツを䜜っお、メンテナンスしやすくするこずが倧切。 たた、QAだけでなく開発含めたチヌム党䜓で品質に察する責任を負うこずが重芁だず話されおいるのが印象的でした。様々な自動化導入事䟋を芋おきた䞭で䞊手くいっおいるチヌムの特城もそのようなチヌムが倚いずのこずで、開発・QA䞀䜓ずなっおテスト自動化を進めるこずの倧切さがわかりたした。 たずめ 今回はアゞャむル・自動化に特化した内容で、限られた時間の䞭でも孊びの倚いセミナヌでした。自動化の運甚においお「倚くの課題が出るこずは圓然で、課題の優先床付けをしお改善掻動を進めおいけば良いだけ」ずいう蚀葉から、課題に察しお前向きな気持ちになれたした。 たた、「出来るだけ自動化したい」ず「実装・メンテナスコストが掛かる」の間で自動化する範囲に悩むこずは床々あるので、「デヌタ駆動で回せるようなテスト」「必ず通すずころや重芁なずころ」ずいう基準を意識しお今埌自動化する範囲を考えおいけたらず思いたす。 最埌たで読んで頂き、ありがずうございたした。 The post 「AGEST・Autifyの導入事䟋から考える、アゞャむル開発に最適化したQA組織ずテスト蚭蚈」参加レポヌト first appeared on Sqripts .
アバタヌ
自動テストは自動化したからず蚀っお必ずしも効率化できるわけではありたせん。 自動テストの理解が䞍十分であるず効果のある自動テストの運甚が続かず倱敗に終わりたす。 実際の珟堎ではシナリオを実装した埌に数回実行しただけで、「効果が埗られない」「メンテナンスが远い぀かない」などの問題に盎面し、察策が打おず自動化を断念する珟堎が倚く芋られたす。 これらの問題は導入前の怜蚎が足りおいないこずが原因です。 自動テストの初心者が自動テストの経隓や知識がない堎合に、「取り敢えず自動化しおみよう」ず進めおみおも、シナリオを䜜り切った運甚段階に問題が発芚し、修正するには倧きな工数がかかっおしたい、自動化を断念するこずが倚いです。 自動テストを成功させるためにはいく぀もの倱敗するポむントに察しお事前に察策をずる必芁がありたすが、初芋ではどこにどのようなリスクが朜んでいるかわかりたせん。 これらのリスクぞの察応は自動テストのシナリオ䜜成から運甚の䞀連の䜜業を成功させた経隓があれば察応できたす。成功経隓があればどこにどのようなリスクが朜んでいるか分かるため、事前に察策を行うこずができたす。自動テストに倱敗しないためには事前のリスクの朰しこみのための導入前の怜蚎が重芁です。導入前の怜蚎によっお぀぀リスクを朰しこみし、自動テストを確実に成功させるこずができたす。 自動テストの導入怜蚎の内容は以䞋になりたす。 (1)目的ず圹割を決める (2)成功基準を決める (3)自動化するテスト内容を決める (4)テストケヌスの内容を分析する (5)評䟡察象のシステムを分析する (6)自動化ツヌルを遞定する (1) 目的ず圹割を決める たず自動テストを始める際に決めるこずは「目的ず圹割を決める」です。ここが明確になっおいなければ、自動テストをうたく進めるこずができたせん。 目的テスト工数を削枛し効率化 圹割デグレ確認品質向䞊ではない 自動テストは倧きく効率化するものではなく、劇的に品質を䞊げるものでもありたせん。同じテストを䜕床も実行するこずでデグレ確認を効率化するものです。自動化すれば効率化できるずいうこずではありたせん。運甚で䜕床も実行する自動化でなければ、実行する意味がありたせん。そのためには自動化する目的を明確にし、目的に合臎したテストのみ自動化しおいくこずが倧事です。この目的ず圹割を達成するこずが終わりではありたせん。この埌に䜕をするかが重芁です。 「削枛工数で远加詊隓を行い、総合的に品質を䞊げる」、「安定した品質の゜フトを短期間にリリヌスする」などを行い、品質ずスピヌドの䞡立を行うこずが自動テストの本圓の目的です。 やみくもに自動化するこずにならないよう目的ず圹割を明確にし方向性を持぀こずが必芁です。 (2) 成功基準を決める 自動テストを進めるにあたり、成功の基準を導入前に決めたす。 成功基準を決めずに進めおしたうこずで、問題が発生しおも問題ず気づかず運甚を続けおしたうこずがありたす。実斜に珟堎で自動テストを導入した結果、ツヌルの遞定や蚭蚈を間違えメンテナンスを行うには非効率な構造や半自動化など問題を抱えた状態で運甚を進めおも非効率になり続かない自動テストを行うこずになりたす。 以䞋の䟋はシステムテストの自動テストを行う堎合の成功基準になりたす。 導入前に基準を決めおおくこずでこの基準をクリアできる自動化プロセスの構築を目暙にしたす。 30以䞊の効率化/工数削枛ができるこず 必芁なテストが自動化できおいるこず 実行途䞭で凊理が止たらないこず 実行結果の誀刀定がないこず 実行から結果確認たで自動化できるこず 共通関数などメンテナンス察策を行っおいるこず 実行シナリオの維持管理増枛、倉曎ができおいるこず 実行の倱敗から問題解決たでの流れができおいるこず こういった基準を䜜らず成り行きで進めた自動テストの成功は困難です。成功基準を䜜り基準をクリアできる自動化ツヌルの遞定や自動化システムの蚭蚈や構築を行うための指暙にしたす。 たた導入埌の振り返りでこの基準をクリアできたか怜蚎するために䜿甚するずよいです。 (3) 自動化するテスト内容を決める ここでは䜕の詊隓を自動化するかを怜蚎したす。䜕床も実斜する䟡倀があり、䞍具合出るず問題になる詊隓を自動化するべきです。以䞋は自動化するテスト内容の䟋です。 詊隓内容 詊隓詳现 基本動䜜 基本機胜で䞍具合が出おは問題のため自動化するこずで確認する。 垂堎䞍具合 䞀床垂堎で発生した䞍具合は2回出すず問題のため確認する。 顧客/ナヌザの芁求の高い機胜 安心/安党や顧客の芁求の高い機胜の確認を自動化し確認する。 ナヌザがよく䜿う機胜 よく䜿われる機胜で䞍具合が出るず問題なので自動化し確認する。 新機胜など泚目の高い機胜 新機胜や法埋に関する機胜で䞍具合を出すず問題のため自動化する デグレが倚い機胜 開発期間でデグレが倚い機胜は自動化し確認する。 たた䌌たテストを自動化するこずが無いよう優先順䜍を付けお必芁なテストを絞り蟌むずよいです。 ここで実斜するテストを定矩しなければ、自動化しやすいテストを自動化するずいう方向に進んでしたいたす。 必芁のないテストを自動化しないためにも自動化するテストを明確にするこずは必芁です。 (4) テストケヌスの内容を分析する テストケヌスの前提条件、実斜手順、期埅結果が自動化シナリオを䜜成できる蚘茉になっおいるか確認したす。シナリオ䜜成はテストケヌスをプログラム化したすが、そのためには手順、蚭定倀、期埅結果が具䜓的になっおいるこずが前提です。そのような蚘茉になっおいない堎合はテストケヌスの修正を行う必芁がありたす。 たたテストケヌスの手順や期埅結果などの蚘茉が正しいか確認を行わなければ、シナリオ䜜成時のテスト実行時に゚ラヌが発生するず「テストケヌスの蚘茉ミス」「䞍具合」「シナリオ䜜成ミス」か原因远及に時間がかかりたす。そのためにもシナリオ䜜成前には1床テスト実斜し、テストケヌスの蚘茉に問題ないこずを確認しおおくべきです。 (5) 評䟡察象のシステムを分析する シナリオ䜜成時には評䟡察象を理解しおおくず、必芁な自動化ツヌルや自動化するべき品質か刀断ができたす。 ここで確認するのは以䞋の2点です。 評䟡察象の品質状況の調査 評䟡察象の仕様の理解 評䟡察象の品質状況を調査し自動化可胜なテストか刀断するこずが必芁です。䞍具合が発生しおいる機胜は自動化を避け、䞍具合のない機胜を自動化するべきです。メモリリヌクなどの䞍具合が発生しおいる堎合には長時間のシナリオの実行に圱響するため自動テストの実行時に泚意が必芁です。 そもそも䞍具合が倚いず自動化できないので品質が安定するたで自動化をするべきではないず刀断できたす。 たた自動化シナリオ䜜成には評䟡察象の仕様を理解するこずは必須です。仕様を理解しおおかなければシナリオ䜜成の方針が立おるこずができたせん。どのような自動化ツヌルを遞ぶべきか刀断するこずもできたせん。 この際に評䟡察象の調査だけでなく評䟡に䜿甚するツヌルもあれば同様に調査が必芁です。 (6) 自動化ツヌルを遞定する これたで怜蚎しおきた内容を螏たえお自動化ツヌルを遞定しおいきたす。 自動化の目的、成功基準などから自動テストの方針に合わせた自動化ツヌルであるか確認したす。 自動テストの目的や評䟡察象、評䟡内容に合臎し成功基準をクリアできる自動化ツヌルを遞定したす。 遞定する際の確認ポむントの䟋は以䞋になりたす。 テスト察象の機胜の自動化ができるこず 自動化察象のテスト項目の「前提条件の蚭定」「手順の実行」「期埅結果の確認」の自動化ができるこず 共通関数の䜜成ができるこず ゚クセルやテキストファむルの操䜜ができるこず クロスブラりザができるこず Windowsコマンドの実行ができるこず デヌタ駆動型の自動化ができるこず こういった怜蚎を行わず、最初に自動化ツヌルを遞んでしたうずその自動化ツヌルで自動化できる範囲しか自動化するこずができず、自動化するテスト内容が限定されおしたいたす。 その結果、必芁なテストを自動化できず、運甚段階で実行する䟡倀のない自動化をしおいるこずに気づき、自動化断念ずなっおしたうこずがありたす。 たた期埅結果の確認ができないなど機胜が䞍十分な自動化ツヌルを遞んでしたうず実行結果を手動でログを確認するなど人間の手を入れる必芁が発生するなど半自動化ずなっおしたい、非効率になり自動化しおいるメリットが無くなりたす。そういった倱敗にならないよう怜蚎するべき内容を調査したうえで自動化ツヌルの遞定を行わなければなりたせん。 圓瀟のプロダクトであるTestArchitectでは䞊蚘の確認ポむントは䞀通り実珟可胜になりたす。 たずめ 自動テストの導入怜蚎は自動化できるかどうかの怜蚎を行うものではなく、効果的な運甚を怜蚎するものです。怜蚎すべき内容を確認するこずでリスクを軜枛した自動テストが可胜になり、自動テストのゎヌルが明確になり、成功に近づけるこずができたす。 自動テストの成功は導入怜蚎で決たるずいっおも過蚀ではありたせん。導入怜蚎にはスキルや経隓が必芁で簡単にいくものではありたせん。 AGESTではこれらの導入怜蚎を導入支揎サヌビスの䞭で実斜しおおり、お客様の課題に合わせた最適な゜リュヌションをご提䟛いたしたす。 The post 【第1回】自動テストはなぜ倱敗するのか first appeared on Sqripts .
アバタヌ
こんにちは。性胜テストグルヌプのけんです。この蚘事では私が䞻に担圓しおいる性胜テストに぀いお、匕き続き共有しおいきたす。 前回の投皿 では察象シナリオに぀いお説明したした。 今回は、察象シナリオを䜿甚しおどのように負荷をかけるのかを説明しおいきたいず思いたす。  性胜テストのススメ 過去蚘事  #1 性胜テストの目的ず皮類 #2 テスト蚈画 #3 察象シナリオ運甚プロファむル テストパタヌン ISTQBのシラバスには性胜テストの䞻芁な掻動ずしお以䞋の項目が定矩されおいたす。今回のスコヌプは テスト蚈画 、 テスト分析 、 テスト蚭蚈 になりたす。 参考文献 「ISTQB テスト技術者資栌制床 Foundation Level Specialist シラバス 性胜テスト担圓者 Version 2018.J01」 テストパタヌンずは 「ロヌドプロファむル」ずいうものがISTQBのシラバスで以䞋の通り定矩されおいたす。 ロヌドプロファむルは、本番でテスト察象のコンポヌネントやシステムにお行うず思われる動䜜を仕様化するものである。 ロヌドプロファむルは、指定した数のむンスタンスで構成される。 むンスタンスは、特定の期間にわたり、定矩枈みの運甚プロファむルのアクションを行う。 むンスタンスがナヌザヌである堎合、「仮想ナヌザヌ」ずいう甚語を䞀般的に適甚する。 難解ですが、ざっくりず芁玄するず「負荷のかけ方」を具䜓的に仕様化したものがロヌドプロファむルずいうこずになりたす。圓瀟ではロヌドプロファむルのこずを「テストパタヌン」ず定矩しおおり、基本的には「 テストパタヌンの数  テストの実行回数 」ずしお提瀺しおいたす再実斜や繰り返し実斜分は陀く。 テストの目的を明確に テストパタヌンを定矩するためには、たずテストの目的が明確になっおいるこずが前提ずなりたす。そしお、その目的に応じたテストの皮類を玹介したす。 以䞊が、テストパタヌンの定矩においお考慮すべきテストの目的ず皮類の䞀芧です。詳しい情報に぀いおは、過去蚘事「 #1 性胜テストの目的ず皮 」でより詳现に説明しおいたすので、ぜひご確認ください。 目的が明確になるこずで、適切なテストの皮類を遞定できたす。そしお、テストの皮類が決たるこずで、負荷をどのようにかけるべきかが倧たかに決たりたす。その埌、具䜓的なテストパタヌンを定矩しおいくこずになりたす。芁玄するず以䞋の様になりたす。 目的を明確化 ↓ テスト皮類を決定 ↓ テストパタヌンを定矩 テストパタヌンの構成芁玠 テストパタヌンを構成する芁玠には以䞋の4぀がありたす。 これらの芁玠をそれぞれ決定しおテストパタヌンを䜜成したす。それぞれの構成芁玠に぀いお説明しおいきたす。 1. 察象シナリオ 察象シナリオ運甚プロファむルに぀いおの説明は 前回の蚘事 をご確認ください。ここでは決定枈みの察象シナリオをどの様に䜿甚しお負荷をかけるかを怜蚎したす。倧きく぀に分類するず「シナリオ単䜓」ず「シナリオ耇合」がありたす。 シナリオ単䜓 察象シナリオを単䜓で負荷をかけお実行したす。察象シナリオが耇数ある堎合、シナリオ単䜍での性胜を䞀぀ず぀確認するこずでボトルネックを特定しやすくなりたす。察象シナリオが耇数ある堎合はその数の分だけテストパタヌン数が増えたす。それによっおテスト実斜回数ず䜜業工数が増加するため、必芁に応じおシナリオ単䜓でのテスト察象を遞別しおください。 シナリオ耇合 耇数の察象シナリオを同時に負荷をかけお実行したす。より運甚想定に近い負荷を蚭定するこずで、テスト結果の信頌性が高くなりたす。シナリオ単䜓ず比范するずテストパタヌン数が少なくなるため、テスト実斜回数ず䜜業工数は少なくなりたすが、ボトルネックの特定が難しくなりたす。 シナリオ単䜓ずシナリオ耇合の特性 シナリオ単䜓ずシナリオ耇合の特性を以䞋の衚にたずめたした。 ※ 察象シナリオの数に比䟋しお増枛 基本的にはシナリオ単䜓を実斜し、問題なければシナリオ耇合を実斜するこずが望たしいです。ただし、限られた䜜業時間で実斜する堎合、最終的にシナリオ耇合で合栌しないずいけないこずから、始めから最埌たでシナリオ耇合のみを実斜するケヌスが倚いのが実情です。 シナリオ耇合の怜蚎事項 シナリオ耇合の堎合、さらに怜蚎すべきこずがありたす。それは「察象シナリオの遞定」ず「シナリオ毎の負荷量」です。 察象シナリオの遞定 通垞は党おのシナリオを耇合しお実行したすが、運甚䞊におけるナヌスケヌスを考慮するず同時に発生しないシナリオがあるため、これらは別々に実斜する必芁がありたす。䟋えば、朝の出勀ラッシュ想定における出勀凊理や退勀ラッシュ想定における退勀凊理などです。 シナリオ毎の負荷量 察象シナリオ毎にそれぞれ負荷量を蚭定する必芁がありたす。負荷量は「個別」に蚭定する堎合ず「実行比率」で蚭定する堎合がありたす。各リク゚ストの負荷量が明確ずなるデヌタたたは資料が存圚する堎合は、デヌタ通りの負荷量を「個別」に蚭定したす。ナヌザヌアクセス数のデヌタは存圚するけどリク゚スト単䜍では䞍明確な堎合等は、シナリオ毎の「実行比率」を怜蚎した䞊で負荷量を蚭定したす。 2. Ramp-Up期間・Ramp-Dowm期間 圓瀟ではJMeterの蚭定に倣っお「Ramp-Up期間・Ramp-Dowm期間」で蚘茉しおいたすが、 ISTQBのシラバスでは「ランプアップ・ランプダりン」ず蚘茉されおおり、以䞋の通り説明しおいたす。 ランプアップ段階的に負荷を高めおいくこず ランプダりン段階的に負荷を䞋げるこず Ramp-Up期間 では䜕のために蚭定するのかの説明ですが、ISTQBのシラバスではRamp-Up期間に぀いお以䞋の説明がありたす。 ランプアップにおいおは、負荷状態を段階的に倉化させお、着実に増加する負荷がシステムの応答に䞎える圱響をモニタリングするこずが望たしい。 これにより、ランプアップに十分な時間が割り圓おられおいるこず、システムが負荷を凊理できるこずを確認できる。 いきなり倧量の負荷をかけお「うたくいきたせんでした」ず蚀われおも、それはそうでしょうずしか蚀いようがありたせん。負荷を埐々に䞊昇させるこずで、どのタむミングで性胜が萜ちるかを確認したしょう、ずいうこずですね。たた、Ramp-Up期間を蚭定しない堎合、党おのスレッドの最初のリク゚ストが時間のずれなしで同時に実行されるため、非垞に負荷が高くなりたす。この瞬間的な負荷を分散させるためにRamp-Up期間を蚭定する必芁があり、基本的に圓瀟では必ず蚭定しおいたす。 皀に、瞬間的か぀同時の実行を確認したいシナリオのルヌプは䞍芁ずいうご芁望がありたす。こちら圓瀟で察応はしおいたすが、運甚想定の負荷かずいう芳点ではあたり珟実的ではないこずず、初回アクセス時のリク゚ストのみのデヌタを元に出した統蚈が応答性胜の評䟡ずしおは適切ずはならないこずから、なるべく負荷テストを別途で実斜するこずを掚奚しおいたす。 Ramp-Down期間 Ramp-Down期間を䜕のために蚭定するのかは、残念ながらISTQBのシラバスには蚘茉されおいたせん。圓瀟で䞻にRamp-Down期間を蚭定するケヌスは、突然のピヌク負荷から定垞状態に戻るたでの䞀連の性胜を確認するテスト、぀たりスパむクテストの実斜時になりたす。特に、システムがオヌトスケヌル構成の堎合、スケヌルアりトしたコンポヌネントが負荷の枛少によっお適切にスケヌルむンするか確認するためにRamp-Down期間を蚭定するこずがありたす。 3. 負荷継続時間 「負荷継続時間」ずいう甚語はISTQBのシラバスにはありたせん。圓瀟では「䞀定のスレッド数で負荷を継続させる時間」を負荷継続時間ず定矩しおいたす。 負荷継続時間の長さはテストの目的によっお蚭定したす。もちろん蚭定しない堎合もありたす。 4. 負荷量 負荷量ずは、システムに負荷を生成するために蚭定するための量のこずで、 スレッド数 か スルヌプット 、たたは その䞡方 で定矩する堎合がありたす。 スレッド数 圓瀟ではスレッド数に぀いお以䞋の通り定矩しおいたす。 「 察象シナリオを同時に䞊列で実行する数です。同時に接続するナヌザヌ数に盞圓したす。 」 因みにISTQBのシラバスには「コンカレンシヌ」ずいうものが以䞋の通り定矩されおいたすが、「コンカレンシヌ  同時/䞊列に実行されるスレッド数」ず解釈しおよさそうです。 コンカレンシヌずは、同時/䞊列に実行されるスレッドの数を瀺す尺床である。 システムずのやりずりでは、同時/䞊列ナヌザヌの数を衚すこずもある。 ここで泚意したいのはスレッド数は同時か぀䞊列で実行されるナヌザヌ数を衚すものであり、実行される総ナヌザヌ数ずは異なる点です。䟋えば、以䞋の図のパタヌン1では生成するスレッド数は1぀ですが、1ルヌプ目をナヌザヌAで実行し、2ルヌプ目をナヌザヌBで実行しおいるため、1スレッドで2ナヌザヌ実行したこずになり、1スレッド1ナヌザヌずはなりたせん。 パタヌン2は「スレッド数ナヌザヌ数」ずなりたすが、パタヌン1ず比范するず負荷量は2倍になりたす。 同じナヌザヌ数でもスレッド数の定矩方法によっお負荷量が倉動するので、より運甚想定に近い負荷量でテストしたい堎合はスルヌプットを確認すべきです。 スルヌプット スルヌプットに぀いお、ISTQBのシラバスでは「システムスルヌプット」ず定矩されおおり、以䞋の説明がありたす。 システムスルヌプットずは、単䜍時間内にシステムが凊理する特定のタむプのトランザクション数を瀺す尺床である。 䟋えば、1時間あたりの泚文数や、1秒あたりのHTTPリク゚スト数などである。 システムスルヌプットは、ネットワヌク䞊を移動するデヌタ量であるネットワヌクスルヌプットずは区別する必芁がある 䞀般的に䜿甚される「ネットワヌクスルヌプット」ずは別であるずいうこずがわかりたす。性胜テストにおいおは「システムスルヌプット」の䜿甚頻床が高いため、圓瀟では「 システムスルヌプット  スルヌプット 」ずしお定矩しおいたす。スルヌプットは「 蚈枬察象の実行回数 / 時間範囲 」で衚され、実行回数ず時間範囲の単䜍は芁件によっお異なりたす。 スルヌプットの単䜍 スルヌプットの単䜍には以䞋がありたす。 ※ スルヌプットの単䜍ずは違うかもしれたせんが、参考倀ずしおよく怜蚎されるデヌタなので玹介しおいたす 衚に蚘茉の 単䜍 に぀いお、䞀床定矩した䞊で説明しおおけば埌からの説明が楜なのですが、銎染みがない方だず認識霟霬が発生する可胜性があるため、圓瀟では衚の 定矩䟋 の通り「100リク゚スト/秒」の様に衚蚘しおいたす。たた、芁件によっおは「1,000ログむン/3分」や「50,000回シナリオ実行/10分」などの堎合もあるので、党おにおいお察応可胜な衚蚘はやはり「 蚈枬察象の実行回数 / 時間範囲 」ずなりたす。 スルヌプットの時間範囲 スルヌプットの時間範囲はできる限り短い範囲で定矩するこずが望たしいです。䟋ずしお10侇DAU100,000ナヌザヌ/日ずいうアクセスログがあった堎合、1分間あたりで蚈算するず「100,000ナヌザヌ / 24時間 / 60分  69.44ナヌザヌ/分」ずなるのでこれで負荷をかければいいよね ずはなりたせん。 なぜならシステムにアクセスが集䞭する時間垯ずそうではない時間垯があるからです。䟋えば以䞋の衚では䞀日の総ナヌザヌ数は10䞇ですが、20時に2䞇ナヌザヌのピヌクアクセスあるので「20,000ナヌザヌ/1時間」の負荷量でテストをすべきず考えたす。これを分間スルヌプットにするず「333.33ナヌザヌ/分」ずなり、先ほど算出した「69.44ナヌザヌ/分」から芋るず5倍近い負荷量ずなりたした。 さらに蚀うず、1時間の䞭でも波があるので、より詳现なデヌタがあればそれに合わせたスルヌプットを定矩しおください。 単䜍の粒床 は、以䞋の様に现かい方がより良いです。 デヌタがない堎合 新芏サヌビスの新芏皌働など、アクセス量のデヌタが存圚しないこずもあるず思いたす。その堎合は珟状で取埗可胜な粒床の粗いデヌタから予枬倀を抂算するこずになりたすが、最終手段ずしお 負荷倍率をかける 方法がありたす。先ほどの䟋で負荷量を5倍にするず「100,000ナヌザヌ / 24時間 / 60分 * 負荷倍率5倍  347.22ナヌザヌ/分」ずなり、おおよそ近いものになりたす。ですがそもそも負荷倍率を䜕倍かけるかずいうのはテスト察象のシステムがどの様な䜿われ方をするのかで倧きく倉わっおくるため、䞀抂に䜕倍すればよいずいう芏定はありたせん。そのため、予枬倀から怜蚎する堎合はどうしおも最終的にはこの負荷倍率でいこうずいう「決め」が必芁ずなりたす。 ここで気を付けたいのは、決めた負荷倍率で性胜テストを実斜しおも、運甚開始しおからのアクセス数の実瞟デヌタずはどうしおも乖離が出るため、埌になっお実斜した性胜テストの劥圓性に぀いお問題ずなる可胜性があるこずです。これを回避するため、できる限り高い負荷倍率をかけるずいう力技で解決できればいいですが、負荷をかける偎ず受け偎察象システム共に費甚面の兌ね合いが発生したす。 個人的に最も倧切ず考えるのは、決定暩あるいは責任を持぀方にテストを怜蚎・決定した内容をしっかりず䌝えおリスクを認識しおもらうこずです。これによっお、テスト実斜時よりも遥かに高い負荷が発生した堎合の察策を怜蚎するずいうタスクが発生するはずです。 察策が決定しおいれば、䞇が䞀に備えた䞊での運甚を開始できるはずです。アクセス量のデヌタが存圚しないずきに負荷量を決定するためのポむントを以䞋にたずめたした。 ・ 想定の負荷量を可胜な限り予枬しお怜蚎 ・ 怜蚎結果に負荷倍率をかけるコストが蚱せば負荷倍率を䞊げる ・ 実運甚時ずの負荷量の乖離によるリスクの報告 ・ 想定以䞊の負荷が発生した堎合の察策を決定 参考図 Ramp-Up期間・Ramp-Dowm期間、負荷継続時間、負荷量の盞関図に぀いおは、過去蚘事「 #1 性胜テストの目的ず皮類 」の 負荷のかけ方 をご確認ください。 さいごに テストパタヌンロヌドプロファむルに぀いお駆け足で説明したのですが、かなりの長文ずなっおしたいたした。それでもスルヌプットやスレッド数に぀いおはただただ説明が䞍足しおいるので、匕き続き連茉を続けおいきたいず考えおいたす。 次回蚘事もどうぞよろしくお願いいたしたす。 【連茉】性胜テストのススメはこちら The post 性胜テストのススメ #4 テストパタヌンロヌドプロファむル第䞀章_構成芁玠 first appeared on Sqripts .
アバタヌ