AGESTのブログ - TECH PLAY

TECH PLAY

AGEST

AGEST の技術ブログ

å…š493ä»¶

こんにちは。GSです。 Visual Studio CodeずGitHub Copilotの組み合わせは非垞に匷力です。倚くの人が「GitHub Copilotを䜿うコヌド自動補完を䜿う」ず考えおいるかもしれたせんが、Visual Studio Codeのアップデヌトにより、さらに䟿利な機胜が䜿えるようになっおいたす。これらの機胜を駆䜿するこずで、Visual Studio Codeだけでより倚くの䜜業が完結するようになりたした。 これらの䟿利で匷力な機胜を螏たえ、AIず共に開発を行うための手順ず実䟋をいく぀かご玹介したす。 「 GitHub Copilotを䜿っおみたら開発効率が劇的に向䞊した Sqripts」ずいう蚘事もありたすので、それを合わせお読むこずで、GitHub Copilotに぀いおの理解がより深たるず思いたす。 環境 この蚘事では、Pythonコヌドを察象ずしおいたす。そのため、Pythonを実行できる環境を敎え、Python向けの拡匵機胜をむンストヌルしおいたす。 以䞋は、今回䜿甚した拡匵機胜の䞀芧です。 Visual Studio Code バヌゞョン: 1.85.1 コミット: 0ee08df0cf4527e40edc9aa28f4b5bd38bbff2b2 日付: 2023-12-13T09:48:16.874Z Electron: 25.9.7 ElectronBuildId: 25551756 Chromium: 114.0.5735.289 Node.js: 18.15.0 V8: 11.4.183.29-electron.0 OS: Darwin arm64 23.2.0 Visual Studio Code 拡匵機胜 Python 名前: Python ID: ms-python.python 説明: IntelliSense (Pylance), Linting, Debugging (Python Debugger), code formatting, refactoring, unit tests, and more. バヌゞョン: 2023.22.1 パブリッシャヌ: Microsoft VS Marketplace リンク: https://marketplace.visualstudio.com/items?itemName=ms-python.python Pylance 名前: Pylance ID: ms-python.vscode-pylance 説明: A performant, feature-rich language server for Python in VS Code バヌゞョン: 2023.12.1 パブリッシャヌ: Microsoft VS Marketplace リンク: https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance GitHub Copilot 名前: GitHub Copilot ID: GitHub.copilot 説明: Your AI pair programmer バヌゞョン: 1.151.0 パブリッシャヌ: GitHub VS Marketplace リンク: https://marketplace.visualstudio.com/items?itemName=GitHub.copilot GitHub Copilot Chat 名前: GitHub Copilot Chat ID: GitHub.copilot-chat 説明: AI chat features powered by Copilot バヌゞョン: 0.11.1 パブリッシャヌ: GitHub VS Marketplace リンク: https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat GitHub Pull Requests and Issues 名前: GitHub Pull Requests and Issues ID: GitHub.vscode-pull-request-github 説明: Pull Request and Issue Provider for GitHub バヌゞョン: 0.78.1 パブリッシャヌ: GitHub VS Marketplace リンク: https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github GitHub Repositories 名前: GitHub Repositories ID: GitHub.remotehub 説明: Remotely browse and edit any GitHub repository バヌゞョン: 0.62.0 パブリッシャヌ: GitHub VS Marketplace リンク: https://marketplace.visualstudio.com/items?itemName=GitHub.remotehub GitHub Copilot Chatに぀いお ゚ヌゞェント 解説に入る前に、GitHub Copilot Chatの重芁な機胜である゚ヌゞェントに぀いお説明したす。GitHub Copilot Chatは、開発者のコヌディング䜓隓を䞀新する「゚ヌゞェント」ずいう先進的な機胜を提䟛したす。この゚ヌゞェントはAI技術を利甚しお、開発者ずの察話を通じおコヌド生成や問題解決をサポヌトしたす。埓来のコヌド補完機胜を超え、開発者の意図を理解し、耇雑なプログラミングタスクを支揎するこずで、GitHub Copilotは単なるツヌルを超えた存圚ぞず進化したした。開発者の思考を拡匵する「パヌトナヌ」ずしおの圹割を果たし、゜フトりェア開発の生産性ず創造性を高める可胜性を秘めおいたす。 Visual Studio Codeの最新バヌゞョンでは、GitHub Copilotの機胜を拡匵する「゚ヌゞェント」機胜が远加されたした。この機胜は、@workspace、@vscode、@terminalずいう3぀のキヌワヌドに関連しおいたす。 @workspaceキヌワヌドを䜿甚するず、GitHub Copilotの゚ヌゞェント機胜はプロゞェクト党䜓のコンテキストを把握し、コヌド生成に掻甚したす。これにより、プロゞェクト固有のコヌディング芏玄やラむブラリの䜿甚方法に合わせた提案が可胜になりたす。 @vscodeキヌワヌドは、Visual Studio Code固有の機胜や蚭定に関連したコヌド提案を行いたす。これぱディタのカスタマむズや拡匵機胜開発に特に有甚です。 @terminalキヌワヌドを䜿甚した゚ヌゞェント機胜は、コマンドラむンツヌルやスクリプト䜜成に関するサポヌトを提䟛したす。これにより、CLIツヌルの䜿甚方法やスクリプトの最適化に関する掞察が埗られ、効率的な開発環境の構築や自動化スクリプトの䜜成をサポヌトしたす。 これらの機胜により、開発者は特定のコンテキストに適したコヌドをより効率的に生成できるようになりたす。 スラッシュコマンド こちらはGitHub Copilotに察しお䞎える呜什です。GitHub Copilot Chatの画面で「/」キヌを抌すこずで候補が衚瀺されたす。たた、「@」で始たるものは前述した゚ヌゞェントに関するものです。 スラッシュコマンドは、単䜓で実行できるものず、゚ヌゞェントず䜵甚しお実行されるものの2皮類に分かれたす。以䞋は各スラッシュコマンドに関する簡単な説明です。 @workspace /explain : 遞択したコヌドがどのように動䜜するかをステップバむステップで説明したす。 䟋:  @workspace /explain function calculateDaysBetweenDates(begin, end) {...} @workspace /fix : 遞択したコヌドのバグを修正する提案をしたす。 䟋:  @workspace /fix function calculateDaysBetweenDates(begin, end) {...} @workspace /new : 自然蚀語の説明に基づいお新しいプロゞェクトを䜜成したす。 䟋:  @workspace /new ホヌムペヌゞず玹介ペヌゞを持぀新しいReactアプリケヌションを䜜成したす。 @workspace /newNotebook : あなたの説明に基づいお新しいJupyter Notebookを䜜成したす。 䟋:  @workspace /newNotebook pandasずmatplotlibを䜿甚したデヌタ分析のためのノヌトブックを䜜成したす。 @workspace /tests : 遞択したコヌドのためのナニットテストを生成したす。 䟋:  @workspace /tests function calculateDaysBetweenDates(begin, end) {...} @vscode /api : VS Code拡匵開発に関する質問をしたす。 䟋:  @vscode /api VSCode拡匵機胜で新しいコマンドを䜜成する方法は? @terminal : 統合タヌミナルで䜕かをする方法を説明したす。 䟋:  @terminal npmパッケヌゞをむンストヌルする方法は 特定の゚ヌゞェントを指定せずに䞎えられたコマンドや指瀺は、珟圚開いおいるファむルを察象ずしたす。たた、ファむル内のテキストを遞択しおいる堎合、察象範囲は遞択範囲に限定されたす。さらに、呜什が特定の゚ヌゞェントを前提ずしおいる堎合は、゚ヌゞェント名が自動的に付䞎されたす。䟋えば、 /tests ずいう指瀺は、 @workspace /tests に眮き換えられるこずもありたすが、この眮き換えは必須ではありたせん。Inline Chatで実行する堎合は /tests だけでも実行可胜です。 どこでコマンドを実行するか、たたどのようなコマンドを実行するかによっお、コマンドの察象ずなるコンテキストは倉わっおきたす。 プロゞェクトの自動䜜成 GitHub Copilot Chatを䜿甚するこずで、指定した内容のプロゞェクトを䜜成できたす。耇雑なプロゞェクトを䜜成する堎合には、「䜜成したいプロゞェクトに関する詳现な情報」を提䟛する必芁がありたす。 新芏にVisual Studio Codeのりむンドりを立ち䞊げ、GitHub Copilot Chatの拡匵機胜を䜿甚しおプロゞェクトを䜜成しおみたしょう。プロゞェクトの䜜成には、 @workspace /new ずいう呜什を䜿甚したす。 今回は以䞋の呜什を甚いおプロゞェクトを䜜成したす。 @workspace /new hello worldを暙準出力するpythonプロゞェクト。プロゞェクト名はexample1。 ワヌクスペヌスの䜜成ボタンを抌し、保存先フォルダを遞択するこずで、ワヌクスペヌスが䜜成されたす。 ワヌクスペヌスが䜜成されるず、りむンドりが立ち䞊がっおきたす。 Next.jsを䜿甚したワヌクスペヌスやFast APIを䜿甚したワヌクスペヌスなど、フレヌムワヌク名を指定するこずで、それに応じたワヌクスペヌスを䜜成するこずが可胜です。 Inline Chatで自動生成 「Hello World」を出力する src/main.py を、GitHub Copilot Chatの機胜の䞀぀であるInline Chatで曞き換えおみたす。 src/main.py を開き、コマンドパレットからInline Chatを実行しおみたしょう。 Ctrl + Shift + pMacではCommand + Shift + pでコマンドパレットを開き、「inline chat」ず入力したす。するず、Inline Chatに関する候補がいく぀か衚瀺されるず思うので、その䞭から「Inline Chat: Start Inline Chat」を遞択したす。 「main関数を䜜成し、すべおの凊理を含めおください」ず入力し確定させるず、䟝頌内容に沿ったコヌドが提案されたす。 提案されたコヌドが適切だず思った堎合は、「同意する」ボタンを抌しお結果を反映させたしょう。もし適切でないず感じた堎合は、「砎棄」ボタンを抌すか、新たに呜什を入力しお別のコヌドを提案しおもらいたしょう。 今回は、提案されたコヌドに同意し、さらに続けお関数を曞いおもらいたす。 「関数の実行時間を蚈枬するデコレヌタヌを䜜成し、main関数に適甚しおください」ず入力し、実行しおみたしょう。 新たなデコレヌタヌ甚関数が䜜成され、それがmain関数に適甚されたコヌドが提案されたした。 「同意する」ボタンを抌しお確定させ、コヌドを実行しおみたしょう。 GitHub Copilotぞの指瀺に埓っお指定した通りのコヌドが䜜成され、問題なく実行できたした。 GitHub Copilotを䜿甚した䞍具合の説明・修正 先ほどのコヌドを䞀郚曞き換え、゚ラヌが発生するようにしたした。今回はprint関数に枡しおいる文字列から、ダブルクオヌテヌションを削陀しおみたした。 ゚ラヌに察する説明や修正䟝頌の方法は、䞀般的にヒントのアむコンから行われるこずが倚いですが、Inline Chatを䜿甚するこずで、説明ず修正案の提䟛を同時に行うこずが可胜です。 ゚ラヌのある箇所にカヌ゜ルを圓お、Inline Chatを起動しおみたしょう。今回はCtrl + iMacではCommand + iのショヌトカットキヌを䜿甚しお起動したす。 /fix 呜什䞍具合に察する修正提案コマンドに゚ラヌメッセヌゞが远加された状態でInline Chatが起動したす。この状態で呜什を確定させるず、゚ラヌの原因から修正内容、実際の修正方法たでがすべお衚瀺されたす。提案された修正内容を適甚したい堎合は、「同意する」ボタンを抌しお操䜜を完了させたす。 タヌミナルから゚ラヌ解決 タヌミナルから、先ほど゚ラヌが発生しおいた main.py を実行しおみたしょう。 小さなダむアログが衚瀺されたす。その䞭にある「Copilotを䜿甚しお説明する」を抌すず、 次に、Inline Chatの画面が衚瀺され、最埌に実行したコマンドに関する説明が衚瀺されたす。 CLIコマンドを聞く調べる タヌミナルを䜿甚しおいる際、どのようなコマンドを打぀べきか知りたくなるこずがありたす。盎接Copilot Chatに質問するこずも可胜ですが、Inline Chatを䜿甚するこずでより効率的に質問し、回答を埗るこずができたす。 今回は、このワヌクスペヌスをgitで管理するために必芁なコマンドを聞いおみたしょう。 タヌミナルでCtrl + iMacではCommand + iのショヌトカットキヌを抌すずInline Chatが起動したす。 「このワヌクスペヌスをgitで管理したい」ず質問を入力するず、 このように、必芁なコマンドを教えおもらうこずができたす。むンタヌネットで怜玢する手間が省けるのは䟿利ですね。 今回は、 git init コマンドを実際に実行し、このワヌクスペヌスをgit管理察象ずしお蚭定したしょう。 最埌にタヌミナルで実行したコマンドを説明する git init コマンドを実行した埌、Inline Chatを起動したす。チャット欄に衚瀺されおいる @terminal の埌ろに続けお #terminalLastCommand を远加し、確定したしょう # を入力するず远加のコマンド候補が衚瀺されたす。 実行したコマンドずその結果に関する状況を確認するのに、この方法は適しおいるようです。 タヌミナルの文字列を遞択しお説明させる ゚ラヌが発生する状態のPythonファむルを実行した埌、゚ラヌ内容をマりスで遞択したす。その埌、Inline Chatを起動し、チャット欄に衚瀺されおいる @terminal の埌ろに続けお #terminalSelection を远加しお確定させたす。これにより、遞択した文字列に぀いおGitHub Copilotに説明を求めるこずができたす。 タヌミナルに衚瀺されおいる文字列であれば、遞択するこずによっおGitHub Copilotに様々な説明を求めるこずができたす。これは倚くの甚途に利甚できる䟿利な機胜だず思いたす。 GUIでコミットメッセヌゞを自動生成 コミットメッセヌゞを考えるのは意倖ず難しい䜜業です。しかし、GitHub Copilotには、コミットされる内容を元に自動的にコミットメッセヌゞを提案する機胜がありたす。 たず、すべおのファむルをコミットするこずから始めたしょう。 git add . git commit -m "first commit" 続いお、 src/main.py ファむルを修正したす。 今回は「hello world!」ずいうメッセヌゞをカタカナに修正したした。 この倉曎を加えた埌、src/main.pyを再床ステヌゞングしたしょう。 git add src/main.py Visual Studio Codeのサむドメニュヌからgitを開くず、コミットメッセヌゞ欄にキラキラマヌクが衚瀺されおいるこずが確認できたす。 このキラキラマヌクのボタンを抌すず、コミットメッセヌゞが自動的に生成されたす。 コミットメッセヌゞの統䞀に悩んでいるチヌムには、この「ボタン䞀発で生成されるコメントを暙準ずする」ずいうアプロヌチも良い遞択かもしれたせん。 コミットメッセヌゞからその内容を掚枬しにくい堎合は、コミットが倧きすぎる可胜性がありたす。コミットメッセヌゞの自動生成機胜を適切に利甚するこずで、コミットのサむズも自然ず小さくなる傟向があるでしょう。 CUIからコミットメッセヌゞを自動生成 Visual Studio Codeのタヌミナルを䜿甚するず、コミットメッセヌゞを自動生成するこずができたす。たず、タヌミナルで git add src/main.py を実行しおみたしょう。するずタヌミナル䞊にキラキラアむコンが衚瀺されたす。このアむコンをクリックし、「コミットメッセヌゞの生成」を遞択するこずで、メッセヌゞの自動生成を行うこずができたす。 生成されたメッセヌゞは、そのたた git commit コマンドずしお衚瀺されたす。 Inline Chatでの @terminal ゚ヌゞェントずの察話、各皮コマンドの説明・修正、gitの拡匵機胜など、Visual Studio CodeのタヌミナルずGitHub Copilotの組み合わせは非垞に匷力です。別途タヌミナル゜フトや環境を甚意する必芁なく、Visual Studio Codeのタヌミナルだけで䜜業する方が効率的な堎合もあるでしょう。 ドキュメント自動生成 関数や凊理に自動的にドキュメントを付けるこずができたす。 src/main.py を開き、Inline Chatから /doc を入力しお確定しおみたしょう。 今回の䟋では、既存の関数に察しおコメントが自動生成され、その内容が提案されたした。提案されたコメントが適切だず思った堎合は、「同意する」ボタンを抌しおコメントを確定するこずができたす。コメントを付けるこずで、IntelliSenseむンテリセンスの䜿い勝手がさらに良くなりたす。関数にコメントを぀けるルヌルを蚭けおいるチヌムには特におすすめの機胜です。 テストコヌド自動生成 /tests 呜什を䜿甚しお、 src/main.py に察するpytestを䜿甚したテストコヌドを自動生成しおみたしょう。src/main.pyを開き、Inline Chatを起動したす。さらに、 /tests 呜什に「pytestを䜿甚したテストコヌドにしおください」ずいう指瀺を付け加えたした。 现かな指瀺を䞎えるこず今回はテストツヌルを指定で、生成されるテストコヌドをある皋床コントロヌルできるようです。このような指瀺をテンプレヌト化しおおくず、効率的にテストコヌドを䜜成するたたは䜜成させるこずが可胜になるかもしれたせん。 たずめ GitHub Copilotの゚ヌゞェント機胜は、開発者が抱える疑問や問題に盎接察応し、解決策を提瀺する匷力なアシスタントずしお機胜したす。これにより、冗長な怜玢䜜業を省略し、コヌディングの効率を倧幅に向䞊させるこずが可胜です。たずえば、新しいAPIの孊習や新しいラむブラリの䜿い方の理解が必芁な堎合、GitHub Copilotに問い合わせるこずで迅速に答えを埗られたす。たた、コヌディング䞭に遭遇する様々な゚ラヌに察しおは、自動的な修正提案や説明を通じおデバッグのスピヌドを䞊げるこずが可胜です。 GitHub Copilotは単なるコヌド自動補完ツヌルにずどたらず、コヌドを曞くナヌザヌを理解し、それに応じたサポヌトを提䟛する知的なパヌトナヌのような存圚です。これは特に、独孊で孊ぶ開発者や新しいプロゞェクトに取り組む際のサポヌトずしお非垞に有効です。Visual Studio Code内で盎接アクセスできるドキュメントの自動生成やテストコヌドの䜜成、コミットメッセヌゞの提案など、開発の各ステヌゞで朜圚的なサポヌトを提䟛したす。 最埌に、GitHub Copilotは開発者ずの察話を通じお進化するAIツヌルです。ナヌザヌのフィヌドバックや䜿甚パタヌンに基づき、より適切なサポヌトを提䟛するずいう点で評䟡されおいたす。AIテクノロゞヌず人間の創造性を組み合わせるこずで、゜フトりェア開発の未来はより刺激的か぀効率的なものになるでしょう おたけ この文章は、プロのラむタヌになりきったChatGPTによっお校閲されたした。タむトルず画像の䜜成も、ChatGPTずDALL-E3が担圓したした。 文章校閲に䜿甚したプロンプトは以䞋の通りです。 # ペル゜ナ プロのラむタヌ # 呜什 入力文章をステップに沿っお修正しおください。 # ステップ 1. 誀字脱字修正 2. 党䜓の文章トヌンを把握 3. 党䜓の文章スタむルを把握 4. 文章冒頭のトヌン、スタむルに合わせお、党䜓の文章を調敎 5. 修正埌の文章を出力 # 入力 ${入力文章} ブログの党文を䞀気に貌り付ける堎合も、ブロックごずに分けお貌り付ける堎合も、どちらの方法を遞んでも、しっかりず校閲するこずができたす。たた、「ステップバむステップ」ずいうLLMLarge Language Modelsの性胜を匕き出すマゞックワヌドがありたす。このマゞックワヌドをさらに詳现に分解し、具䜓的な手順を曞き出すこずで、より高い粟床での結果を期埅するこずが可胜です。「step by specified function」ずでも蚀いたしょうか。 The post Visual Studio CodeずGitHub Copilotでコヌディング効率を革新AIを駆䜿した開発ガむド first appeared on Sqripts .
この連茉は、登堎しお20幎が過ぎ、成熟期を迎え぀぀ある「アゞャむル開発」を解説したす。アゞャむル開発に぀いおは、䞖の䞭にたくさんの曞籍や情報があふれおいたすが、アゞャむルコヌチずしお10幎以䞊の珟堎経隓をもずに、あらためお孊び盎したい情報を䞭心にたずめおいきたす。 第14回目のテヌマは、リヌンスタヌトアップずDevOpsを解説したす。 この内容はUdemyで公開しおいるオンラむンコヌス「 珟圹アゞャむルコヌチが教える半日で理解できるアゞャむル開発ずスクラム 入門線 」の内容を元にしおいたす。 あらためお孊びたいアゞャむル開発 連茉䞀芧 ※クリックで開きたす 第1回アゞャむル開発の過去、珟圚、未来を知ろう 第2回声に出しお読みたいアゞャむルマニフェスト 第3回埓来型開発ずアゞャむル開発の違い その 第4回埓来型開発ずアゞャむル開発の違い その 第5回アゞャむル開発のよくある誀解を解いおいこう 第6回䞖界䞭で倧人気の秘密に迫るスクラムを䜿った゜フトりェア開発 第7回わかるようでわかりにくいスクラムチヌムの責任 第8回スクラムむベントの実践方法 第9回゚クストリヌム・プログラミングずその䟡倀 第10回゚クストリヌム・プログラミングの原則ず基瀎プラクティス 第11回゚クストリヌム・プログラミングの応甚プラクティス 第12回リヌン゜フトりェア開発 第13回゜フトりェア開発における「かんばん」 第14回さたざたな方法論 − リヌンスタヌトアップ・DevOps リヌンスタヌトアップ リヌンスタヌトアップは、2011幎に゚リック・リヌスさんが考えた、䞻にスタヌトアップのための起業の開発手法です。アゞャむル開発から掟生した開発手法ですが、これたでの開発手法が開発寄りだったのに察し、事業やプロダクトよりの内容なので、ビゞネス偎の人間や起業家など、開発倖の人たちに圱響を䞎え、もう10幎以䞊前になりたすが、日本語蚳がでたずきは、ずおも話題になりたした。 ずくに、圓時MITメディアラボの所長だった䌊藀穰䞀氏がリヌンスタヌトアップを、「 地図を捚おおコンパスを頌りに進め 」ず䟋えおいるのも有名です。この蚀葉は、たさにアゞャむル開発を衚した蚀葉ず蚀えたす。 その名のずおり、リヌン思考の圱響をうけおおり、起業しお開発したプロダクトに察しお、成功に導く確率を高めるための方法がたずめられおいたす。起業家だけでなく、゜フトりェアを䜿った新芏事業を立ち䞊げるずきにも参考になる内容です。 リヌンスタヌトアップのサむクル リヌンスタヌトアップのフィヌドバックサむクルは䞊の図のようになっおいたす。アむデアができ、コヌドが䜜られ、デヌタを集め、さらにアむデアに぀なげおいく流れになっおいたす。このあたりはXPやスクラム、アゞャむル開発党般の流れにずおも䌌おいたすが、デヌタを重芁芖しおいる点が、今颚なスタヌトアップが奜むずころでしょう。 リヌンスタヌトアップが広たったあずに、リヌンUX、リヌンキャンバスなど、たくさんのリヌン系アむデアも登堎するようになっおきたした。圓時のシリコンバレヌでは、リヌン思考がブヌムになっおいたのだず思いたす。 䞀方で、10幎経った今、リヌンスタヌトアップを芋おみるず、あたり話題になるこずはなくなりたした。時代遅れずいう蚀葉もちらほら芋かけたす。リヌンスタヌトアップの実瞟が囜内でどれだけ出おくるのかが楜しみです。 DevOps 切り離しおはならないものを切り離しおしたうず、問題が起きがちです。たずえば、開発ずテスト。たずえば、開発ず運甚です。開発ず運甚が別れおしたった堎合、問題の倚い゜フトりェアをデリバリヌしおしたい、運甚が疲匊するずいった問題が起きたりしたす。こういった匊害を解決する方法はずっず議論されおきたしたが、そこから「DevOps」ずいう蚀葉が生たれおきたのだず思いたす。 DevOpsに぀いおは、ここでは開発手法ずしお列挙しおいたすが、 Wikipedia やさたざたなむベントの発衚資料を調べおみるず、開発手法ずしおのDevOpsもあるみたいです。䞀昔前だず、開発ず運甚が分離しおいる組織においお「サヌバのAdmin暩限を䞎えるのがDevOpsだ」ずいう意芋もありたした。ちょうどそういう珟堎で働いおいたので、「暩限を䞎える  信頌する ずいうこずなのだな」ず劙に玍埗した蚘憶がありたす。 図は [翻蚳] DevOpsにおける継続的テストずは䜕か より DevOpsは、䞊蚘の画像のように、無限倧の圢で衚珟されるこずが倚いです。芋おのずおり、巊偎に開発をさす「Dev」があり、右偎には運甚をさす「Ops」がありたす。それぞれのルヌプでPlan、Branch・・・ずいったアクティビティが䞊んでおり、2぀のルヌプが぀ながっお無限倧のような圢になっおいたす。このサむクルを高速にたわすこずで、改善を続けおいきたす。 DevOpsに関しおは、画像共有サむトのフリッカヌの゚ンゞニアが発衚した「 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr 意蚳 䞀日に10回以䞊デプロむする フリッカヌにおける開発ず運甚の協力䜓制ずいうスラむドが有名です。 DevOpsが誕生する2009幎の発衚ですが、今芋おもヒントがたくさんある内容です。圓時のフリッカヌはブロガヌに倧人気のサむトでしたが、トップクラスの䌁業は、日に10回もリリヌスするのかず私は圓時衝撃を受けたした。この日に䜕回もデプロむ・・・ずいうのは、珟圚でも継続的デリバリなどの文脈で話題になるプラクティスず蚀えたす。そしお、Flickerの発衚から10幎がすぎ、今では日に䜕回もリリヌスするのは圓たり前になりたした。 DevOpsを実珟するツヌル DevOpsのそれぞれのカテゎリ・アクティビティは、ツヌルで実珟できたす。 コヌド GitHubやGitLabなど ビルド JenkinsなどのCIツヌル テスト 自動テスト、  パッケヌゞ  コンテナ技術、ラむブラリ管理 リリヌス リリヌス自動化 コンフィギュレヌション むンフラの自動構築、オヌケストレヌションツヌル モニタヌ パフォヌマンスモニタリングツヌル これたで玹介したプラクティスずは違い、ツヌルで実珟しようずしおいるのは興味深い点です。ツヌルを掻甚するのが埗意な日本人であれば、DevOpsの導入障壁は比范的䜎いかもしれたせん。 DevOpsのメトリクス デプロむ頻床 DevOpsの目暙はずおも具䜓的なメトリクス指暙ずしお瀺されおいたす。 ひず぀めの指暙は、デプロむの頻床です フリッカヌの事䟋にもありたしたが、リリヌスの頻床をカりントしたす。リリヌス回数を数えるこずで、継続的な改善が行われおいるかどうかの目安になりたす。 DevOpsのメトリクス 倉曎のリヌドタむム 2぀目は「倉曎のリヌドタむム」です。 ゜ヌスコヌドに倉曎のコミットが行われ、それが本番環境にリリヌスされるたでの時間をリヌドタむムずしお蚈枬したす。これは短ければ短いほど、ナヌザに䟡倀が玠早く提䟛されおいるず考えるこずができたす。 DevOpsのメトリクス 倉曎障害率 3぀目は「倉曎障害率」です。 いくらリリヌス回数が増え、リヌドタむムがはやくなっおも、倉曎したずきの障害が倚くなっおしたったらもずもこもありたせん。回数を増やし、時間を短くするのず同時に、障害が発生する割合をかぎりなくれロにしおいく必芁がありたす。 DevOpsのメトリクス サヌビス埩元時間 最埌は「サヌビス埩元時間」です。MTTR (平均埩旧時間たたは平均修埩時間)ずも呌ばれたす。 障害が起きおしたった堎合にどれぐらいの時間で回埩できるかを蚈枬したす。短ければ短いほど、ナヌザヌぞの圱響は小さくなりたす。 これらの目暙は、4 Key Metrics ず呌ばれおいたす。 4 Key Metricsは、2022幎にリリヌスされた最新のテクノロゞヌ動向がたずめられた「 テクノロゞヌレヌダヌ 」ずいうレポヌトでも、積極的に採甚すべきものずしお取り䞊げられおいたす。よっお今埌、 この4 Key Metricsが、䞖界䞭に広がっおいく可胜性を秘めおいたす。 DevOpsに぀いおは、さたざたな曞籍が出おいたすが、今回玹介した4 Key Metricsずいう目暙を䞭心に調べるずわかりやすいです。このあたりの情報がよくたずたっおいるのは、曞籍『 LeanずDevOpsの科孊 テクノロゞヌの戊略的掻甚が組織倉革を加速する 』です。継続的デリバリヌのJezz Hanbleさんも著者に名を連ねおいたす。 Googleからも 4 Key Metricsのレポヌトが公開されおいたす 。ご興味があれば、あわせおご確認ください。 連茉䞀芧 第1回アゞャむル開発の過去、珟圚、未来を知ろう 第2回声に出しお読みたいアゞャむルマニフェスト 第3回埓来型開発ずアゞャむル開発の違い その 第4回埓来型開発ずアゞャむル開発の違い その 第5回アゞャむル開発のよくある誀解を解いおいこう 第6回䞖界䞭で倧人気の秘密に迫るスクラムを䜿った゜フトりェア開発 第7回わかるようでわかりにくいスクラムチヌムの責任 第8回スクラムむベントの実践方法 第9回゚クストリヌム・プログラミングずその䟡倀 第10回゚クストリヌム・プログラミングの原則ず基瀎プラクティス 第11回゚クストリヌム・プログラミングの応甚プラクティス 第12回リヌン゜フトりェア開発 第13回゜フトりェア開発における「かんばん」 第14回さたざたな方法論 − リヌンスタヌトアップ・DevOps The post 第14回 さたざたな方法論 − リヌンスタヌトアップ・DevOps first appeared on Sqripts .
こんにちは。クオリティマネヌゞャヌのおすぎです。 私は䞭囜やベトナムの䌁業を掻甚したオフショア開発プロゞェクトのPMOずしお掻動しおきたした。 昚今のオフショア開発は日本䌁業内にノりハりが蓄積されお開発プロセスも成熟しおきたしたし、オフショア䌁業も日本䌁業の商習慣や品質基準の理解が進んできたこずで成果物の品質も安定しおきた印象がありたす。 いたやオフショア開発なしの゜フトりェア開発に出䌚う方が少ないのではないでしょうか。 しかし数幎前のオフショア開発では、これたでの゜フトりェア開発ではあたり出䌚うこずのなかった問題が出おくるため、日々新しい課題ず向き合いながらプロゞェクトを進めおいたした。 そんなオフショア開発でよく目にしおいた事䟋ず、その改善策の䞀䟋をご玹介いたしたす。 問題動くこずを優先する傟向がある オフショア開発の魅力の぀にコヌディングのスピヌドがありたすが、仕事の進め方を聞いおみるずトラむ゚ラヌを繰り返しお䜜り蟌んでいくメンバヌが倚かったです。 オフショアメンバヌが䞍慣れなプログラム蚀語であっおも、習埗速床は早くどんどん䜜り蟌んでいきたす。 しかし、正しく実装しおいるかは受入偎が慎重に確認する必芁がありたす。色々詊したけど䞊手く動かなかったずいう理由で、基本蚭蚈の方針䟋えばアヌキテクチャ蚭蚈ずは違った独自の蚭蚈で察応するこずがあるからです。 コヌドレビュヌで怜出できるものもありたすが、コヌド量が倚いず芋萜ずしおしたうケヌスがありたす。他にも動䜜確認するず動いおいるように芋えおしたうためレビュヌが甘くなるこずもありたす。そのためプロゞェクトが進んでいくず埓来の蚭蚈ず独自の蚭蚈で敎合が取れなくなる凊理が出おくるこずがありたす。 修正するにも工皋を遡らないず修正できない重節なバグに繋がるこずがあり、品質を安定させるために倚くの工数が必芁になっおしたいたす。 察策 詳现蚭蚈曞を日本偎で䜜成する、䜜業指瀺曞内容を充実する、リリヌスされた゜ヌスコヌドを现郚たでレビュヌする、など察応できるこずは倚くありたすが、珟実的にはその工数に耐えられないこずが倚いです。 このような堎合はすべおを䞀気に解決しようずしおも無理があるため、優先床を぀けお段階的に解決するように進めるのが良いず思いたす。 䞀䟋ずしお軜埮なバグには目を぀むり、重節なバグ怜出を枛らすために基本蚭蚈に沿っおいるかずいう芳点のみ集䞭しおレビュヌする、ずいう察策が考えられたす。 効果 基本蚭蚈以倖のコヌドレビュヌは優先床を䞋げるこずになるため、バグの怜出数が倧きく枛るこずはないず思いたすが、重節なバグを枛らすこずでバグの再指摘の件数やデグレの発生が枛り、バグの消化件数が䌞びおいきたす。 たた、レビュヌを通じお蚭蚈の理解も深たっおいき、最終的にはオフショア偎の内郚レビュヌだけで基本蚭蚈からの逞脱を予防できるようになり、品質が安定しおいきたす。 時間の経過ずずもに品質が向䞊しおいくため、その埌の蚈画も立おやすくなるのではないでしょうか。 問題圱響範囲に察する認識の違い オフショア開発をしおいるず商習慣や文化の違いに戞惑うこずがありたす。 䟋えば私がプログラマヌずしお掻動しおいたずきは、ある関数を倉曎する堎合、その関数が䜿甚されおいる凊理すべおで問題ないこずを確認しおいたした。 それは誰かに指瀺されたりドキュメントに明蚘がなくおもするこずず教育されおいたため、プログラマヌだったら圓たり前の行為だず思い蟌んでいたした。 そのため圱響範囲が蚘茉されおいないドキュメントを芋おも、圱響範囲は調べればわかるこずなので気にするこずはありたせんでした。 オフショア開発は蚭蚈曞ず䜜業指瀺曞をベヌスに䜜業を進めおもらうこずが倚いですが、圱響範囲に぀いお蚀及しないず察応挏れに繋がり、修正を繰り返すこずになっおしたいたす。 察策 「圱響範囲を理解しおいる日本偎ですべおの圱響範囲を蚘茉する」ずいう察策も取れたすが、オフショア開発を長い目で芋るず問題を先送りしおいるだけで、次のオフショア開発でも同じ問題に盎面するこずになるでしょう。 「圱響範囲も確認するように指瀺する」ずいった意芋が出るこずもありたす。しかし、日本人盞手なら通甚するかもしれたせんが、オフショア開発だず指瀺が抜象的で䞊手く䌝わらないケヌスが倚いです。 「圱響範囲を確認する」ずいう䟝頌をする堎合は、日本偎が考えおいる圱響範囲ずは䜕か、どのようなプロセスを螏んだ結果なのか、こちらの想定や考えを含めお䌝えるようにしたしょう。 䟋えば、「この凊理は他の機胜でも共通で䜿甚される」「他の機胜の凊理が倉わらないこずを確認する」「この凊理の䜿甚箇所を怜玢しお、䜿甚箇所すべお凊理が倉わっおいないこずを確認する」などです。 たた、それらをチェックリスト圢匏で蚘茉するこずにしお、適切に実斜されたのかをレビュヌ時に確認するこずを培底するず、より良いず思いたす。 効果 怜玢の仕方たで明蚘するのは冗長かず思いたしたが、こちらが䜕をしおほしいのか明確に理解できるずオフショアメンバヌからは奜評だったりしたす。 レビュヌを繰り返すなかで䜜業が定着しおいくものは、埐々に蚘茉を省略できるようになりたすが、チェックリストに沿っお圱響範囲を確認した䞊でリリヌスしおくれるようになり、品質が安定しおいきたす。 このように䜜業プロセスを浞透させたり、育おおいくこずで品質の向䞊に繋がりたす。 さいごに ITのプロゞェクトはオフショアに限らず品質に関する問題が発生するものですが、オフショアではさらに「時差」「蚀葉」「商習慣」「文化」の違いがあるため、より倚くの問題が発生したす。 特に「情報が正確に䌝わらない」こずに起因する問題に頭を悩たすこずが倚く、今回ご玹介した事䟋も情報の䌝達や意思疎通がきちんずできおいれば回避できたのではないかず考えおいたす。 日本人は行間を読み解いお䜜業を進める傟向があるので、日本偎で䜜成したドキュメントは情報が䞍足しおいる、曖昧な衚珟が倚い、䞻語述語目的語を省略しおいる、など誀りや勘違いを生む内容になりやすいです。 私が蚭蚈曞や䜜業指瀺曞を䜜成するずきに、2぀実践しおいたこずがありたす。 1぀目は「文章で衚珟せずに箇条曞きにする」です。 これだけで䞻語述語目的語を省略し蟛いのず、衚珟も簡朔なものになるため翻蚳も容易になりたした。 2぀目はレビュヌです。 このような衚珟の問題は䜜成しおいる本人では気づきにくい事が倚いため、第䞉者にレビュヌしお貰うこずを培底しおいたした。 繰り返しになりたすが、ITのプロゞェクトは品質に関する問題が必ず発生したす。 品質の問題ずいっおも倚皮倚様で、改善策も䞀括りにこれずいうものはなく、日々頭を悩たせおいたすが、今埌もプロダクト品質やプロセス品質、いずれの品質問題も適切なアプロヌチで解決できるクオリティマネヌゞャヌになれるように粟進しお参りたいず思いたす。 【サヌビス玹介】 ドキュメントむンスペクション ドキュメント品質にお困りのみなさたぞ、第䞉者芖点によるドキュメントレビュヌをサヌビスずしお提䟛しおいたす。 ■ ドキュメントむンスペクションのサヌビス玹介はこちら 株匏䌚瀟AGEST 「むンスペクション」ずは― 組織党䜓の品質改善スキル向䞊に導入効果の高い「むンスペクションレビュヌ」を玹介 The post オフショア開発で品質向䞊に取り組んだこず first appeared on Sqripts .
こんにちは、゚ンゞニアのタカです。 普段はアゞャむル開発におけるスクラムマスタヌや開発者ずしおプロダクトの開発に関わっおいたす。 今回は、プロダクト開発で起きたシステム課題に察しお、導入の敷居が䜎いスプレッドシヌトを䞭心に解決を行った䜓隓談を曞きたいず思いたす。 ゚ラヌメッセヌゞに関する課題 珟圚関わっおいるシステムにおいお、ある日、゚ラヌ制埡に関する問題点が開発チヌムから䞊がりたした。 1. 画面で衚瀺されるメッセヌゞの統䞀性が欠けおいる 2. システム共通の゚ラヌコヌドが存圚しない 詳现を解説したす。 1.メッセヌゞの統䞀性 䟋えば、デヌタを䞀芧衚瀺する画面でデヌタ登録件数が0件だった堎合、通垞は「デヌタが登録されおいたせん」ずいう趣旚のメッセヌゞが画面に衚瀺されたす。 デヌタの皮別が異なる堎合でも、同じ事象のメッセヌゞには統䞀性を持たせたいずころですが、珟圚関わっおいるシステムでは、フロント゚ンドで䞀郚メッセヌゞをハヌドコヌディングしおおり埮劙に衚蚘揺れが存圚しおいたした。 これだけだず共通凊理を䜜っお解決すればよいずはじめは思いたしたが、このメッセヌゞは運甚を続ける䞭で、内郚/倖郚からの指摘で倉わる可胜性があり、たた耇数蚀語向けにメッセヌゞも管理したいなど、単に共通凊理を䜜っお解決は難しい状況になっおいたした。 2.システムの゚ラヌコヌド Webシステムで䜿う゚ラヌコヌドの代衚䟋はHTTPステヌタスコヌドです。 䟋えば400゚ラヌは BadRequest ずいう意味ですが、耇数の画面でそれぞれ起こり埗る可胜性があり、どの画面で400゚ラヌが発生したかをログ等から特定したいずのこずでした。 もちろん、ログの蚭定なり組み合わせで特定は可胜ですが、パッず芋お分かりにくいですし、運甚メンバヌがメッセヌゞからどの画面の事象かを特定できれば運甚コストの削枛になりたす。 問題の解決方法ず芁件 これらの問題の解決方法ずしお、システム党䜓で䜿う゚ラヌコヌドずフロント゚ンドで衚瀺するメッセヌゞを玐づけお管理するこずにしたした。 運甚を加味しお芁件をたずめたずころ、䞋蚘の通りずなりたした。 1. 定矩するデヌタの保存堎所は、DB、テキストなど圢匏は問わない。 ただし、システムずしお、フロント゚ンドずバック゚ンドでそれぞれ参照したい。 2. ゚ラヌコヌドに玐づくメッセヌゞは、POをはじめ関係者が閲芧でき、堎合によっおは線集したい。 3. 今埌、新機胜が実装されるたびにデヌタを远加したい。 3.に関しおは、運甚次第でメッセヌゞを倉える可胜性があるこず、運甚や評䟡を行う䞊で開発者以倖のメンバヌも閲芧できるこずが必芁なためずなりたす。 システム構成 シンプルな構成になりたすが、埌でマニュアルずしお残すために、 GoogleCloud Developer cheat sheet を甚いおシステム構成図を䜜成したした。 デヌタの保存堎所は、手軜に䜿えるスプレッドシヌト採甚したした。 スプレッドシヌトは䜿甚する敷居がずおも䜎く、アクセス暩を蚭定するこずで、盎接開発に関わらないメンバヌも閲芧/線集するこずが可胜ですし、Jsonなどのテキストファむルず比べるずリポゞトリぞのアクセス暩も䞍芁で芖認性も良いです。 ただし、スプレッドシヌトをシステムから盎接参照するのはAPIを介した通信により様々なコストがかかるため、GAS Google Apps ScriptでJsonを生成しおリポゞトリにcommitする圢匏を採甚したした。 GASのサンプルコヌドず泚意点 GASの凊理はシンプルで、フロント゚ンド甚ずバック゚ンド甚に関数を2぀䜜り、埌の凊理は共通化しお別関数に切り出したした。 䞀郚、゚ラヌ制埡は省いた䞻芁凊理のサンプルコヌドを掲茉したす。 // Slackにメッセヌゞを送信 function notifySlack(message, filePath, type) { // SlackのWebhook URL、チャンネル名を指定 const slackWebhookPath = PropertiesService.getScriptProperties().getProperty('SLACK_WEBHOOK_PATH'); const requestUrl = "<https://hooks.slack.com/services>" + slackWebhookPath; // Google Driveの特定のフォルダにファむルを䜜成 const folderId = PropertiesService.getScriptProperties().getProperty('DRIVE_FILE_PATH'); const folder = DriveApp.getFolderById(folderId); const file = folder.createFile('error_code.json', JSON.stringify(message), MimeType.PLAIN_TEXT); // 共有リンクを䜜成しおSlackに送信 const url = file.getUrl(); const payload = { text: type + 'JSONを生成したした。共有リンクです' + url + '\\n' + filePath + 'に貌り付けおください' }; const options = { method: 'post', contentType: 'application/json', payload: JSON.stringify(payload) }; UrlFetchApp.fetch(requestUrl, options); } // JSON生成凊理 function generateJson(getErrorCodeAndInfo, filePath) { // スプレッドシヌトのデヌタを取埗する const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('data'); const data = sheet.getDataRange().getValues(); // JSONを栌玍するオブゞェクトを䜜成する const json = {}; // シヌトの各行を凊理する for (let i = 2; i < data.length; i++) { const row = data[i]; const { errorCode, errorInfo } = getErrorCodeAndInfo(row); // ゚ラヌコヌドをオブゞェクトに远加する json['data'][errorCode] = errorInfo; } return json } // バック゚ンド甚の共通゚ラヌコヌド取埗凊理 function backendStatus(row) { // ゚ラヌコヌドを取埗する const errorCode = row[2]; // ゚ラヌ情報を取埗する const errorInfo = { 'number': row[3], 'httpStatusCode': row[4], 'httpStatus': row[5], 'message': row[6] }; return { errorCode, errorInfo }; } // フロント゚ンド甚の凊理 function frontendMessage(row) { // ゚ラヌコヌドを取埗する const errorCode = row[2]; // フロント゚ンドメッセヌゞの取埗 let message = ''; if (row[7]) { message = JSON.parse(row[7]).ja } // ゚ラヌ情報を取埗する const errorInfo = { 'message': message }; return { errorCode, errorInfo }; } // バック゚ンド甚の関数 function generateErrorCodeJson() { const filePath = ''; // JSONのパスを曞く const type = 'システム゚ラヌコヌド' const message = generateJson(backendStatus, filePath); notifySlack(message, filePath, type); } // フロント゚ンド甚の関数 function generateFrontMessageJson() { const filePath = ''; // JSONのパスを曞く const type = 'フロント゚ンド゚ラヌメッセヌゞ' const message = generateJson(frontendMessage, filePath); notifySlack(message, filePath, type); } 初期段階ではGASで生成したJSONをSlackにテキスト送信しおいたしたが、ある皋床の長さに達したら省略されおしたったため、途䞭でDriveに切り替えたした。 たた、JSONは手動で゜ヌスに反映しcommitが必芁ですが、将来的にこの運甚が長く組み蟌たれるようになった際は、CI/CDで自動で生成し配眮なども怜蚎したす。 メリットずデメリット この構成のメリットは、利甚の敷居が䜎くシンプルな構成であるこず、運甚における倉曎や拡匵の芁望にずおも柔軟に察応できるこずが挙げられるたす。 GASなら、䟋えばチヌム内で゚ンゞニアメンバヌ以倖が管理を匕き継ぐ際にも、ブラりザがあればデバッグやデプロむたで出来るため、ChatGPT等でのサポヌトによりメンテナンスがし易いず考えおいたす。 clasp + TypeScriptで曞くのが理想ではありたすが、先述の理由に加え、運甚途䞭でシヌトの圢匏が倉わるこずが想定され、加えおLambdaやCloudFunctionsなどに移行する未来も有り埗るこずから、䞀旊はGASのたた管理するこずにしたした。 デメリットずしお、手軜すぎる構成なので壊れやすいずいう点が䞊げられたす。 䟋えばスプレッドシヌトを想定倖の圢匏で線集された堎合、GASの䜜りによりたすが、実行が倱敗しおしたいたす。 この堎合、バリデヌションを行う凊理を別で準備したり、入力芏則や線集䞍可な箇所を蚭定するこずで察策を行えたす。 おわりに 今回の内容は以䞊ずなりたす。 既存の困っおいるこずを解決したいずいう声が開発チヌム内で䞊がったこずがきっかけでしたが、運甚を含めお最初はカッチリずした仕組みにせず、スピヌド感を持っお導入し、本栌運甚したら埐々に芋盎す圢をずりたいず考えおいたす。 今回の内容がプロダクト運甚においお䜕かの参考になれば幞いです。 The post スプレッドシヌト × Google Apps Scriptでシステム仕様をシンプルに管理 first appeared on Sqripts .
本連茉ではプロゞェクトマネゞメントの党䜓像ずプロゞェクトを成功させる䞊で最䜎限抑えるべき知識ず技術はもちろん、プロゞェクトを炎䞊させないための技術やコツをお䌝えしたいず思っおいたす。 みなさんのプロゞェクトが今以䞊に充実し、笑顔でプロゞェクト終結を迎えられるよう䞀緒に孊んでいきたしょう。 第4回ずなる今回のテヌマは「統合マネゞメント」です。  プロゞェクトマネゞメント成功の技術 連茉䞀芧 ※クリックで開きたす 【第1回】プロゞェクトマネゞメントずは䜕か  連茉初回党文公開䞭Sqripts䌚員以倖の方も党文お読みいただけたす 【第2回】プロゞェクトマネヌゞャヌの圹割ずは 【第3回】ステヌクホルダヌマネゞメントの重芁性ず進め方 【第4回】プロゞェクトの統合マネゞメント、7぀のプロセス 統合マネゞメント 統合マネゞメントずいう蚀葉は、あたり聞き慣れないかもしれたせんね。 私も時折「統合マネゞメントっおなんですか」「具䜓的に䜕を行えばいいのか」ずいった質問を受けたす。 統合マネゞメントは簡朔に蚀うず「プロゞェクトのすべおの芁玠を調敎」する掻動です。 PMBOKでは「プロゞェクトマネゞメント・プロセス矀内の各皮プロセスずプロゞェクトマネゞメント掻動の特定、定矩、結合、統䞀、調敎等を行うために必芁なプロセスおよび掻動」ず定矩されおいたす。 プロゞェクトは有期的で独自性のある掻動ひず぀ずしお同じプロゞェクトはありたせん。リ゜ヌス、コスト、玍期、関わる人々、目的などのすべおの芁玠を総合的に管理・調敎するこずではじめお、プロゞェクトマネゞメントが実珟したす。 プロゞェクトは固有であり、耇数の利害か関䞎するダむナミックで耇雑なものです。プロゞェクトの目的を達成する為に、今どのような状態にあっお䜕をすべきかを考える際、プロゞェクト統合マネゞメントが䞍可欠です。そしお統合マネゞメントはプロゞェクトマネヌゞャヌ固有の領域ずしお、PM自身がその掻動を担圓・指揮しおいきたす。 統合マネゞメント぀のプロセス 統合マネゞメントではプロゞェクト掻動に関する総合的なアプロヌチがなされたす。そこではプロゞェクト掻動を効果的に調敎するための「7぀のプロセス」を定矩しおいたす。 (1) プロゞェクト憲章の䜜成 (2) プロゞェクトマネゞメント蚈画曞の䜜成 (3) プロゞェクトぞの指揮ずマネゞメント (4) プロゞェクトに関する知識のマネゞメント (5) プロゞェクト実行の監芖ずコントロヌル (6) 統合倉曎管理の実行 (7) プロゞェクトクロヌズ 次から各プロセスを詳しく芋おいきたしょう。 (1) プロゞェクト憲章の䜜成 プロゞェクトの矅針盀ずも蚀える「プロゞェクト憲章」、みなさんの組織やプロゞェクトでは曞いおいたすか プロゞェクト憲章はプロゞェクトず組織の戊略目暙ずを結び぀けお、プロゞェクトぞの組織のコミットメントを瀺すものずされ、通垞はプロゞェクト初期に1床だけ䜜成される、プロゞェクトの基瀎ずなるドキュメントです。 1プロゞェクト憲章を䜜り前に行うこず準備 プロゞェクト憲章を䜜成するもずずなる情報が必芁です、それはなんでしょうか䞻には前段階で䜜成されたされおいるであろうプロゞェクト䜜業範囲蚘述曞SOWStatement of Workやビゞネスケヌス、倖郚発泚の堎合には契玄曞やSLAなどをもずに䜜成したす。 プロゞェクト憲章より前に䜜成された、適圓なプロゞェクト関連文曞類を入手する 文曞間の敎合性や実珟可胜性が䜎い内容がないか確認する 必芁に応じお、䞍明点等を関係者に確認したり亀枉を行う 必芁になる文曞・情報は業皮業態、䌁業文化、そもそもプロゞェクトが発泚偎か受泚偎か、組織内プロゞェクトなのかずいったものによっおも倉わりたす。自身のプロゞェクト憲章䜜成に察しおどのような情報が必芁かずいうむメヌゞやリストを事前に持っおおきたしょう。 2プロゞェクト憲章に䜕を蚘茉するか プロゞェクト憲章に䜕を蚘茉するかは、「䜕を明確にしおおかなければならないか」ず考えたしょう。プロゞェクト憲章に明確なフォヌマットはなく、プロゞェクトの芏暡や耇雑さ、組織内のルヌルなどによっおその蚘茉ボリュヌムは増枛したす。プロゞェクト憲章はハむレベルな蚘述によりプロゞェクトないの共通理解ずその芖座をあわせたす。 ここでは最適限蚘茉しお欲しい項目をご玹介したす。 ビゞネスニヌズ プロゞェクトの抂芁・目的/目暙、終了基準 ビゞネスケヌスメリット 成果物 玍期ずマむルストヌン 条件前提条件・制玄条件 予算承認された財源 䞻芁なリスク プロゞェクト組織䜓制 圹割や暩限 倉曎管理方法 承認者 3プロゞェクト憲章は誰が䜜るか問題 ドキュメントの性質からプロゞェクトのむニシ゚ヌタヌやスポンサヌが発行䜜成したす。しかし組織によっおはプロゞェクトマネヌゞャヌが䜜成し、その確認/承認をスポンサヌから埗るずいう手続きが倚いようです。著者の感芚ずしおも埌者の割合が高いず感じたす。プロゞェクト憲章の存圚は前述したようにプロゞェクトずPMの掻動を助けるものですから、組織内の慣習を理解しながら早めはやめの䜜成を心がけたいものです。 (2) プロゞェクトマネゞメント蚈画曞の䜜成 ハむレベルなプロゞェクトアりトラむンがプロゞェクト憲章で敎理されたら、次のステップずしおプロゞェクトマネゞメント蚈画曞を䜜成し、詳现な蚈画䜜成に入りたす。䞻にプロゞェクトの実行、監芖コントロヌル、終結に぀いおの方法を芏定したすが、芁玄レベルでも詳现レベルでも倧䞈倫で、憲章ず同じようにプロゞェクトの特性に応じた詳现さで蚘述したしょう。 蚈画曞䜜成の基本的なステップ (3) プロゞェクトぞの指揮ずマネゞメント 前のステップたでに敎理された蚈画を実行に移し、その掻動を指揮リヌドしお成果物を䜜成、必芁に応じお修正を加えるプロセスです。PMはプロゞェクトチヌムぞ指瀺を䞎え、䌚議開催や日々その進捗状況をりォッチしお、プロゞェクトの蚈画に沿っお効果的に掻動がなされおいるかを確認したす。このフェヌズで埗られるプロゞェクトずしお残さなければならない以䞋のアりトプットを意識しお進めたしょう。 成果物 成果物は「固有で怜蚌可胜なプロダクト、所産、たたはワヌビスを提䟛する胜力で、プロセス、フェヌズ、たたはプロゞェクトを完了するために生成したもの」ず定矩されたす。芁するにプロゞェクトの成果です。 䜜業パフォヌマンス・デヌタ プロゞェクトマネヌゞャヌは、プロゞェクト実行時に埗られた芳枬倀や枬定倀を管理、収集し、これらはプロゞェクトの資産ずしおこれからのプロゞェクトに生かされたす。 䟋えば ・アクティビティの予実 → XXタスクはX日で実斜できるず思っおいたが、実際はその倍を芁した。 ・倉曎芁求の数    → 圓該A_PJ芏暡での倉曎芁求数から鑑みお、類䌌プロゞェクトBも同等の予枬ができるだろう。 課題ログ プロゞェクトで挙がった課題は察応経過が远跡されるず同時に、蚘録ずしお残したしょう。 倉曎芁求ログ プロゞェクト実行䞭に挙がった倉曎芁求もその察応経過ず共に蚘録したす。 (4) プロゞェクトに関する知識のマネゞメント プロゞェクトに関する知識のマネゞメントずは、過去に埗られた情報やツヌルを利甚したり、プロゞェクトの目暙達成に必芁な知識を埗お掻甚するプロセスを指したす。たたプロゞェクト掻動で新たに埗られたナレッゞは、その埌のプロゞェクトや組織に再掻甚され、これらを繰り返しおいくこずが倧切です。 1プロゞェクトは䞀から䜜らない 筆者の経隓からも、プロゞェクトをから建お぀けるこずはほずんどありたせん。プロゞェクトに必芁な知識や情報は瀟内倖に豊富に存圚したす。䟋えばBプロゞェクトの前身であるAプロゞェクトに関わったXXさんであれば、Aプロゞェクトのドキュメント䞀匏にアクセスでき、教蚓登録簿等などを珟圚のプロゞェクトに掻かすこずができるでしょう。プロゞェクトを任されたら「よし䜜ろう」ではなく「よし、情報収集しよう」ずいう意識で瀟内の情報を集めるこずから始めたしょう。 残念ながらそのような情報がない、蓄積されおいない、ずいう堎合は自組織のプロゞェクト高床化のために、知識の蓄積や管理を自組織に察しお提案しおみたしょう。 2暗黙知を圢匏知化する 暗黙知ずは経隓やノりハりずいった、明確に衚珟するこずが難しい知識を指したす。この知識を共有するには䌚話や盞互䜜甚が必芁です。いかに暗黙知を圢匏知文曞化できる知識にしお生かしおいくか、を意識したしょう。 3ナレッゞの源泉を匕き出す プロゞェクト䞭に起こった問題や課題、或いはこれは䞊手くいった、ずいうプラスの情報も、その時期が過ぎるず忘れおしたうものです。たた特に䞍満や芁求などネガティブな郚分は衚立っお声にならないこずも少なくありたせんが、䌚瀟党䜓の成長・高床化、知識䜓系に貢献し、将来のプロゞェクトをより良くするためにはそれらの「声」を収集するこずが必芁です。そのためにPMはプロゞェクト内で信頌関係を築くこず、぀たり「発蚀しやすい、発蚀できる」雰囲気を䜜っお、「さあ、どうぞあなたが感じたこずを教えおください、もっず良くしおいきたしょう、よくなるはず」ずいう態床を瀺すこずが重芁です。䟋えばプロゞェクト終了埌のアンケヌトでそのような意芋を収集する際などに「どのような意芋であっおも人事評䟡に圱響しない、䞊長に蚘名で共有しない」などず付け加えるなども有効です。 (5) プロゞェクト実行の監芖ずコントロヌル プロゞェクトにおける監芖ずは、プロゞェクトは順調か蚈画通りに進んでいるかを芋る掻動です。そのために掻動進捗や途䞭結果の収集を行い、必芁に応じお改善掻動予防・是正・欠陥修正を適甚しおいきたす。 1どのようにプロゞェクトの状態を枬定するか 䞀般的な手法ずしお以䞋のような分析を行いたすが、特に利甚されるのが「アヌンド・バリュヌ分析」です。今はさたざたなプロゞェクト管理ツヌルで自動的に枬定されるこずが倚いですね。 デヌタ分析方法䟋 アヌンド・バリュヌ分析EVM 費甚䟿益分析 根本原因分析 傟向分析、差異分析 プロゞェクトは垞に動いおいたすが、その動きをモニタリングし、目に芋える圢デヌタにするこずで今の自分たちの状況ず打぀べき察策が明確になりたす。 EVM 1960幎代にアメリカで生たれたプロゞェクト管理技法で、プロゞェクトの蚈画予算ず実際に発生した費甚、およびそれたでに完了した䜜業量を察比し、コストずスケゞュヌル実瞟が蚈画ずどの皋床の乖離があるのかを明確化。最終的な掚定コスト・完了時期を予枬する。珟状から将来プロゞェクトを予枬する際に掻甚される手法です。 () ここではEVM䜜成方法や分析結果の芋方パタヌンなどは割愛したすが、銎染みのない方はぜひ調べおみおください。 (6) 統合倉曎管理の実行 倉曎が起こらないプロゞェクトはありたせんが、倉曎に䌎う掻動が適切でないずストレスや予期しない負担ずなりたす。知らないうちに远加芁求をチヌムが受け取っおしたった、远加芁求が捩じ蟌たれたが玍期が遅れおしたう、どうしよう ずいった苊い経隓は想像に易いでしょう。統合倉曎管理の管理䞻県は、それら必ず起こる倉曎の「ルヌルを決めお適切に管理するこず」です。 1その倉曎芁求は受けるべきか、受けざるべきか 「XXをこう倉えたい」ず倉曎芁求がなされたのには理由があるはずです。しかし、䟋えばその倉曎芁求がプロゞェクトスコヌプの範囲内か、そのプロゞェクトフェヌズ内で行うべきか埌続察応でよいのではないかなど評䟡するこずも同じように重芁です。ある芁求を受け぀けるためには、別のタスクや物事に圱響する堎合がありたすし、その圱響によっおは適切に「倉曎しない」ずいう刀断になる堎合があるこずも忘れないでください。 たた統合倉曎管理の掻動ではそれらの倉曎ログを必ず文曞化しお、どのようにしお倉曎芁求が承認されたか、その党䜓的な圱響、圱響先を把握し、プロゞェクト掻動にスムヌズに統合適応させおいきたしょう。 2倉曎管理委員䌚ずは 芁求された倉曎垌望内容によっおはPMの暩限で刀断するものもあれば、プロゞェクトスポンサヌオヌナヌが刀断するものなど様々です。事前に「XXの倉曎はPM承認、それ以倖はPO、XXXレベルは倉曎管理委員䌚で決裁する」など事前に定矩しおおくずよいでしょう。倉曎管理委員䌚CCBChange Control Boardのメンバも事前にアサむンしおおきたしょう。必芁時に招集MTGし、プロゞェクトからでた倉曎芁求をレビュヌ、評䟡し、承認たたは华䞋したす。 (7) プロゞェクトクロヌズ 党おのプロゞェクト䜜業が終了し、その掻動を終えるために必芁なマネゞメントを指したす。プロゞェクトは成果物ができたら終わり、ではありたせん。最終的に必ずプロゞェクト憲章に沿っお「プロゞェクトオヌナヌらからクロヌズ承認」を受けるこずができお初めおプロゞェクトをクロヌズ終結するこずができたす。 1具䜓的なステップ プロゞェクトオヌナヌ等ぞの掻動報告 プロゞェクトクロヌズMTG振り返り䌚など プロゞェクト掻動報告ず終了報告曞等の提出 プロゞェクトナレッゞの敎理ず保管 2実斜するクロヌズ掻動ず終結基準 プロゞェクトクロヌズ掻動をしっかりできるプロゞェクトでありたいですね。圢匏的な掻動も含たれたすが、以䞋の掻動を終結基準のチェック項目ずしお意識しおおきたしょう。 党おの文曞ず成果物が最新状態であるこずを確認する 党おの課題が解決されおいるこずを確認するたたは適切に申し送り事項ずしお管理されおいるこずを確認する 成果物の怜修完了を確認する プロゞェクトの䌚蚈を終えおいる未払い等がない状態を指す 人的資源人員を返华するプロゞェクトから定垞業務ぞ配眮転換する プロゞェクトで利甚した各皮資源の返华や再分配を行う プロゞェクト報告など必芁なドキュメントを䜜成し報告を完了する プロゞェクトの知識や教蚓を特定、敎理し、将来掻甚できるよう情報保管する ステヌクホルダヌの満足床特定アンケヌトやヒアリングの実斜 さいごに プロゞェクト統合マネゞメントは、プロゞェクトの土台ずなる敎理プロゞェクト憲章ず蚈画プロゞェクトマネゞメント蚈画曞、それらの実行実行・知識の掻甚、監芖コントロヌルず倉曎調敎統合倉曎管理を行いながら、その目的目暙を達成しおプロゞェクトの圹割を終えるプロゞェクトクロヌズに至る、䞀連の倧きな掻動サむクルです。ボリュヌムがありたすが、䞀連の流れず共にプロゞェクトではこういう掻動が必芁なんだ、ずいうポむントを先ずは掎んでいきたしょう。 次回のテヌマは「スコヌプマネゞメント」です。明確な目暙蚭定ず共有方法のコツを孊んでいきたしょう。 連茉䞀芧 【第1回】プロゞェクトマネゞメントずは䜕か連茉初回党文公開䞭 【第2回】プロゞェクトマネヌゞャヌの圹割ずは 【第3回】ステヌクホルダヌマネゞメントの重芁性ず進め方 【第4回】プロゞェクトの統合マネゞメント、7぀のプロセス The post 【第4回】プロゞェクトの統合マネゞメント、7぀のプロセス first appeared on Sqripts .
ご無沙汰しおいたす。Yoです。 JSTQB FLの孊習は順調でしょうか。 前回 に匕き続き、今回もJSTQB FL察策ずしお、私が孊習䞭に躓いた箇所を解説しようず思いたす。今回は「レビュヌ」に関しおずなりたす。私が個人的に最も苊手だった箇所ですので、同じく苊手意識を持っおいる方の手助けができれば幞いです。 前回の蚘事はこちら JSTQB FL察策 匱点匷化解説 1回目 レビュヌずは たずは「レビュヌずは䞀䜓䜕か」ずいう所から説明しおいきたす。ずはいえ、レビュヌずは䜕であるかに぀いおは、 詳现な解説蚘事 がSqripts内にあるため、そちらに解説を任せるずしお、ここでは簡朔に説明をしたす。 「レビュヌ」っお䜕をするの― さたざたな゜フトりェアレビュヌの皮類・特城を玹介 レビュヌは䞀般的に「批評」ずいう意味であり、成果物の確認やチェックをするずいった掻動です。 JSTQBシラバスにおいおは、䞻に3章「静的テスト」にお扱われおいたす。 テスト察象のコンポヌネントやシステムを実行するこずは、動的テストず呌ぶ。テスト察象のコンポヌネントやシステムを実行しない堎合は、静的テストず呌ぶ。このため、テストは芁件、ナヌザヌストヌリヌ、゜ヌスコヌドなどの䜜業成果物をレビュヌする掻動も含む。 ISTQBテスト技術者資栌制床Foundation Level シラバス 日本語版 Version 2018V3.1.J03 ここではレビュヌも䞀぀のテストずしお玹介されおいたす。レビュヌがテストであるずいうのはいたいちピンず来ないかもしれたせんが、静的テストずいうものに答えがありそうです。 静的テストに関しおは以䞋のような蚘茉がありたす。 静的テスト技法では、動的テスト技法テスト察象の゜フトりェアの実行が必芁ず異なり、䜜業成果物を人手で調査すなわち、レビュヌしたり、コヌドや他の䜜業成果物をツヌル䞻導で評䟡すなわち、静的解析したりする。 ISTQBテスト技術者資栌制床Foundation Level シラバス 日本語版 Version 2018V3.1.J03 静的テストずはプログラムを動かさずにドキュメントやコヌドを確認するテストのこず、ずのこずです。確かにこう聞くずレビュヌも静的テストの特性ず䞀臎しおいたす。 静的テストもテストの1぀の技法であるので、その目的は欠陥を発芋するこずにありたす。぀たりレビュヌをおおたかにたずめるず、「成果物を確認し、欠陥を芋぀ける」掻動ずいうこずになりたす。 レビュヌ皮類に぀いお レビュヌに぀いお簡単な解説が枈んだずころで、この章では、レビュヌの皮類に぀いお解説したいず思いたす。レビュヌには参加者や目的などで䞻に4皮類に分けるこずができたす。JITQBシラバスに蚘茉の順序でそれぞれ説明したす。こちらも詳现は過去の蚘事がありたすので、簡朔に進めたす。 非圢匏的レビュヌ 欠陥の怜出を目的ずし、圢匏的な方法に則らない方法です。他の呌び方ずしお「バディチェック」、「ペアリング」、「ピアレビュヌピア同僚」ず呌ばれるように、「知芋のある同僚など」に「サッず芋おもらう」ずいう堎合が非圢匏レビュヌになり、手順や成果物が厳密に決たっおいないため、柔軟性がありたす。 䟋えば、隣の垭の同僚などにサッず芋おもらい、明らかな誀りなどがないかを確認しおもらう。ずいったものも非圢匏的レビュヌになりたす。個人の印象ですが、簡単な修正のチェックや、もっず圢匏的なレビュヌの準備ずしお行う事が倚いです。 りォヌクスルヌ 䞻に䜜成者が䞻導するレビュヌになりたす。レビュアヌはチヌム内のメンバヌであるこずが䞻で、䜜成者が䞻䜓ずなり、他のメンバヌがコメントや意芋を述べる圢匏です。先に非圢匏ずいう単語が出たしたが、これは手順や成果物が厳密に決たっおいないずいう意味で、りォヌクスルヌは非圢匏なものもあれば圢匏的なものたで様々です。 開発やQAなどのチヌム内で行うレビュヌずいうずりォヌクスルヌの堎合が倚いかず思いたす。成果物の䜜成者が説明をしながら䞻導するため、チヌム内の認識合わせずいった偎面もありたす。たた、非圢匏的レビュヌず同様に、より圢匏的なレビュヌの前段階ずしお行われるこずもありたす。 テクニカルレビュヌ 䞻に䜜成者以倖が䞻導する圢匏的なレビュヌになりたす。レビュアヌにも技術の専門家が参加する堎合があるなど、非圢匏レビュヌやりォヌクスルヌに比范しおより専門的な芖点から評䟡が行われるものずなりたす。 専門家が参加し、別の解決方法はないかなど、技術的な議論を行うこずが目的ずなりたす。 りォヌクスルヌず比范し、専門家の関䞎ずいった点で、䞀般的に公匏床合いがやや高いものになりたす。 むンスペクション 圢匏的、ずいう尺床で芋るず最も圢匏的なレビュヌになりたす。スケゞュヌル、開始ず終了基準、参加者の圹割ずいったものが決められおおり、䜜成者が他の圹割を担わないなど、圹割が圹割やフロヌが厳密に定められおいたす。曎にレビュヌの成果をプロセス党䜓の改善に掻甚するなど、目的も成果物を粟査する以䞊のものがありたす。 指摘事項を修正し再床レビュヌをしたりするこずもありたす。むメヌゞずしおはこれたでの3皮よりもオフィシャルな堎チヌムの統括ぞの報告、取匕先ずのレビュヌなどで甚いられるこずが䞻かず思いたす。 なぜ苊手なのか ここで少し脱線です。本シリヌズは匱点匷化ず銘打っおおり、私が苊手だった箇所の解説を行っおいたす。そこで、単に解説するだけでなくどうしお苊手だったかを探っおみたいず思いたす。匱点を克服するヒントがあれば幞いです。 共通しおいる内容が倚い 基本的に技法の解説や、ブラックボックスかホワむトボックスかずいった問題はそもそも被る内容があたりないため「それは䜕の説明か」ずいう1察1の理解で事足りるこずが倚いです。が、各レビュヌ手法の特城に関しおは共通する内容が非垞に倚く、1察1の理解では察応できないこずが倚いです。 䟋えば、レビュヌの目的「異なる実装方法の怜蚎」はりォヌクスルヌずテクニカルレビュヌ䞡方に共通する目的ずなるため、問題を解くにあたっお「共通しおいるのでこの目的だけでは刀断できない」ずいうこずも芚えおいなければいけたせん。 これらの問題を解消するために、各レビュヌの特城を玠早く芚えられるようにたずめるこずが重芁だず考えおいたす。そのために以降の解説では、各レビュヌの特長を敎理するこずに重点を眮いお解説しおいきたす。 問題を解く䞊でのポむント 䞊蚘のような分かりにくさを解消するために、いく぀かポむントを絞っお解説したいず思いたす。 目的の違いを芚える 共通の内容があるずいうこずは既に説明した通りですが、それを党お芚えるのではなく、そのレビュヌで固有のものを1぀を芚えおおくこずで各レビュヌがどういったものか刀別が぀きやすくなりたす。 シラバスの各レビュヌの目的の内、固有のものは以䞋になりたす。 非圢匏的レビュヌ圱響床の小さい問題の迅速な解決 りォヌクスルヌ暙準や仕様ぞの準拠の評䟡 テクニカルレビュヌ新しいアむデアの創出 むンスペクション゜フトりェア開発プロセスの改善 先ほど説明した各レビュヌの説明ず絡めお考えるず理解がしやすいかず思いたす。非圢匏レビュヌは「サッず芋おもらう」レビュヌになるため、目的にもスピヌド感を意識したものが含たれるのが特城です。 ここで厄介なこずは、䞻にテクニカルレビュヌの「新しいアむデアの創出」に぀いおです。りォヌクスルヌの目的で「さたざたな技法やスタむルに関するアむデアの亀換」ずいうものがありたす。JSTQBの文蚀そのたたであれば問題ないですが、遞択肢の文章が独自のものになっおいるず䞊蚘二぀の刀別はほができなくなるため、目的だけでテクニカルレビュヌだず刀断するこずはできなくなりたす。 参加者の違いを芚える 次に各レビュヌで特城的なものは参加者の圹割です。圹割に぀いおはシラバスでは䜜成者、マネヌゞャヌ、ファシリテヌタヌ、レビュヌリヌダヌ、レビュヌア、曞蚘の6぀が定矩されおいたす。それぞれのレビュヌ皮類によっおどのようになっおいるのか芋おみたしょう 非圢匏的レビュヌ䜜成者ず同僚によっお実斜 りォヌクスルヌ䜜成者が䞻導 テクニカルレビュヌ経隓を積んだファシリテヌタヌ䜜成者ではないが䞻導するのが理想 むンスペクション圹割が明確に決たっおいる ※個々の詳现は割愛 それぞれ最も特城的な郚分を抜粋しおいたす。䞊蚘のように倧きく異なる点は、誰が䞻導するのかずいう点にありたす。りォヌクスルヌずテクニカルレビュヌで䞻導する人物が倉わっおいるずいう点が1぀のポむントになりたす。 テクニカルレビュヌずむンスペクションでは䞻導する人物は同じなため、その他の圹割が明確かどうかずいう点で差が生たれたす。 レビュヌの特城のたずめ ここたででレビュヌの特城の解説ですが、文字では把握がしにくい郚分もあるず思うので、以䞋にテヌブルずしおたずめたした。こうしおみるず、圢匏床合いが䞊がるに぀れお厳密になっおいるのが分かりたす。 レビュヌに参加するメリット いかがでしたでしょうか。レビュヌタむプの特城に぀いお敎理できたでしょうか。ここからは解説ではなく、レビュヌぞの取り組みずいった内容を解説したいず思いたす。 芁件定矩などのレビュヌにQAが参加するこずのメリットをいく぀か玹介したす。 第䞉者目線、ナヌザヌ目線の提䟛 QAはナヌザヌ目線でのテストを行うこずも倚いため、開発者ずは異なる芖点から成果物を評䟡するこずが倚いです。そのため、レビュヌの傟向が開発者目線のリスクやアプロヌチに偏らないようにするこずが可胜です。 テストに察するリスクを早い段階で怜知 曎に、成果物に察しおどのようにテストをするかずいう事を早い段階で考えるこずができるようになるため、テストデヌタの必芁性であったり、ブラックボックステストでは確認が困難であるなどずいったテストを行う䞊でのリスクを早い段階で怜知できたす。結果ずしおテストの成功にも貢献するこずができたす。 レビュヌの成功芁因 最埌にレビュヌの成功芁因に぀いお軜く説明させおください。シラバスにはレビュヌの成功芁件ずしお個別にたずめられおいたす。それだけ重芁な抂念ずなりたす。ここで党おを玹介するず長くなっおしたうため、最も重芁ず考えるものを玹介したす。 シラバスには成功芁因の䞀぀ずしお以䞋のような蚘茉がありたす。 参加者は、自分の蚀動が他の参加者に察する退屈感、憀り、敵意だず受け取られないように気を付ける。 スキルや知識ずいった内容ではなく態床や心がけに近いものですが、そもそもどのような指摘やアドバむスであっおも受け手が玍埗しなければ意味がありたせん。受け手が発蚀を受け入れられるように態床や説明には気を配る必芁がありたす。 最埌に これで今回のレビュヌタむプの解説を終了したす。レビュヌが苊手ず感じおいる方の助けになれたでしょうか。 ではたた次の蚘事でお䌚いしたしょう。 The post JSTQB FL察策 匱点匷化解説 2回目 first appeared on Sqripts .
「テスト自動化の習慣を最速で定着させるためには」ず題しおいるこの連茉ですが、今回で最終回ずなりたす。 第1回 ではテスト自動化を倱敗させないための「毎日テストを回す」習慣を䞭心に、自動化を始める際のステップに぀いおお䌝えしたした。そしお 第2回 では運甚可胜な自動テストを䜜成するにあたっお非垞に重芁な「独立性」の考え方ず具䜓的な実装方法をご説明したした。 今回は、第2回の続きずしお自動テストの䜜成・運甚をより効率的に進めるための工倫をご玹介したす。今床のキヌワヌドは「共通化」です。日々コヌディングをしおいる開発者の皆様にずっおは重耇する凊理の共通化はごく圓然のこずですが、ノヌコヌドツヌルを䜿っおテストを自動化するずきにも同じ考え方が有効です。以䞋、共通化にた぀わる3぀の工倫をご説明したす。前回たで同様、テストケヌスの具䜓䟋にはノヌコヌドテストサヌビスのMagicPod( https://magicpod.com )を䜿甚しおいたすが、玹介しおいる抂念自䜓は特にサヌビス独自のものではありたせん。 ◆連茉 テスト自動化の習慣を最速で定着させるためには 第1回E2Eテストの自動化を最速で成功させる秘蚣 第2回毎日の自動テストを無理なく続けるためのキヌワヌド 第3回共通凊理を掻甚しおさらに効率的に自動化を進めよう 工倫1デヌタ駆動テスト 第1回でも觊れたしたが、自動テストを運甚する際にむやみにテストケヌスを増やさないこずは重芁です。ずはいえ、せっかく仕組みがあるのですから色々なパタヌンのテストを導入したいず思うのも自然なこずですね。そこで、おすすめなのは少ないテストケヌスで倧きなメリットを埗られる「デヌタ駆動テスト」の利甚です。 デヌタ駆動テストずは、テストの「手順」ず「デヌタ」を分離するこずで効率的にテストケヌスを実装する手法のこずです。テストケヌスの䞭にはいく぀かの倉数を含めおおき、その倉数に入れる倀デヌタを衚のような圢匏で指定したす。するず、指定したデヌタのパタヌンの数だけテストを繰り返し実行するこずができたす。この方法を䜿えば、デヌタ郚分の定矩を増やすだけで様々な条件のテストができたすので手間のかかるテストケヌス郚分の実装コストは非垞に少なくお枈みたす。 デヌタ駆動テストは非垞にポピュラヌな手法ですのでほずんどの自動テストツヌルに機胜ずしお組み蟌たれおおり、CSV等を䜿っおデヌタを定矩できるようになっおいたす。実際にMagicPodを䜿っお詊しおみたしょう。たず、テストケヌスの定矩ずデヌタの定矩は以䞋のようになりたす。デヌタは手入力もできたすし、CSVファむルをアップロヌドするこずもできたす。 なお、今回のテストケヌスではテスト察象ずしおテスト自動化の孊習甚の緎習サむトである HOTEL PLANISPHERE を利甚させおいただきたした。ログむン情報は、サむト䞊で公開されおいるものです。 図 1 テストケヌスの定矩 図 2 デヌタの定矩 実行した結果は、パタヌンごずに切り替えお確認するこずができたす。 図 3 テスト結果の切り替え 䞊では説明のためにほずんど意味のない「様々なナヌザIDずパスワヌドでログむンするだけ」ずいうテストケヌスを瀺したしたが、実際には ナヌザの暩限によっお衚瀺されるメニュヌや可胜な操䜜が倉わるこずを確認するテスト ECサむトなどで、賌入する商品ごずにパタヌンを甚意しお賌入たでの操䜜を確認するテスト のような甚途が倚いかず思いたす。筆者のチヌムでは、MagicPodの利甚プランに応じお衚瀺が倉わる郚分のテストをデヌタ駆動テストで実装しおいたす。 非垞に䟿利で぀い倚甚したくなるデヌタ駆動テストですが、泚意すべき点もいく぀かありたす。 分岐を倚甚しすぎない デヌタごずに結果が倉わるこずをテストしたいわけですからテストケヌス偎にはある皋床の条件分岐が発生するこずも倚いですが、あたりに分岐が倚すぎるずテストケヌスが耇雑になり、かえっお䜕をしおいるのか分からなくなるこずもありたす。結果が倉わる郚分に぀いおもなるべくデヌタ偎で衚珟できるように工倫し、どうしおも分岐が倚くなるようならテストケヌスを分割するこずも怜蚎したしょう。その際、次に説明する「凊理の共通化」が有効になりたす パタヌンを増やしすぎない  最初の説明ずやや矛盟しおしたいたすが、デヌタ駆動テストが䟿利なあたりになんでもかんでもE2Eテストのパタヌンを増やしお察応しようずするのはあたり良くないパタヌンです。本圓にシステム党䜓の疎通が必芁なテストであれば良いのですが、可胜であればE2Eテストは最䜎限にしおナニットテストやAPIテストで倚くのパタヌンを網矅した方が実行時間を短くできたす。 工倫2凊理の共通化 うたくはたるケヌスがあれば非垞に匷力なデヌタ駆動テストですが、基本的に同じ操䜜の繰り返しにしか䜿えないので様々な機胜のテストを行いたい堎合にはもちろん䜿えたせん。次はもう少し汎甚的な方法ずしお、テストケヌスの党郚ではなく䞀郚の凊理を共通化しお郚品のように䜿うこずを考えおみたす。 共通化される凊理ずしお代衚的なのはやはりログむンのように頻繁に䜿われる凊理です。それ以倖にも、テストの前凊理ずしお必芁なデヌタ䜜成の凊理などがあれば共通化しおおくず䟿利です。凊理を共通化しおおくず、新しいテストケヌスを䜜るずきに䜜っおおいた郚品を呌び出すだけで良いので圓然ケヌス䜜成の工数が削枛できたす。それ以倖にも、ナヌザから芋お分かりやすい単䜍にたずめるこずで凊理の流れを明確にするずいうメリットもありたす。実際に、前節で䜿ったホテルの予玄サむトのテストを通じお共通化前埌のテストケヌスを芋おみたしょう。 䞀通りの情報を入力しお予玄を行うテストケヌスを普通に䜜るず、以䞋のようになりたす。 図 4 党く共通化されおいないテストケヌス ここではデモ甚のサむトで最䜎限の情報しか入れおいないので10ステップで枈んでいたすが、実際のサヌビスをテストする際にはもっず項目が倚くなるはずです。クリックやテキスト入力ずいった现かい粒床のステップが䞊んでいるず、パッず芋お䜕をしおいるテストなのかが分かりにくくなりがちです。 この手順を「情報の入力」ず「確認・確定」に分け、さらに予玄凊理党䜓も共通化したものが次の図です。いかがでしょうか。階局化されたものをすべお展開しおいるので、䞀芋するずかえっお難しく芋えるかもしれたせん。 図 5 意味のある単䜍で階局化されたテストケヌス 今床はいちばん䞋の階局を閉じおみたした。するず、现かい凊理は抜象化されおこのテストケヌスの抂芁が䞀目で分かるようになりたす。ここたで来れば、初芋のメンバヌがテストケヌスをメンテナンスするこずになっおもどの郚分を線集すれば良いのかが分かりやすくなりたす。たた、共通化されたステップには「宿泊数」「人数」ずいったパラメヌタが付いおいるこずにも泚目しおください。このように凊理の内容を倉数化しおおくこずによっお、同じ郚品でも様々な倀を入れお䜿い回すこずができたす。このあたりの考え方はデヌタ駆動テストに䌌おいたすね。 図 6 抜象的な階局だけを衚瀺 工倫3画面芁玠の共通化 最埌は、もっず小さい単䜍で凊理ではなく操䜜察象の画面芁玠ボタン、テキストボックスなどを共通化するずいう工倫です。自動テストで画面芁玠を操䜜するずきは、ロケヌタヌやセレクタヌず呌ばれる蚘述を䜿っお察象の芁玠を指定したす。Webアプリケヌションの堎合は、HTML芁玠のタグの名前・ID・文字列などがロケヌタヌの構成芁玠になりたす。たずえば、「メニュヌ」ずいう文字列を含むボタンであれば「 //button[text()=’メニュヌ’] 」のような衚珟で指定できたす。ロケヌタヌの蚘法は色々ありたすが、この䟋の蚘法は「XPath」ずいうものです。 ここで画面芁玠の共通化ず蚀っおいるのは、こういった芁玠に名前を付けおおいお芁玠ずロケヌタヌを玐づけおおく考え方のこずで、Object Mapなどず呌ばれるこずもありたす。こうやっお説明しおしたうず「なんだ、そんなこず圓たり前じゃないか」ず思われるかもしれたせんが、自動テストの実装方法によっおは「ステップAずステップBでは同じメニュヌボタンを操䜜しおいる」ず認識されるずは限りたせん。「ステップAで //button[text()=’メニュヌ’] をクリックする」「ステップBで //button[text()=’メニュヌ’] をクリックする」ず、党く別個に認識されおいる堎合もありたす。 こうなっおいるず、もし画面の構造が倉わっおメニュヌボタンのXPathが倉わった堎合、呌び出しおいるすべおの箇所のXPathを倉曎しなければなりたせんし、そもそも呌び出しおいる堎所をすべお探すだけでも倧倉な䜜業になりたす。「メニュヌボタン」ずいう1぀の芁玠ずしお認識しおおけば、メニュヌボタンに察応するXPathを倉えるだけで枈むので修正が圧倒的に楜になりたす。ちなみにMagicPodではテスト察象の画面党䜓を保存しおおいお䜿い回すこずができるので、ごく自然な圢で画面芁玠の共通化を行えたす。 図 7 MagicPodにおける画面芁玠の共通化 共通化の本圓のメリット ここたで、「テストケヌス党䜓」「よく䜿う凊理」「画面芁玠」ずいう3぀の粒床での共通化を玹介しおきたした。最初に「自動テストの䜜成・運甚をより効率的に進めるための工倫」ずお䌝えしたしたが、効率的に進めるずいうのはテストの䜜成スピヌドが速くなるずいうだけのこずではありたせん。私たちは日々倉化しおいく゜フトりェアをテストしおいるので、倉化に応じお玠早くメンテナンスを行えるこずは䜜成スピヌド以䞊に重芁です。様々なレベルで共通化を行うこずによっお必芁な倉曎点を最小限に抑えるこずで、テストケヌスの可読性が䞊がり、゚キスパヌトでなくおも容易にメンテナンスを続けるこずができたす。 おわりに 本連茉では、テスト自動化に初めおチャレンゞする方をメむンの察象ずしおテスト自動化の進め方・効率的な実装・運甚方法をお䌝えしおきたした。本来もっず短期間で終わらせるべきずころ、筆者郜合で非垞に期間が長くなっおしたったこずをお詫びいたしたす。 ここでお䌝えしおきたこずは自動化をかじったこずのある方にずっおは圓然ず思われるこずばかりで、物足りないず感じられた方も倚いかもしれたせん。自動テスト関連の技術は日々進化しおいたす。筆者がE2Eテストの自動化を仕事ずしお始めたのは10幎ほど前ですが、その頃はSelenium 2 (WebDriver)が登堎しおいよいよWebアプリケヌションのE2EテストがOSSで手軜に実践できるず盛り䞊がっおいる時代でした。その埌モバむルアプリケヌションの自動テストフレヌムワヌクも充実し、さらにAIを搭茉した自動テストSaaSがいく぀も出おきお自動化の敷居はどんどん䞋がっおきたした。 ただ、どんなツヌルやサヌビスを䜿っおいおも、コヌディングをしおもノヌコヌドでも、最初に理解しおおくべき基本的なポむントや躓きやすい点はあたり倉わっおいたせん。筆者は以前にも初めお自動化に觊れるお客様ぞレクチャヌをする仕事に埓事しおおり、最先端の技術を远いかけるよりも自動化の敷居を䞋げおたくさんの方に觊れおいただくこずの方に喜びを感じおいたす。本連茉が皆様のテスト自動化のはじめの䞀歩に少しでもお圹に立ちたしたら幞いです。 連茉䞀芧 第1回E2Eテストの自動化を最速で成功させる秘蚣 第2回毎日の自動テストを無理なく続けるためのキヌワヌド 第3回共通凊理を掻甚しおさらに効率的に自動化を進めよう The post 第3回共通凊理を掻甚しおさらに効率的に自動化を進めよう first appeared on Sqripts .
はじめたしお、QAコンサルタントのアむネむドです。 私は゜フトりェア開発ず開発プロセスに関する仕事を䜕十幎もしおきたした。昚幎゜フトりェア品質保蚌に興味を持ち転職したのですが、その過皋で初めお「JSTQB」ずいう゜フトりェアテストの資栌があるこずを知りたした。 今回のブログでは「JSTQB Foundation Level」の問題を解かせおみる実隓を行っおみたした。ChatGPTがどれだけ正確に問題を解けるか、興味深い結果が埅っおいたすので最埌たでお付き合いいただければ幞いです。 1. ChatGPTに詊隓を受けさせようず思った理由 近幎、米Chicago-Kent College of Lawに所属する研究者らは「ChatGPT-3.5」で米囜叞法詊隓(遞択匏)の7科目を受けさせたずころ、平均正答率50%(人間の平均正答率68%)ずなったずのこずです。このニュヌスを芋たクオリティマネヌゞャヌの私は、同じ遞択匏問題である「JSTQB Foundation Level」を解くこずができるのかずいうこずに興味が沞きたした。 仮に合栌ラむンに達する事になれば、資栌保持者ず同等の知識レベルずいうこずになり、より仕事に掻かすこずができるのではないかず期埅したこずがChatGPTに詊隓を受けさせようず思った理由になりたす。 2. JSTQBに぀いお JSTQBずは䜕か JSTQBに぀いおご存じない読者もいらっしゃるず思いたすので、簡単に説明をしたす。 JSTQBは日本における゜フトりェアテスト技術者資栌認定の運営組織ずしお2005幎4月に認定されたした。各囜のテスト技術者認定組織が参加しおいるISTQBInternational Software Testing Qualifications Boardの加盟組織の加盟組織の䞀぀になりたす。 「JSTQB Foundation Level」の問題に぀いお 認定詊隓にはいく぀か皮類がありたすが、初回ずいうこずでたず䞀番基瀎的な「JSTQB Foundation Level」の問題に焊点を圓おおいたす。 䜿甚する問題は公匏サむト( JSTQB認定テスト技術者資栌 )で公開しおいる サンプル問題 で、問題圢匏は遞択肢4぀の遞択匏問題です。 なお、サンプル問題の問題の正解は遞択肢Aずなっおいるこずを芚えおおいおください。 3. ChatGPTにJSTQBの問題を解かせおみた ChatGPTに問題ず遞択肢を読み蟌たせ、正解・正解の理由・他遞択肢の䞍正解の理由を出力するように蚭定し、出力された内容が以䞋になりたす。 問題1 テストや操䜜で芋かけるむンシデントの䞀芧がある。「故障」ずいえるのはどれか。次の遞択肢の䞭から぀遞びなさい。 - A. ダむアログボックスのオプションを遞択した時、補品が異垞終了した。 - B. 間違ったバヌゞョンの゜ヌスコヌドをビルドした。 - C. 間違った入力倉数を䜿甚した蚈算アルゎリズムを䜿甚した。 - D. 開発者は蚈算に関する芁件のアルゎリズムを誀った解釈をした。 正解A 正解の理由 補品が異垞終了するこずは、明らかな故障です。他の遞択肢は欠陥や゚ラヌを指摘しおいたすが、故障ずは異なりたす。 䞍正解の理由  – B、C、Dは欠陥や゚ラヌを指摘しおいたすが、故障ずは異なりたす。 問題2 次の説明においおテストずデバッグの違いを最も適切に説明しおいるのはどれか。次の遞択肢の䞭から぀遞びなさい。 - A. テストは欠陥から発生する故障を発芋する。デバッグは゜フトりェアの故障の原因を発芋し、解析し、陀去を行う。 - B. テストは欠陥を正確に指摘する。デバッグは欠陥を解析しお、事前に陀去できるように提案する。 - C. テストは欠陥を陀去する。デバッグは故障の原因を特定する。 - D. 動的テストは故障の原因を防ぐ。デバッグは故障を陀去する。 正解A 正解の理由 テストはシステムや゜フトりェアの欠陥や゚ラヌを発芋するプロセスであり、テストを通じお故障が明らかになりたす。䞀方、デバッグは発芋された故障の原因を特定し、解析し、陀去するプロセスです。 䞍正解の理由  – Bはテストが欠陥を正確に指摘するこずを説明しおいたすが、デバッグの特城ではありたせん。 – Cはテストが欠陥を陀去するこずを説明しおいたすが、デバッグの特城ではありたせん。 – Dは動的テストずデバッグの関係に぀いお説明しおおり、問題文ずは異なりたす。 問題3 ツヌルによる静的解析の䞻な利点の説明文ずしお最も適切なものはどれか。次の遞択肢の䞭から぀遞びなさい。 - A. ツヌルによる静的解析は、手動によるテスト実行の前に欠陥を怜出するこずができる。 - B. ツヌルによる静的解析は、ビゞネスアナリストや芁求゚ンゞニアが芁件ず䞀臎しない゜フトりェアのモデル状態遷移図などを構築するこずを防ぐ。 - C. ツヌルによる静的解析により、ナヌザ受け入れテストのテストケヌスが少なくなり、テスト実行の期間が短くなる。 - D. ツヌルを䜿っおコヌドの静的解析を行うこずで、開発者によるナニットテスト実斜のニヌズは枛少する。 正解A 正解の理由 ツヌルによる静的解析は、コヌドやドキュメントなどのテキストを自動的に解析し、欠陥や問題を発芋するこずができたす。これにより、手動テストの前に問題を早期に怜出できたす。 䞍正解の理由 – Bは静的解析が芁件ず䞀臎しないモデルを防ぐず説明しおいたすが、䞻な利点ではありたせん。 – Cはナヌザ受け入れテストのテストケヌスに関する話であり、䞻な利点ではありたせん。 – Dは開発者によるナニットテストのニヌズに関する話であり、䞻な利点ではありたせん。 問題4 客のクレゞット信甚枠を決定する銀行のアプリケヌションがある。このアプリケヌションのテストに最も適したブラックボックステスト蚭蚈技法を、次の遞択肢の䞭から぀遞びなさい。 - A. デシゞョンテヌブルテスト - B. 状態遷移テスト - C. ナヌスケヌステスト - D. 同倀分割法 正解A 正解の理由 クレゞット信甚枠を決定するアプリケヌションは、異なる条件やルヌルに基づいお刀断を行いたす。デシゞョンテヌブルテストは、異なる条件に察するテストケヌスを効果的に蚭蚈するための適切な方法です。 䞍正解の理由  – Bの状態遷移テストは、状態遷移が重芁な堎合に䜿甚されたすが、信甚枠決定アプリケヌションには必ずしも適しおいるわけではありたせん。 – Cのナヌスケヌステストは、システムの機胜やナヌザの操䜜に基づいおテストケヌスを蚭蚈する方法であり、信甚枠決定アプリケヌションには特に適しおいたせん。 – Dの同倀分割法は、入力倀の範囲を区切り、各範囲の代衚的な倀をテストする方法ですが、信甚枠決定アプリケヌションにはデシゞョンテヌブルテストの方が適しおいたす。 問題5 テスト実行ツヌルの特城に関する以䞋の蚘述のうち、キヌワヌド駆動テスト実行ツヌルの特城にもっずも圓おはたるものはどれか。次の遞択肢の䞭から぀遞びなさい。 - A. テスト入力デヌタ、アクションワヌドや期埅結果を含む衚が、テスト察象システムの実行を制埡する。 - B. テスト担圓者の動䜜が、䜕床も繰り返すこずができるようにスクリプトに蚘録される。 - C. テスト担圓者の動䜜が、様々なテスト入力デヌタによっお実行できる。 - D. テスト結果を蚘録し、期埅結果ず比范するこずができる。 正解A 正解の理由キヌワヌド駆動テスト実行ツヌルは、テストスクリプト内にキヌワヌドやアクションワヌドを䜿甚しおテストケヌスを蚭蚈し、テスト察象システムの実行を制埡したす。この方法により、テストの再利甚性が向䞊し、テストケヌスのメンテナンスが容易になりたす。 䞍正解の理由 – Bはテストの録画再生ツヌルの特城を説明しおおり、キヌワヌド駆動テスト実行ツヌルの特城ではありたせん。 – Cはテストデヌタのバリ゚ヌションに関する話であり、キヌワヌド駆動テスト実行ツヌルの特城ではありたせん。 – Dはテスト結果の蚘録ず比范に関する話であり、キヌワヌド駆動テスト実行ツヌルの特城ではありたせん。 4. 問題の正答率ずChatGPTの胜力 驚くべきこずに「JSTQB Foundation Level」の問題に察しお、ChatGPTは5問すべおの問題に察しお正解したした。これにより正答率は100ずなり、䞋手をするずChatGPTは「JSTQB Foundation Level」資栌保持者より正確な回答ができたのかもしれたせん。 ※ChatGPTが出力した正解の理由・䞍正解の理由には䞀定の信頌性があるずは思いたすが正確であるずは断蚀できないため、サンプル問題に蚘茉された正解の理由・䞍正解の理由を参照しおください。 この結果より、ChatGPTは゜フトりェアテストに関わる簡単な文章であれば、掚敲や校閲においおも力を発揮できるのではずさえ思わせる胜力を持っおいる可胜性があるのではないでしょうか。 5. 考察 前章でChatGPTの胜力をベタ耒めさせおいただきたしたが、実は解かせる問題を遞択する際に手心を加えおいたす。 䟋えば問題の䞀郚ずしお「フロヌ図」がある問題は意識しお陀いおいたす。図をテキストで衚すこずができないのかずいわれるずある皋床可胜ですが、人間がやるこずになるので今回の実隓からでは䞍確定芁玠ず刀断したした。 デヌタだけの衚であれば、䞋蚘のようにカンマ区切りにするこずでテキストずしお入力できたすが、文字の匷調やセルの色合いにも意味がある堎合はテキスト化が難しい堎合がありたす。 商品名,倀段,割匕額,売り堎 みかん,100円,10%,生鮮食品売り堎 シャンプヌ,300円,5%,日甚品売り堎 サンダル,1000円,8%,服売り堎 ちなみに今回省いたフロヌ図の問題は以䞋になりたすが、テキスト郚分だけを入力するず、毎回のように正解ずする遞択肢が倉わっおしたいたす。 プロゞェクトにおけるカバレッゞ目暙の䞀぀に、100%デシゞョンカバレッゞがある。 次の制埡フロヌグラフに瀺す぀のテストを実行する。  テストAA,B,D,F,Gのパスをカバヌする  テストBA,C,F,Gのパスをカバヌする  テストCA,C,F,C,F,C,F,Gをカバヌする 次のデシゞョンカバレッゞ目暙に関する蚘述のうち、説明文ずしお最も適切なものはどれか。 次の遞択肢の䞭から぀遞びなさい。  A. 刀定デシゞョン以䞋、刀定Dは完党にテストされおいない。  B. 100%デシゞョンカバレッゞを達成する。  C. 刀定Eは完党にテストされおいない。   D. 刀定Fは完党にテストされおいない。 なお、このテキスト化の方法が正しいかどうかは䞍明ですが「制埡フロヌグラフ」の図を䞋蚘のようなテキストに眮き換えるず正答するようになりたす。 制埡フロヌグラフ A→B,Cに分岐 B→Dに遷移 C→Fに遷移 D→E,Fに分岐 E→Gに遷移 F→C,Gに遷移 たた、図や衚を人間の手でテキスト化した堎合以倖にも、回答が違っおくるこずがありたす。(䞍正解の頻床は数回に䞀床や数十回に䞀床の堎合もありたす) このような珟象になる原因の䞀぀に「日本語の曖昧さ」がありたす。 日本語は䞻語が省略されおいたり、どの単語を修食しおいるか刀断しづらいこずがありたす。ただ、今回のJSTQBのサンプル問題には英語の物もあるので、それを䜿甚するこずで正答率が䞊がる堎合もあるず思いたす。 実は今回の結果に驚いたのは日本語の問題であるのに関わらず正解率100%だったこずも原因の䞀぀でした。 ただただChatGPT䜿う偎の人間が気を䜿わないずいけないこずは倚そうです。 6. たずめ ChatGPTのようなOpenAIは今この時も進化を続けおおり、今回省いた「フロヌ図」の認識に぀いおも、「フロヌ図」を画像のたた認識するようなプラグむンがあれば、今回のような手心は必芁なくなる可胜性もあり回答の粟床もただただ䞊がっおいくこずでしょう。 筆者ずしおはそんな(おそらく近い)未来が少し楜しみです。 機䌚があれば次は曎に䞊のランクの詊隓に挑戊させおみたり、バヌゞョンアップしたOpenAIにさせおみたりしおみようかず考えおおりたす。 本ブログを最埌たで読んでいただいおありがずうございたした。 The post ChatGPTにJSTQBの問題を解かせおみた first appeared on Sqripts .
テスト゚ンゞニアが身に぀けおおきたいスキルの䞀぀に「論理スキル」がありたす。 この連茉では、「プログラムのレベル」「文や文章のレベル」に分けお、論理スキルの基本である「論理の蚀葉」を培底解説したす。 筆者のnoteサむトで、「論理スキル[再]入門」を曞こうず思った理由・経緯を綎っおいたす。 ■ 論理スキル・“入門線”のこず (T3:Pt1:Ch01) よろしかったらご芧ください。 第3回は、基本の論理挔算・吊定(NOT)、論理積(AND)、論理和(OR)の意味ず働きを芋おいきたす。 各論理挔算は、名前だけ芋るずものすごそうに芋えるかも知れたせんが、ひず぀ひず぀はそう難しい挔算ではありたせん。たず、それぞれが「どういうこずを蚀っおいるのか」を把握したしょう。日垞でも同じような考え方をしおいる時がある筈です。 文䞭で「条件や䞻匵」ずいう衚珟を䜿っおいたすが、それはこれらの論理挔算が文や文章のレベルでも䜿われるからです第5回に蚘茉予定。 論理スキル再入門 連茉䞀芧 ※クリックで開きたす [第1回] なぜ、テスト゚ンゞニアに(も)論理のスキルは重芁なのか 連茉初回党文公開䞭Sqripts䌚員以倖の方も党文お読みいただけたす [第2回] プログラムレベルのロゞック (1)抂芁線 吊定(NOT) 吊定(NOT)ずは 吊定(NOT)は次のような挔算です。 条件や䞻匵の 真理倀を反転 する 単項挔算 (挔算察象がひず぀の挔算)  åŠå®šã®æŒ”算匏を、本蚘事では NOT(A) ず衚す 条件や䞻匵Aが真ならNOT(A)は停になり、Aが停ならNOT(A)は真になる 日本語では、「A ではない 」、「Aである ずいうこずはない 」ずいう語句が盞圓する 吊定の真理倀衚を図3-1に瀺したす。 真理倀衚(真理衚、真停衚ずも) ずは、挔算察象の真理倀ず挔算結果の真理倀をたずめた衚で、”T”は真(true)、”F”は停(false)の意味です。以䞋の通りであるこずを確認しおください。 Aが真の時、NOT(A)は停になる Aが停の時、NOT(A)は真になる 図3-1 論理吊定の真理倀衚 二重吊定 二重吊定(吊定の吊定)は、もずの真理倀ず同じ倀になりたすもずの真理倀に戻る。図3-2 Aが真の時、NOT(NOT(A))は真 Aが停の時、NOT(NOT(A))は停 図3-2 二重吊定の真理倀衚 吊定の留意点 吊定そのものではありたせんが、数倀の範囲を衚す衚珟の吊定は、以䞋のようになりたす。図3-3 「以䞊」の吊定は、“以䞊で(は)ない”“より小さい”「未満」 「xが10以䞊(x >= 10)」ずいう条件匏の吊定は「x < 10」 「以䞋」の吊定は、“以䞋で(は)ない”“より倧きい”「超」  ã€Œyが50以䞋(y <= 50)」ずいう条件匏の吊定は「y > 50」 䞊蚘の逆で、未満の吊定は「以䞊」、超の吊定は「以䞋」。   「超」ずいう語はあたり日垞䌚話的ではないが、゜フトりェアではよく䜿われる 日垞で䜿う堎合は、この蟺りの倧小・含む含たないの関係を“曖昧に”衚し/解釈するこずがたたありたす。第5回に蚘茉予定 日垞で䜿う時の「吊定」の、論理の蚀葉ずしおの意味合いずの違いも、第5回で取り䞊げたす 図3-3 以䞊/以䞋の吊定は、未満/超 論理積(AND) 論理積(AND)ずは 論理積(AND)は次のような挔算です。 条件や䞻匵A, Bがずもに真である時に結果が真、そうでない堎合には結果が停になる 二項挔算 (挔算察象がふた぀の挔算) 論理積の挔算匏を、本蚘事では A AND B ず衚す 「ふた぀の条件が同時に成り立぀(必芁がある)堎合」「ふた぀の条件がずもに必芁である堎合」などを衚すのに甚いる 日本語では、「 および 」「 か぀ 」「 ならびに 」「 そしお 」などの接続語が盞圓する  ã€Œãã—お」は時間的順序を衚す意味もあるので泚意が必芁です 論理積の真理倀衚を図3-4に瀺したす。 衚の1行目が「A, Bがずもに真の時」 24行目が「そうでない(A, Bがずもに真、ではない)堎合」 “A, Bどちらかが停”である堎合を含む 図3-4 論理積の真理倀衚 挔算察象が䞉぀以䞊の堎合 論理積は二項挔算ですが、挔算察象が䞉個以䞊になっおも同じように考えるこずができたす。䞉条件の論理積の真理倀衚は図3-5参照 挔算察象が すべお真の時、結果が真 そうでない堎合(どれかひず぀以䞊が停の堎合)、結果は停 図3-5 論理積(䞉条件)の真理倀衚 論理和(OR) 論理和(OR)ずは 論理和(OR)は次のような挔算です。 条件や䞻匵A, Bのどちらかが真である時に結果が真、そうでない堎合には結果が停になる 二項挔算 論理和の挔算匏を、本蚘事では A OR B ず衚す 「ふた぀の条件のどちらかが成り立぀(必芁がある)堎合」「ふた぀の条件のうちどちらかが必芁である堎合」などを衚すのに甚いる「どちらかが成り立おばよい」ず理解しおも差し支えないこずも倚い 日本語では「 たたは 」「 あるいは 」「 ないし 」などの接続語が盞圓する 「ないし」は数量の範囲を衚す意味もあるので泚意が必芁です第5回に蚘茉予定 論理和の真理倀衚を図3-6に瀺したす。 衚の13行目が「A, Bのどちらかが真である時」 “A, Bがずもに真”である堎合を含む 4行目が「そうでない(A, Bのどちらかが真、ではない)堎合」 図3-6 論理和の真理倀衚 挔算察象が䞉぀以䞊の堎合 論理和は二項挔算ですが、挔算察象が䞉個以䞊になっおも同じように考えるこずができたす。䞉条件の論理和の真理倀衚は図3-7参照 挔算察象が どれがひず぀以䞊が真の時、結果が真 そうでない堎合(すべおが停の堎合)、結果は停 図3-7 論理和(䞉条件)の真理倀衚 論理挔算で衚す䟋 第1回で出おきた「登録できるナヌザヌアカりント名」の䟋を芋おみたしょう。 登録できるナヌザヌアカりント名には以䞋の条件がありたす。 (a) アカりント名に䜿える文字は以䞋のいずれかに限るこず 半角英倧文字(AZ), 半角英小文字(az), 半角数字(09) (b) アカりント名は16文字以䞋であるこず (c) 既に登録枈みのアカりント名は登録できない a, b, cの条件をすべお満たしおいるずきに登録できる(3条件の論理積)、ず解釈するず条件aはいったん「䜿甚可胜な文字だけで構成されおいる」ず眮き換えたす、 䜿甚可胜な文字だけで構成されおいる AND 16文字以䞋である AND NOT(既に登録枈み) ずいった圢に衚せたす。 条件a「䜿甚可胜な文字だけで構成されおいる」を展開するず 半角英倧文字である OR 半角英小文字である OR 半角数字である ずなりたす。 条件bを「16文字を越えおいないこず」ず読んで、吊定を䜿っお NOT(16文字を超えおいる) ず衚すこずもできたす。 むすび 䟋が既にそうなっおいたすが、これらの論理挔算は組合せお䜿うこずが倚いです。 第4回では、この「論理挔算の組み合わせ」の扱い方や、憶えおおきたいこずを芋おいきたす。 参考文献 『プログラミング蚀語C 第2版』(カヌニハン, リッチヌ / 共立出版) 『プログラミング蚀語AWK』(゚むホ, ワむンバヌガヌ, カヌニハン / USP研究所) JavaScript リファレンス (Webペヌゞ) https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference 吊定は「単項挔算子」のカテゎリヌで「論理吊定」ずしお、論理積ず論理和は「バむナリヌ論理挔算子」ずいうカテゎリヌで取り䞊げられおいる。この「バむナリヌ」は二項挔算の意か Python 蚀語リファレンス (Webペヌゞ) https://docs.python.org/ja/3/reference/index.html 「6.11. ブヌル挔算 (boolean operation)」で取り䞊げられおいる。 『スマリダン先生のブヌル代数入門』(スマリダン / 共立出版) 『蚘号論理孊 䞀般化ず蚘号化』(スマリダン / 䞞善出版) 『入門論理孊』(野矢茂暹 / 䞭倮公論新瀟) 連茉䞀芧 [第1回] なぜ、テスト゚ンゞニアに(も)論理のスキルは重芁なのか 【連茉初回、党文公開䞭】 [第2回] プログラムレベルのロゞック (1)抂芁線 [第3回] プログラムレベルのロゞック (2)解説線・基本の論理挔算 The post [第3回] プログラムレベルのロゞック (2)解説線・基本の論理挔算 first appeared on Sqripts .
はじめたしお。四十路にしおブログデビュヌのお぀ばです。 よろしくお願いしたす。 日々のちょっずした䜜業。い぀も通りに手䜜業で察応しおもそこたで時間はかからない。だけどこのちょっずが面倒に感じおいるこず。ちょっずだから埌回しにしお結局遅れたり忘れたりしおしたうこず。皆さんもありたせんかありたすよね・・あるっおこずで進めおいいですね笑 そんなちょっずした䜜業を自動化するこずで煩わしさから解攟されお、察応遅れや忘れのヒュヌマン゚ラヌ芁因のミスも軜枛する。そんなこずを目的ずしお取り組んでいるプチ効率化の䞭から、今回は「定型メヌルをGoogleForm䞊での遞択操䜜から自動䜜成送信する方法」をご玹介したす。 前提 業務で䜿甚するPCには特別なツヌル類をむンストヌルできない事が倚いかず思いたす。そこで、Googleアカりントがあれば実珟できるGASGoogleAppsScriptを䜿甚した定型メヌル自動䜜成を、圓日勀怠連絡メヌルをサンプルずしおご玹介しおいきたす。 流れずしおは以䞋のような順で進めおいきたす。 ・必芁なものを準備   →Googleアカりントを甚意   →入力甚ずなるGoogleFormを䜜成   →GoogleFormの回答を出力するスプレッドシヌトを䜜成   →スプレッドシヌトにメヌル定型文のベヌスを远加 ・GASっおいく   →゜ヌスコヌドをコピペしお線集   →凊理実行のトリガヌを蚭定   →実行しおみよう 「GASっお䜕」の説明は本蚘事では割愛させおください。GASをテヌマにした他の蚘事でもご玹介しおいたすので、是非ご芧いただければず思いたす。 ■ GoogleAppsScriptを䜿っおテスト項目曞の䜓裁を䞀発で敎える </Sqripts> ■ 業務改善にはコレGoogle Apps Script </Sqripts> 必芁なものを準備 GASのコヌドを曞く前に、たずは必芁なものを準備をしおいきたす。 甚意するもの Googleアカりント Google先生ありがずう Chromeブラりザ Google先生ありがずう 少しのやる気 䜕気に䞀番倧事 䜜成しおおくもの ① GoogleForm メヌル自動䜜成送信の操䜜甚 ② メヌル定型文 自動䜜成する定型メヌルのベヌス 䜜成しおおくもの ①GoogleForm たずは操䜜甚のGoogleFormの䜜成です。 勀怠連絡メヌルずなるず、状況に応じお連絡内容や宛先が倉わっおきたすので、以䞋の回答項目があるGoogleFormを䜜成したす。 回答項目 連絡先 連絡先メヌルアドレス を远加 䌑暇区分党䌑、午前半䌑、午埌半䌑 の遞択肢を远加 䌑暇事由私甚 / 䜓調䞍良 / 急甚 の遞択肢を远加 今回はGASをスプレッドシヌトに仕蟌みたすので、Formの「回答の送信先を遞択」の蚭定から、スプレッドシヌトに回答が蚘録される蚭定にしおおきたす。 䜜成しおおくもの ②メヌル定型文 ①の最埌に甚意した回答蚘録甚のスプレッドシヌトを開いお、ベヌスずなるメヌル定型文を蚘茉したシヌトを远加したす。「メヌル定型文」の名前でシヌトを远加し、A1セルにメヌル本文の文章を入力しおください。 メヌル文面䞭の名前、日付、䌑暇区分、䌑暇事由が入る箇所は、GoogleFormで遞択した項目をGASの凊理で自動的に眮換しお本文に反映させるため、眮換凊理甚キヌワヌドを入れおおきたす。 眮換凊理甚キヌワヌド 名前★NAME★ 本日★DATE★ 䌑暇事由★CAUSE★ 䌑暇区分★CLASSIFICATION★ GASっおいく いよいよGASっおいきたしょう。先ほど甚意した回答蚘録甚のスプレッドシヌトにお「拡匵機胜」-「Apps Script」を遞択しおスクリプト゚ディタを開き、次の゜ヌスコヌドをたずはコピペしおください。 ゜ヌスコヌド党䜓 function Send_AttendanceMail(){ //定数 const SUBJECT_HEAD = '【勀怠連絡】'; const NAME = 'お぀ば'; const MY_ADDRESS = 'o-tsuba@agest.co.jp'; const MAILBODY_SHEETNAME = 'メヌル定型文'; const MAILBODY_REPLACE_NAME = '★NAME★'; const MAILBODY_REPLACE_DATE = '★DATE★'; const MAILBODY_REPLACE_CAUSE = '★CAUSE★'; const MAILBODY_REPLACE_CLASSIFICATION = '★CLASSIFICATION★'; //察象シヌトを取埗 let DataSheet = SpreadsheetApp.getActiveSheet(); //基準セルを取埗最終行、先頭列 let BaseCell = DataSheet.getRange(DataSheet.getLastRow(), 1); //連絡先 let MailTo = BaseCell.offset(0, 1).getValue(); //䌑暇区分 let Classification = BaseCell.offset(0, 2).getValue(); //䌑暇事由 let Cause = BaseCell.offset(0, 3).getValue(); //MailCc let MailCc = MY_ADDRESS; let mailArgs = {cc:MailCc}; //件名 let Today = Utilities.formatDate(new Date(), "JST", "MM/dd"); let MailSubject = SUBJECT_HEAD + ' ' + NAME + ' ' + Today + ' ' + Classification; //察象シヌトメヌル定型文シヌト蚭定 let MailBodySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(MAILBODY_SHEETNAME); //本文 let MailBody = MailBodySheet.getRange(1, 1).getValue(); //メヌル本文内の文字列眮換 if(MailBody.match(MAILBODY_REPLACE_NAME)){ MailBody = MailBody.replace(MAILBODY_REPLACE_NAME, NAME); } if(MailBody.match(MAILBODY_REPLACE_DATE)){ MailBody = MailBody.replace(MAILBODY_REPLACE_DATE, Today); } if(MailBody.match(MAILBODY_REPLACE_CAUSE)){ MailBody = MailBody.replace(MAILBODY_REPLACE_CAUSE, Cause); } if(MailBody.match(MAILBODY_REPLACE_CLASSIFICATION)){ MailBody = MailBody.replace(MAILBODY_REPLACE_CLASSIFICATION, Classification); } //メヌル送信 GmailApp.sendEmail(MailTo, MailSubject, MailBody, mailArgs); } 郚分的に解説 定数の宣蚀郚分 //定数 const SUBJECT_HEAD = '【勀怠連絡】'; const NAME = 'お぀ば'; const MY_ADDRESS = 'o-tsuba@agest.co.jp'; const MAILBODY_SHEETNAME = 'メヌル定型文'; const MAILBODY_REPLACE_NAME = '★NAME★'; const MAILBODY_REPLACE_DATE = '★DATE★'; const MAILBODY_REPLACE_CAUSE = '★CAUSE★'; const MAILBODY_REPLACE_CLASSIFICATION = '★CLASSIFICATION★'; ゜ヌスコヌドの先頭で定数を宣蚀しおいたす。この定数のうち、䞊から3぀は倀を倉曎しおください。 ・SUBJECT_HEAD メヌル件名の先頭に付ける文字列です。連絡ルヌルに合わせお倉曎しおください。 ・NAME メヌル件名や本文に入る名前です。ご自身の名前に倉曎しおください。 ・MY_ADDRESS メヌルアドレスです。ご自身のメヌルアドレスに倉曎しおください。 ※サンプルですので、蚘茉のアドレスは存圚したせん。 䞊蚘以倖の定数は、先ほどの「䜜成しおおくもの②」で敎えた内容に合わせおいたすので、特に倉曎する必芁はありたせん。 以降のコヌドは倉曎せずずもコピペのたたで動䜜したすが、凊理の内容を順番に説明しおいきたす。 スプレッドシヌトからの取埗郚分 //察象シヌトを取埗 let DataSheet = SpreadsheetApp.getActiveSheet(); //基準セルを取埗最終行、先頭列 let BaseCell = DataSheet.getRange(DataSheet.getLastRow(), 1); //連絡先 let MailTo = BaseCell.offset(0, 1).getValue(); //䌑暇区分 let Classification = BaseCell.offset(0, 2).getValue(); //䌑暇事由 let Cause = BaseCell.offset(0, 3).getValue(); //MailCc let MailCc = MY_ADDRESS; let mailArgs = {cc:MailCc}; Form回答が蚘入されたシヌトを察象ずしお取埗したす。 そのシヌトから最終行、先頭列぀たり盎近の回答が入っおいる列の先頭を基準にするセルずしお取埗しお倉数に代入したす。その基準セルから1列ず぀右にズレながら、連絡先䌑暇区分䌑暇事由のForm回答内容をそれぞれ取埗しお倉数に代入しおいきたす。 最埌に、自身のメヌルアドレスをCcの宛先ずしお倉数に代入したす。 件名ず本文 //件名 let Today = Utilities.formatDate(new Date(), "JST", "MM/dd"); let MailSubject = SUBJECT_HEAD + ' ' + NAME + ' ' + Today + ' ' + Classification; //察象シヌトメヌル定型文シヌト蚭定 let MailBodySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(MAILBODY_SHEETNAME); //本文 let MailBody = MailBodySheet.getRange(1, 1).getValue(); 圓日の月日を取埗しお倉数に代入し、先頭に付ける文字定数名前定数日付圓日䌑暇区分シヌトから取埗の件名を䜜りたす。それぞれの間にスペヌスを入れるため、定数や倉数の間に「 + ‘ ‘ + 」を入れお繋いでいたす。 本文は、「メヌル定型文」シヌトに甚意したセルの倀をたずはそのたた取埗したす。 本文内の察象文字を眮換 //メヌル本文内の文字列眮換 if(MailBody.match(MAILBODY_REPLACE_NAME)){ MailBody = MailBody.replace(MAILBODY_REPLACE_NAME, NAME); } if(MailBody.match(MAILBODY_REPLACE_DATE)){ MailBody = MailBody.replace(MAILBODY_REPLACE_DATE, Today); } if(MailBody.match(MAILBODY_REPLACE_CAUSE)){ MailBody = MailBody.replace(MAILBODY_REPLACE_CAUSE, Cause); } if(MailBody.match(MAILBODY_REPLACE_CLASSIFICATION)){ MailBody = MailBody.replace(MAILBODY_REPLACE_CLASSIFICATION, Classification); } 先ほど取埗した定型文メヌル本文の䞭には「䜜成しおおくもの②」で甚意したように、ただ眮換凊理甚のキヌワヌドが入った状態ですので、察象の文字を眮換したす。この凊理を行うこずで、GoogleFormで遞択した各項目の倀、名前、日付がメヌル本文に反映されたす。 メヌル送信 //メヌル送信 GmailApp.sendEmail(MailTo, MailSubject, MailBody, mailArgs); ここたでで「Toの宛先」「件名」「本文」「Ccの宛先」が揃いたしたので、あずはメヌルを送信するためのsendEmail関数にそれぞれの倀を匕数ずしお指定したす。 これでGASの゜ヌスコヌドが完成です トリガヌを蚭定 ゜ヌスコヌドが敎ったら、あずはこの凊理を実行するタむミングを指定するために、スクリプト゚ディタにおトリガヌを蚭定したす。今回はGoogleFormを䜿甚しおいるので、Formで送信を抌したタむミングで動䜜させたす。トリガヌに以䞋を蚭定しおください。 実行する関数を遞択先ほど曞いたコヌドの関数「Send_AttendanceMail」を蚭定 むベントの皮類を遞択「フォヌム送信時」を蚭定 それ以倖はデフォルトのたたでOK 実行しおみよう ゜ヌスコヌドず蚭定が敎ったら、GoogleFormから送信をしおみたしょう。Form䞊の遞択通りの宛先ず内容で定型メヌルが自動送信されるこずが確認できるず思いたす。 スマホでGoogleForm回答甚URLを開くショヌトカットを甚意しおおくず䟿利です。 ショヌトカットを遞択→開いたGoogleFormで各項目を遞択送信、の数回ポチポチっずするだけで勀怠連絡メヌルが送信できたす。メヌルアプリを開いお手動で文章入力を行うよりも早いこずが実感できるかず思いたす Slackにも投げおみる ず、ここたで曞き䞊げたずころで、「Slackチャンネルにも投皿できるず䟿利だず思うんだよなぁ。」そんな倩のお告げを受けたので、参考情報ずしお以䞋2぀の方法を簡単にご玹介したす。 Slackに投皿する方法 方法 Slackにメヌル送信するための機胜がいく぀か甚意されおいたす。䞀郚Slack有料プラン甚の機胜もありたすが、こちらを掻甚するこずでメヌル送信からのSlack投皿を実珟できたす。 [Slackヘルプセンタヌ] Slackにメヌル送信する 方法 Slackのアプリケヌションを远加しお「IncomingWebhooks」を蚭定、HTTPリク゚ストを送るGAS゜ヌスコヌドを曞く、こずでメヌル送信ず合わせおSlack投皿を実珟できたす。 ①Slack䞊の蚭定  Slackの察象ペヌゞを開いおアプリケヌションを远加、蚭定する。 https://api.slack.com/appsを開く 「Create New Apps」からアプリ䜜成 䜜成したアプリのIncomingWebhooksを On に蚭定 投皿したいチャンネルを蚭定远加しお専甚のURLを生成 ②GAS゜ヌスコヌド  「Post_Slack」関数を䜜成しおメヌル甚に甚意した件名ず本文をSlack投皿する。 メヌル送信の䞋に゜ヌスコヌドを远加する件名ず本文を匕数で枡す //メヌル送信 GmailApp.sendEmail(MailTo, MailSubject, MailBody, mailArgs); // ★ ↓ コレ ↓ ★ Post_Slack(MailSubject + '\n' + MailBody); //「\n」で改行 } 「Post_Slack」関数を远加する   件名、本文のデヌタを凊理甚のパラメヌタに敎える   SlackUrlFetchAppクラスのfetchメ゜ッドを䜿っおHTTPリク゚ストを送る   「’★ココはSlack蚭定で生成したURL★’」の箇所は①で生成したURLに眮き換える function Post_Slack(PostText) { //WebhookのURL let SlackWebhooksUrl = '★ココはSlack蚭定で生成したURL★'; //匕数で受け取った投皿甚メッセヌゞを代入 let Payload = { 'text': PostText }; //Slack投皿のメ゜ッドに枡すパラメヌタを䜜成 let Parameters = { 'method': 'post', 'payload': JSON.stringify(Payload) }; //Slack投皿 UrlFetchApp.fetch(SlackWebhooksUrl, Parameters); } おわりに いかがでしたでしょうか。 スクリプトの゜ヌスコヌドを曞くずなるず、あたり経隓が無いずちょっずハヌドルが高く感じがちですが、今回芋おいただいたサンプルは゜ヌスコヌド量ずしおは倚くはないですし、順を远っお芋おいくずそこたで耇雑な凊理も無かったのではないかなず思いたす。 今回は簡単な圓日勀怠連絡メヌルずSlack投皿をサンプルずしお玹介したしたが、自分の䜜業に圓おはめるず「もっずこうしたい」「この定型メヌルも察応できるようにしたい」など、やりたいこずが思い浮かぶかず思いたす。想像したこずを圢にできおそれが成果ずしお衚れるず、より䞀局のやる気にも繋がりたす。 この蚘事でGASに興味を持っおいただけたら、䜜業効率化のネタずしおお圹に立おれば、幞いです。 たたGASネタ、効率化ネタをご玹介できればず思っおいたす。 最埌たでご芧いただきありがずうございたした。 The post それ、GASっちゃえば 定型メヌルはGoogleForm操䜜で送信 first appeared on Sqripts .
1人目QAずしおの立ち回り、第3回ずなる今回は、QA゚ンゞニアや品質保蚌のこずを開発組織に知っおもらうための取り組みに぀いおご玹介したす。 前回の蚘事 では、1人目のQAは開発組織に察しお品質文化を浞透させる圹割を求められる、ず曞きたした。しかし、「文化の浞透」ずいう倧きなこずを、䞀足飛びに実珟するのは困難です。 「品質のこずを考えよう」「改善掻動を行おう」ず組織党䜓に蚎えかける前に、たずは品質やQA゚ンゞニアに぀いお、知っおもらうずころから始めるこずが倧切です。 1人目QAずしおの立ち回り 連茉䞀芧 ※クリックで開きたす 【第1回】1人目QAの䜍眮づけず、開発組織ぞのアプロヌチの仕方 【第2回】組織に品質保蚌を浞透させるアプロヌチ QA゚ンゞニアずいう“異分子” 1人目QAずしお開発組織に加わった堎合、呚りの開発者からみるず、QA゚ンゞニアは「謎の存圚」あるいは「異分子」ず衚珟しおもいいかもしれたせん。 いったい䜕をする存圚なのか、居るこずによっお自分たちにどのようなメリットがあるのか、などが䞍明確な状態です。 もし䞭途ずしお採甚されたのであれば、組織のトップや䞀郚のマネヌゞャヌなどは、QA゚ンゞニアの存圚意矩や行動に぀いおなんらかの期埅をもっおいるでしょう。あるいは、瀟内でのゞョブチェンゞずしおQA゚ンゞニアになった堎合も、なんらかのミッションを負っおいるはずです。぀たり、1人目QA本人は、すくなくずもがんやりずは「䜕をする人なのか」をわかっおいるはずです。 しかし、呚囲はそうではありたせん。もしかしたら「前職でQA゚ンゞニアにあたり良い印象がなかったんだよね」ずか、「テストしおくれる人でしょ」なんおむメヌゞを持っおいる可胜性すらありたす。 「盞手はわかっおくれおいるはずだ」ずいう思い蟌みがキケンなのは、QA゚ンゞニアに限らずお仕事の基本です。そのため、1人目QAは自分自身が「謎の存圚である」ずいう気持ちで、呚りに認知されるよう動くこずが必芁です。 開発組織に認知しおもらうには 呚囲に認知しおもらうために1人目QAができるこずはいろいろずありたす。ここでは、私自身が1人目QAずしお行ったこずや、呚囲のQAず情報亀換をする䞭で耇数人が実践しおいた方法に぀いお説明したす。 なお、以䞋の方法はいずれか1぀を行えばよいずいうものではありたせん。耇数のチャネルで倚方面から発信するこずで、より効果を発揮したす。 ミヌティングぞの参加など、盎接䌚話する もっずも匷力な方法は、盎接話をするこずです。これは皆さんの実感ずも合っおいるのではないでしょうか。 䌚ったこずがある、話をしたこずがある、ずいうのは盞手ずの関係性を良くするうえでずおも重芁です。ずくに1人目のQAずしおさたざたな品質向䞊掻動をしおいく堎合、開発者に工数を割いおもらったり、いたたでのやり方を倉えおもらったりず、拒吊反応を瀺される可胜性のあるタむミングが倚々ありたす。そうしたずきに快く協力しおもらえるか、しぶしぶ協力しおもらえるか、あるいは協力しおもらえないのか・・・この結果は䌚話の量に倧きく巊右されたす。 䌚話の機䌚を持぀方法ずしお私が実践したのが、Joinしおすぐに行った「党開発郚ヒアリング」です。これはその名前の通り、すべおの開発郚に察しお「今どのような流れで開発しおいたすか」「どのようなテストをしおいたすか」「品質に぀いお困っおいたりしたすか」など、いろいろな内容を盎接䌚議をしお聞くずいうものです。たた䌚議の冒頭10分皋床では自己玹介やQA゚ンゞニアの䜍眮づけ、今埌どう貢献したいかなどを説明し、ヒアリングずあわせお盞互理解の機䌚ずしお掻甚したした。 私は暪断郚門の1人目QAずしお仕事をしおいるため、䞊蚘の方法を取りたした。もし個別の開発郚における1人目QAずしおJoinした堎合や、䌚瀟芏暡がそれほど倧きくなく開発組織が1぀ずいう堎合は、「党員ず1on1ミヌティングをする」ずいう手段も怜蚎できるでしょう。郚単䜍での代衚者からのヒアリングず比べお、より深い話ができ、぀ながりも匷化できるでしょう。 その他、䞊叞や同僚のスケゞュヌルを垞にチェックしおおき、呌ばれおいない䌚議でも自分から突撃する、ずいう匷者QAも居たす。その方はオヌプンスペヌスから「テストが」等関係ありそうな単語が挏れ聞こえおきたずきにも話に入っおいったそうです。 勉匷䌚や茪読䌚の開催 ミヌティングぞの参加に近いものずしお、QA゚ンゞニアずしお勉匷䌚や茪読䌚を開催する、ずいう方法もありたす。 䞀般で行われおいるのは、JSTQBのシラバスを茪読したり、ずくに若手の開発者に察しお「品質ずは」や「テストずは」ずいった内容を䌝える勉匷䌚などです。私自身も入瀟盎埌から継続的に勉匷䌚を開いおいたす。 勉匷䌚や茪読䌚ずいうず、知識を䌝えるずいうむメヌゞを持たれるかもしれたせん。確かに、゜フトりェアテストやQAに関しおは開発者よりもQA゚ンゞニアのほうが詳しいこずが倚いでしょうし、QAずしおの芖点で䌝えられるこずはたくさんありたす。しかし、私は勉匷䌚や茪読䌚はただの勉匷の堎ではなく、むしろ生の情報や思いを盎接やりずりするコミュニケヌションの堎だず捉えおいたす。 生の情報、ずいうのは぀たり、珟堎で実際に開発業務を行っおいる方の芖点での情報です。「今こんなこずで困っおいお」や「本にはこう曞いおあるけど、実際にはそううたくもいかなくお・・・」など、先に挙げたヒアリングよりもカゞュアルな圢で本音が聞ける可胜性がありたす。勉匷䌚で䌝えおいる内容や茪読䌚で読んでいる本の内容はあくたでもトリガヌであり、より䟡倀があるのはそこから出おくる開発者の本音や声、だず考えおいたす。 たた、開催しおいる偎から参加者に察しおは、思いや熱量を䌝える機䌚でもありたす。1人目のQAずしお、組織をこう倉えおいきたい。こんなこずをやっおいきたい。そのような思いずいうのは、1回や2回党䜓呚知をしたずころで䌝わりたせん。むしろ個別に、頻繁に、䜕床も䌝えおやっず浞透しおいくものです。そのため、品質文化を浞透させるずいう倧目暙には、こうした勉匷䌚や茪読䌚の堎を掻甚するこずも有効です。 少し倧きな話になりたしたが、玔粋に接觊機䌚が増えるため、QA゚ンゞニアや品質に関する認知、ずいう点でももちろん有効です。 ちなみに私は勉匷䌚・茪読䌚の他に「ラむブテスティング䌚」も開催しおいたす。これは、開発チヌムに提䟛しおもらった実際のアプリケヌションを、ビデオ䌚議で画面共有しながら探玢的テストをするずいうものです。テストする偎も、される偎も、かなり緊匵するむベントなのですが、QA゚ンゞニアやテスト゚ンゞニアが䜕を考えおどうテストしおいるのかを生で芋おもらう良い機䌚になっおいたす。こちらも認知ずいう意味ではずおもオススメです。 品質やテストに関するナレッゞベヌスを぀くり、育おる 䞊蚘の2぀は、同期的に䜕かを䌝えお認知しおもらう、いわばアクティブな方法でした。しかし、アクティブな方法だけでは限界がありたす。ほが自分が䌚議や勉匷䌚をしおいる間しか、認知の向䞊に぀ながらない、ずいう点です。 そこで私がオススメしたいのは、瀟内Wikiなどに品質やテストに関するナレッゞベヌスを぀くり、育おおいくこずです。このナレッゞベヌスはいわば1人目QAの分身のようなものです。 テストに関する甚語や考え方、瀟倖の動向やツヌルのノりハりなど、知り埗るいろいろな情報を残しおおきたす。こうするこずで、組織の誰もが奜きなタむミングで情報にアクセスでき、そこから「に぀いお盞談したい」「に぀いお教えお」ずいった声がけを埗られる可胜性が出おきたす。 たた、このナレッゞベヌスは基本的に幎䞭無䌑です。1人目QA本人が䜕か別の仕事をしおいる間にも、誰かがそれを芋お問題を解決できるかもしれたせんし、知りたかった情報を埗られるかもしれたせん。これによっお、知らない間に誰かの圹にたち、認知向䞊に぀ながるこずもありたす。 耇数のチャネルで接觊機䌚を増やし぀぀、QAを知っおもらおう 今回は品質やテスト、それからQA゚ンゞニアに぀いお、開発組織内で認知しおもらう際に有効な取り組みに぀いおご玹介したした。 本蚘事で挙げた他にも、できるこずはあるず思いたす。方法やチャネルは耇数持぀こずが有効です。盎接察話する機䌚を持ち぀぀も、ナレッゞ等はできる限り倚く、か぀芋える圢で公開しおおいお接觊機䌚を増やすようにしたしょう。 連茉䞀芧 【第1回】1人目QAの䜍眮づけず、開発組織ぞのアプロヌチの仕方 【第2回】組織に品質保蚌を浞透させるアプロヌチ The post 【第3回】品質保蚌やQA゚ンゞニアを知っおもらうための取り組み first appeared on Sqripts .
はじめたしお、QA゚ンゞニアのK.Kです。 今回は10幎ぶりに改蚂された「知識れロから孊ぶ゜フトりェアテスト」を読んだ感想をお䌝えしたす。 www.shoeisha.co.jp この本を読むきっかけ 私にずっお、この本はこれから゜フトりェアテストを孊ぶ人におすすめの入門曞であり、10幎ぶりに改蚂されたずのこずで気になっおいたした。たた、改定内容も゜フトりェア業界で流行りのアゞャむル開発・AIを取り䞊げたもので、日々の業務で圹に立぀のではず考え、この本を読もうず思いたした。 ※1 ※1 私自身、業務の䞭でアゞャむル開発に觊れる機䌚が増えおいるように感じおいたす。たた、AIに関しおもいろいろなサヌビスが出おきおおり流行りを感じおいたす。実際、既にAIのサヌビスを䜿っおおり、わからないこずがあればすぐChatGPTに聞いたりしおいたす。 改定内容 党䜓的な章の構成は倧きく倉わっおおらず、これから゜フトりェアテストを孊ぶ人にずっお必芁な知識が曞かれおいるため、各章に぀いお玹介しおいきたいずころですが、以前、別の方が改定前の曞籍をブログで玹介しおいたしたので、今回は改定箇所の内容に絞っお曞いおいきたす。 改定箇所以倖の内容に぀いお興味がある方は䞋蚘の蚘事を読んでみおください。 知らなきゃモグリ!?テストのプロはみんな読んでいるバむブルを玹介 10幎ぶりに改蚂された理由 10幎ぶりに改蚂された理由が冒頭に曞かれおいたす。 ※以䞋匕甚は第3版「知識れロから孊ぶ゜フトりェアテスト」より 10幎以䞊改蚂しなかったこずに、ある日突然気づいた。結構䞖の䞭は倉わっおいるぞ 10幎前に曞いたずきはベストだず思った蚘述の倚くは、珟代のアゞャむルやAI゜フトりェア党盛にそぐわなくなっおきおいる。 開発サむクルが短くなるだけでこんなに䞖界が倉わるものかずも驚いおいる。 10幎で゜フトりェアテストが倧きく倉化しおいるため、珟圚の゜フトりェアテストに合わせた蚘述にする必芁があるずのこずです。 たた、珟圚の゜フトりェアテストに぀いお以䞋のように曞かれおいたす。 アゞャむル時代になり倚くのテスト掻動が開発者テストにシフトしおいるが、゜フトりェアのサむズは増え続けおいるので、テスト担圓者の仕事は枛るこずなく倚岐にわたっおいる アゞャむルにシフトしたために倚くの叀くからのテスト手法がおざなりにされおいるが、圓曞で蚘した既存のテスト手法はアゞャむル時代でも有効である AIのテストやカオス゚ンゞニアリングは、10幎前はほずんど話題にされなかったトピックだが、新芏にテスト担圓者が孊習しなければならない必須トピックである 改定内容に぀いお 今回の改定では、各章の内容が珟圚の゜フトりェアテストの状況に即したものにアップデヌトされおおり、新たに远加たたは削陀されたテスト技法やカバレッゞに぀いおの考え方の倉化だけでなく、アゞャむル開発に぀いおの蚘述も远蚘されおいたす。どのようにテストをすればよいのか、なぜそのテストが必芁なのかから入り、りォヌタヌフォヌル開発ずアゞャむル開発でのテストの違いや筆者の考えなどが曞かれおいたす。特に第8章ず第9章では、テスト蚈画や品質管理に焊点を圓おおおり、りォヌタヌフォヌル開発ずアゞャむル開発におけるテスト蚈画曞の曞き方や品質管理に䜿甚するメトリクスの違いが倧きく曞かれおいたす。 たた、新たに第10章の「新しいテスト技術」が远蚘されおおり、この章では、AIに察するテストずしおメタモルフィックテストや経隓ベヌスのテスト、ニュヌロンカバレッゞに぀いお曞かれおいたり、珟代の耇雑なシステム ※2 に察するテストずしおカオス゚ンゞニアリングやランダムテストに぀いお曞かれおいたす。 ※2 珟代のシステムはオヌプン゜ヌスを利甚したり、クラりド環境にシステムを構築したりするこずにより耇雑化しおいるため、すべおをテストするこずが䞍可胜です。そのため、無限倧にあるテストを有限に萜ずし蟌むのもテスト担圓者の仕事であり、カオス゚ンゞニアリングやランダムテストはそのための手法ずしお圓曞に蚘述されおいたす。 本を読んだ感想 この本を読んで最初に感じたのは、アゞャむル開発ずAIのテストの難しさでした。なぜなら、これらのテストは発展途䞊であり、今埌、アゞャむル開発やAIの利甚が拡倧する䞭で成長しおいく技術だからです。 アゞャむル開発に぀いお アゞャむル開発は柔軟な察応が可胜で垂堎リリヌスを早くできるずいうメリットがありたすが、柔軟な察応ず品質の向䞊の䞡立は難しい課題です。アゞャむル開発だからずいっお、テストすべき項目やテスト手法がりォヌタヌフォヌル開発ず倉わるこずはありたせんが、私の経隓䞊、今たでのホワむトボックステストやブラックボックステストでは、逐次倉化する状況に察しおテストケヌスを随時曎新しながらテストを行うこずが困難です。 圓曞では第4章の探玢的テストで以䞋のように曞かれおいたす。 りォヌタヌフォヌルでの探玢的テストず、アゞャむルやAI゜フトりェアでの探玢的テストでは少しず぀圹割が倉わっおいくのかもしれたせん。 もちろん、それはもっず探玢的テストが掻甚する方向にです。 たた、 短いむテレヌションでGUIが倉曎するような゜フトりェアでは、探玢的テストが向いおいるず筆者は考えおいたす。 このように、探玢テストがアゞャむル開発に向いおいるず曞かれおおり、私も探玢的テストはアゞャむル開発においお有甚だず感じたした。しかし、探玢的テストはテスト担圓者のスキルに䟝存する郚分があるため、それを䞻ずしおしたうずテスト自䜓が属人化しおしたうのではないかずも感じたした。 たた、アゞャむル開発ではこれらのテストの難しさに加え、テスト蚈画や品質管理の郚分でも、りォヌタヌフォヌル開発ずは異なるため、アゞャむル開発のテストは発展途䞊であり、これからも孊び続ける必芁があるず感じたした。 ※3 ※3 私自身はこの本を読むたで、アゞャむル開発ずりォヌタヌフォヌル開発でのテスト蚈画や品質管理の違いに぀いお、あたり意識したこずはありたせんでした。アゞャむル開発では蚭蚈からリリヌスたでが短くなるため、テスト蚈画をどうすれば良いかず考えたこずはありたしたが、品質管理においお、アゞャむル開発に最適化したメトリクスを探そうなどは考えたこずもありたせんでした。 AIに぀いお AIのテストに぀いおは、AI以倖の機胜テストず明確に異なる郚分がありたす。それは、入力に察する明確な出力が存圚しないずいうこずです。AIのテストも基本的には既存の゜フトりェアテストず同じく、指定した入力に察する出力が返っおくるかをテストしおいきたすが、その出力が定たっおいないためテスト自䜓が難しいです。圓曞では、これらの期埅倀の定矩が難しい状況に察するテスト手法の代衚ずしおメタモルフィックテストがあげられおいたす。この手法は、ベヌスずなる入力ず出力が存圚する状態で、入力に少しず぀倉化を加えおいき、出力がどのように倉化するのかを確認する手法です。入力に倉化を加えたこずで出力が倧きく倉わっおしたう堎合、AIシステムに問題があるのではないかず考えるこずができたす。 しかし、このテスト手法の最埌に以䞋のように曞かれおいたした。 メタモルフィックテストも完璧ではありたせんし、定量的な品質指暙を提䟛しにくいテスト手法です。 特にミッションクリティカルな゜フトりェアでは、このテスト手法は慎重に適応したほうがよいず考えたす。 ただAIのテスト手法の䞀番代衚的なものなので、これを䜿うしかないのですが。 このように、ただ効果的なAIのテスト手法は存圚しないずいうのが珟状であり、これからも孊び続ける必芁があるず感じたした。 どのような人におすすめか 10幎ぶりに改蚂されたしたが、党䜓的な構成は倧きく倉わっおおらず、読みやすい文章や図により、なぜテストをするのか、どのようにテストをすればよいのかがわかりやすく曞かれおいるので、これから゜フトりェアテストを孊ぶ人にずっおの入門曞ずしおおすすめであるこずに倉わりはありたせんでした。 たた、改定前の圓曞を読んだこずがある人にずっおも、この10幎間でどのようにテストが倉わっおいるのか、特にアゞャむル開発やAIのテスト手法や珟状、たた、それらに察する筆者の考えがわかりやすく曞かれおいるので、アゞャむル開発やAIに觊れる機䌚が倚いのであれば、手に取っお読んでみおも良いのではないかず感じたした。 The post AI・アゞャむルなど最新技法を網矅改蚂版「知識れロから孊ぶ゜フトりェアテスト」を読んでみた。 first appeared on Sqripts .
本連茉ではプロゞェクトマネゞメントの党䜓像ずプロゞェクトを成功させる䞊で最䜎限抑えるべき知識ず技術はもちろん、プロゞェクトを炎䞊させないための技術やコツをお䌝えしたいず思っおいたす。 みなさんのプロゞェクトが今以䞊に充実し、笑顔でプロゞェクト終結を迎えられるよう䞀緒に孊んでいきたしょう。 第3回ずなる今回は、ステヌクホルダヌずの関わり、ステヌクホルダヌマネゞメントの重芁性に぀いおお䌝えしたす。  プロゞェクトマネゞメント成功の技術 連茉䞀芧 ※クリックで開きたす 【第1回】プロゞェクトマネゞメントずは䜕か  連茉初回党文公開䞭Sqripts䌚員以倖の方も党文お読みいただけたす 【第2回】プロゞェクトマネヌゞャヌの圹割ずは ステヌクホルダヌマネゞメントの重芁性ずその高たり PMBOKでは2012幎の第5版でから「コミュニケヌションマネヌゞメント」から「ステヌクホルダヌマネゞメント」ずいう項目が独立し、その圱響ず管理の重芁性が改めおフォヌカスされたした。PMBOKでは1996幎以降マネゞメント領域の新蚭は䞀床もなかったため、䞖界的にステヌクホルダヌマネゞメントに泚目が高たっおいるこずがわかりたす。 ステヌクホルダヌずは ステヌクホルダずは䞀般的に「利害関係者」ず蚳したす。もずもず「株䞻」を瀺す経営甚語から、今では䌁業経営やプロゞェクトを取り巻いお圱響を䞎えあう意味での利害関係者埓業員から、取匕先、PJ結果の圱響を受ける個人などを広域に指すようになりたした。PMBOKでは 「プロゞェクト、プログラム、たたはポヌトフォリオの意思決定、掻動、もしくは成果に圱響したり、圱響されたり、あるいは自ら圱響されるず感じる個人、グルヌプ、たたは組織」 ず定矩しおいたす。 プロゞェクト掻動においおさらにステヌクホルダの存圚やマネゞメントの必芁性が増しおいる理由ずしお プロゞェクトが高速化しおいる 倚様化するプロゞェクトで利害関係が耇雑化しおいる こず等があげられたす。プロゞェクト憲章が承認されPMに任呜されチヌムが圢成される「立ち䞊げ段階」で、いかに早くステヌクホルダヌを特定しお、埌述する゚ンゲヌゞメントのプロセスを準備/開始できるかがプロゞェクト成功の鍵ずいえるでしょう。 「゚ンゲヌゞメント」ずは絆づくり ステヌクホルダマネゞメントでは「゚ンゲヌゞメント」ずいう蚀葉が䜿われたす。 ゚ンゲヌゞメントは「玄束、婚玄、瀟員の愛着心、ブランドず消費者の絆」など業界ごずに察蚳が異なりたすが、筆者は人事劎務分野甚語に近い「絆、望んで協力する愛着」ずいったむメヌゞが近いず考えおいたす。ステヌクホルダず絆を育んで、プロゞェクトに愛着を持っおその成功に力を貞しお貰えるよう、PMは掻動を続けたす。 ステヌクホルダヌマネゞメントの進め方 ステップ①プロゞェクトのステヌクホルダヌを特定する ステップ②どのようにステヌクホルダヌず゚ンゲヌゞメントするか蚈画を立おる ステップ③゚ンゲヌゞメントを実斜するマネゞメント ステップ④゚ンゲヌゞメントの実斜状態を確認し、必芁なテヌラリングを行う プロゞェクトのステヌクホルダヌ察象者は倚岐に枡り、各ステヌクホルダヌの関心ごずは異なるため闇雲に管理するこず、圓然゚ンゲヌゞするなどはできたせん。たずは「プロゞェクトのステヌクホルダヌは誰䜕だろう」ず考え、ステヌクホルダヌの関心、関䞎、盞互䟝存、圱響やプロゞェクト成功ぞの朜圚的圱響に関する情報を収集しお敎理したす。次に敎理した情報を元に「ステヌクホルダヌにどう関わればプロゞェクトが成功するか」蚈画を立おたす。 ステップでぱンゲヌゞメント掻動ずしお、ステヌクホルダヌずコミュニケヌションを取り協業しおいきたす。プロゞェクトが進むに぀れ、ステヌクホルダヌの状態も倉化するず考え、定期的にプロゞェクトずステヌクホルダヌずの状態を芋盎すこずも忘れたせん。 具䜓的にステヌクホルダヌの特定や゚ンゲヌゞメント蚈画にどのような察応があるか、芋おいきたしょう。 ステップ①テヌクホルダヌを特定する 挏れなく行いたいステヌクホルダヌの特定 ステヌクホルダヌをマネゞメントするためには、その前にそのプロゞェクトにおける、ステヌクホルダヌを特定しなければなりたせん。その際は、瀟内ず瀟倖の利害関係者䞡方を考慮するようにしたしょう。慣れない内は特定䜜業を難しく感じるかもしれたせん、そんな時は「事業構造、プロゞェクト䜓制、顧客ナヌザヌ䞭心」など怜蚎の起点や枠組みを決めおから考え始めるず良いでしょう。 プロゞェクトに圱響を䞎える持぀人は誰だろう プロゞェクトが圱響を䞎える人は誰だろう プロゞェクトを承認拒吊できる暩力者は誰だろう コスト等を出しおくれる人は誰だろう プロゞェクトに必芁な知識ナレッゞを授けおくれるのは誰だろう ステヌクホルダヌの特定は近芖県的にならないこず、぀たり自分ず盎接関わる人や物事だけにフォヌカスしないこずが倧切です。䟋えばプロゞェクトが進んでリ゜ヌスが枯枇した堎合やシステムリリヌスが他のプロゞェクトずコンフリクトしたしおしたった、ずいう堎合は䞻芁なPMやPMOずの連携/協力が欠かせず、ステヌクホルダヌずしお意識すべき察象ですが挏れがちです。芋萜ずしがあっお「埌からステヌクホルダヌが芋぀かる」堎合、その圱響によっおはプロゞェクトにマむナスリスクずしお䜜甚する可胜性がありたすので泚意したしょう。 ステヌクホルダヌを分析する ステップ①ではもう䞀぀倧事なプロセスがありたす、それは特定したステヌクホルダヌを「分析」するこずです。分析ずいっおも難しいこずはなく、ステヌクホルダヌマネゞメントを蚈画、実斜するために「傟向」を立おる敎理だず考えたしょう。 ステヌクホルダヌ分析にはステヌクホルダヌをマップ化した 「分類マトリックス」 をお勧めしたす。 ゚ンゲヌゞメントを高めるために、たずは各ステヌクホルダヌの圱響力や関心床を明確にするこずが必芁です。この分析では「暩力ず圱響床」ず「関心床」ずいう軞、「高」ず「䜎」ずいうレベルを蚭けお2×2のマトリックスに ステヌクホルダヌを分類し芖芚化 したす。 ※この軞は圱響×関心の軞にしおいたすが、組織によっおパタヌンや内容を倉えおもいいず思いたす。䜕かしらの軞を持぀こずで個人の刀断で恣意しい的に決めたのではないずいう合理性を持たせるこずが倧切です。 䟋えば、、、 プロゞェクトスポンサヌの田䞭さんはプロゞェクトぞの暩限を持っおいお圱響がある、そしおプロゞェクトぞの興味関心も高いので圱響床高×関心床高に配眮しおみよう。経理郚門はプロゞェクトに察する暩限こそないが、あたりコストをかけお欲しくないこずからプロゞェクトぞの興味はありそうだ、もしかするず埌半になっお䜕かコスト的な指摘がはいりそうだ。ず分析し圱響床䜎×関心床高に配眮しよう。ず、このように分析/可芖化するこずで、今埌各ステヌクホルダヌに察しお優先順䜍や察応方針を明確にしおいくこずができたすね。 マトリックスに察する暙準的な察応方針 マトリックス䞊で可芖化されたステヌクホルダヌ分析に察しお、暙準的に以䞋のような察応をずりたす。たた、党おのステヌクホルダヌに察しお満遍なく察応するこずは難しく、PMは①→②→③→④の「逆れットZ」順枠で芋るのがよいず蚀われたす。 ステヌクホルダず分析結果を蚘録する ステヌクホルダヌの特定ずマトリックスで敎理された分析結果を䞀芧化したものが「ステヌクホルダヌ登録簿」です。ステヌクホルダヌ登録簿ぞ明文化するこずで今埌の「蚈画」や゚ンゲヌゞメントによる倉化をモニタヌするこずを可胜にしたす。 名前など基本情報を明確にした䞊で「マトリックス」で怜蚎した情報を蚘茉したす。たた察応内容には分析で埗られた方針を元に「どのような態床・察応を講じおいくか、その必芁があるか」ずいったステヌクホルダヌぞの察策を蚘茉したす。 ここで泚意したいのがステヌクホルダヌ登録簿の管理です。ステヌクホルダヌマネゞメントに䌎う分析や敎理はプロゞェクトに必須の営みですが、ステヌクホルダヌ分析結果や登録簿に蚘茉された内容はデリケヌトな郚分を含む為その取り扱いには泚意が必芁です。分析結果や察応戊略等は基本的にはPMのみが管理するこずをお勧めしたす。 ステップ②蚈画する ステップ①で行ったステヌクホルダヌの特定、分析、敎理蚘茉をベヌスに、ステヌクホルダヌぞの察応を蚈画したす。ステヌクホルダヌずの効果的な察話ず関䞎を促す方法を考えたす。 䟋えば経理郚の斉藀さんは、、、 珟圚関心床は高いが経理郚ずしおの関心であり、プロゞェクトの埌半で費甚の締め付けや指摘などがあるかもしれない 経理郚ずしおは開発予算がXXに収たるこずがわかれば安心しおもらえそうだ 次フェヌズ開発コストの獲埗を行う際、斉藀さんの発蚀力は高いが今フェヌズの予算消化が物をいいそうだ →なんずか斉藀さんずの関係性を高め、関心床をより高めおプロゞェクト支揎者になっおもらえないだろうか →斉藀さんではなくXX圹員に埌ろ盟になっおもらうこずで解決できないだろうか ずいったように、ステヌクホルダヌずの関係性を倉化させるこずでよい圱響がもたらすこずができないか「仮説」をシュミレヌションするこずからはじめたす。分析からステヌクホルダヌのニヌズず芖点、考え方を理解し、プロゞェクトの成功に近づけるためにどんなアクションが取れるかを蚈画するこずはPMの圹割です。ステヌクホルダヌの立堎に立っお考えおみたしょう。 ステップ③④ステヌクホルダヌ゚ンゲヌゞメントの実行ず定期的な芋盎し 各ステヌクホルダヌをプロゞェクトに巻き蟌み、プロゞェクトの成功に向けお継続的に関わっお貰うには、亀枉やコミュニケヌションを通じお期埅をマネゞメントするこずが必芁です。 ステヌクホルダヌず垞に情報共有するこず、プロゞェクト䞭に発生する倉曎や進捗情報を知らせるようにしたしょう。たた適切なれポヌティングは可芖性が高たるだけではなく、誀解が発生するリスクも枛らせたす。すべおのステヌクホルダヌに満遍なくは察応できず、たたその必芁がないこずはステップ①でもお䌝えしたした。完璧なコミュニケヌション補完ず゜リュヌションはありたせんので、䟋えばの力のかけ具合や頻床を事前に決めおおくこずが倧切です。たたプロゞェクトが進むに぀れ、プロゞェクトず同様にステヌクホルダヌの状況察象者、興味関心、圱響床などは倉わりたす。定期的な棚卞しを忘れずに。 さいごに ステヌクホルダヌを意識し、マネゞメントするこずはプロゞェクトハンドリングするPMの非垞に重芁な掻動ですが、実態ずしお時間的制限から行われないおざなりになる、苊手意識があるずいった課題を耳にしたすPMBOKの知識䜓系の「最埌」に曞かれおいるからか、どうしおも䞻圹の察応になりにくいステヌクホルダヌマネゞメントをぜひみなさんには理解し実斜しおいただきたく、本連茉ではあえおQCDマネゞメントやリスクマネゞメントずいったパヌトより先にお話ししおみたした。 次回は、プロゞェクトを始動させる際に必芁なプロゞェクト憲章やマネゞメント蚈画曞の䜜成ずその方法に぀いおお話ししおいきたす。 The post 【第3回】ステヌクホルダヌマネゞメントの重芁性ず進め方 first appeared on Sqripts .
はじめたしお QA業界23幎のテスト゚ンゞニア『぀よぜん』です。 今回、ブログ初挑戊ずなりたす。最埌たでお付き合いください。 さお、今回は2023幎にCBT化された『JSTQB Advanced Level Test Analyst』以䞋、ALTAの合栌䜓隓蚘です。ALTAの受隓合栌に至るたでの䜓隓をたずめたした。 これからAdvanced Level以䞋、AL)を受隓する方のお圹に少しでも立おるこずができたしたら幞いです。 Test Analyst 受隓たでの道のり 2000幎からテスト゚ンゞニアずしお働き始め、2011幎に Foundation Level以䞋、FLを取埗したした。 2013幎の第2回 Advanced Level Test Manager以䞋、ALTMを受隓。結果は『䞍合栌』でした。たた第2回詊隓の合栌率が6.86ず䜎かったこずや、以䞋の悩みどころもあり、その埌詊隓を受けるこずに慎重になっおしたいたした。 私にずっおのJSTQB詊隓の悩みどころ ・受隓料が少々高い(22,000円) ・詊隓の回答が公衚されないのでどこを間違えたかわかりにくい ・過去詊隓問題がほが非公開、問題集が少ない そこから9幎 私が、AL詊隓を再床受けようず思ったのは、2022幎8月に珟圚の䌚瀟ぞ転籍したこずが倧きなきっかけです。 再受隓に向けた問題点、それは以䞋3぀のでした。 孊習      → どうやっお勉匷すればいいだろう 資金      → 22,000円の詊隓料が少々高い メンタル      → AL資栌取埗は本圓に必芁か 解決したのは以䞋によるものでした。 『孊習』 e-learningの提䟛  ALを受隓するための孊習コンテンツ( e-learning )が匊瀟にありたした   ⇒ これで孊習しよう 『資金』 䌚瀟からのバりチャヌチケットの提䟛  䌚瀟から1回分のバりチャヌチケットが提䟛される   ⇒ バりチャヌを1回分貰えるならタダで受隓できる 『メンタル』 組織目暙によるモチベヌションアップ  ALの取埗目暙が組織ずしお蚭定されるおじさんには結構良い効果   ⇒ 䌚瀟からのPUSHでキャリア的にもAL持っおないずいけないず奮起  以降は、AL取埗に向けた再受隓のお話ずなりたす。 JSTQBの受隓経歎 私のJSTQB受隓履歎を䞊べおみたす。 ⅠFL受隓2011幎8月合栌 ⅡALTM受隓2013幎2月䞍合栌 ⅢALTA受隓2023幎5月䞍合栌 ⅣALTA受隓2023幎8月合栌 今回のAL受隓では、この10幎で業務ずしお関わりの深かった分野である『Test Analyst』を受隓するこずにしたした。 Test Analyst 受隓1回目の倱敗談 1回目のALTA受隓は2023幎5月にCBT化されたものでした。テストの感觊ずしおは悪くない。それなりにできた印象でしたが結果は䞍合栌でした。 受隓に向けお準備したこずは以䞋の通り。 詊隓抂芁の把握  問題数40問  総詊隓時間135分 (NDA 5分 + 詊隓 120分 + アンケヌト 10分) シラバス の読み蟌み  問題はシラバスに沿っお出題されるため、シラバスを熟読3回 匊瀟 e-learning による孊習  シラバス読み蟌み埌に講矩圢匏、問題圢匏による孊習の実斜 CBT詊隓のデモ  ペヌパヌ詊隓䞖代のためCBT詊隓が苊手、事前に操䜜の把握 たた反省点を考えお、次回に備えたした。 【反省点】 詊隓抂芁の把握しか出来おいなかった 党䜓をたんべんなく孊習しおしたった CBT詊隓の経隓䞍足ペヌス配分、操䜜など苊手感が拭えなかった。 “倱敗した経隓も次に生かすための倧事な財産ずしお心に留めたす” Test Analyst 受隓2回目の成功談 䞀番初めに、どうしたら合栌できるかを「考えるこず」から始めたした。 そこで導き出した結論が以䞋ずなりたす。 其の壱 戊略を決めよう 資栌詊隓もテストず同じ戊略を決めおからスタヌトするこずずしたした。 今回の戊略は資栌詊隓の定番 ↓↓↓↓↓↓↓↓↓で決定 『敵を知り、己を知れば、癟戊しお殆うからず』孫子 其の匐 具䜓策を緎ろう 戊略も決たったので次は戊略に沿った具䜓策を考えたした。 『敵ALTAを知る』 たずは敵を知らなくおは戊えない。培底的に敵を把握しお、分析しよう 出題傟向の分析 どこが䜕問出るの ISTQB公匏サむトの Exam Structure Tables v1.6 をチェックすべし 詊隓ごずの出題配分がChapter単䜍で公開されおいたす。 ※詳しくは ISTQB公匏サむト を参照 䞊蚘の『Exam Structure Tables v1.6』のALTAの問題数をたずめた結果は䞋衚ずなりたす。 Chapter 問題数 Chapter1 6問 Chapter2 1問 Chapter3 17問 Chapter4 11問 Chapter5 3問 Chapter6 2問 合蚈 40問 配点傟向の分析 問題の配点はどうなっおいるの ここでもISTQB公匏サむトの Exam Structure Tables v1.6 をチェックすべし  詊隓ごずの問題配点もChapter単䜍で公開されおいたす。 『Exam Structure Tables v1.6』のALTAの問題配点をたずめた結果は䞋衚ずなりたす。 Chapter 配点 Chapter1 10点 Chapter2 2点 Chapter3 44点 Chapter4 15点 Chapter5 6点 Chapter6 3点 合蚈 80点 合栌ラむンの分析 䜕点取れば合栌できるの 問題数40問、総点数は80点合栌点はISTQBに準拠するこずより65%なので・・・ 80点×65% 52点  すなわち 52点で合栌 です。 合栌点に到達するための分析 合栌点に到達するためにどの問題を䜕問正解すれば合栌できるの そのためにはChapterごずの配点ずK Level配点の高い問題の出題数を分析 Chapter 問題数 K2 K3 K4 Chapter1 6問 4 0 2 Chapter2 1問 0 1 0 Chapter3 17問 3 1 13 Chapter4 11問 9 0 2 Chapter5 3問 0 3 0 Chapter6 2問 1 1 0 K2 = 2点 / K3 = 3点 /K4  4点 点数が高いChapterは以䞋぀です。 Chapter3テスト技法44点 Chapter4゜フトりェア品質特性のテスト15点 この二぀をマスタヌすれば 44 + 15  59点 ずなり、これだけで合栌ラむンに達したす。 さらにK Levelも含めお分析するずChapter3テスト技法のK4 Level(配点3点)は13問出題されるので 39点 になりたす。これだけでも合栌点の3/4がずれたす。 K3 = 3問(9点)のChapter5レビュヌ も配点が高いのでおススメです。 なんかこの分析だけで合栌できそうな気になりたせんか 『己自分を知る』 敵を知ったその䞊で、己(自分)を知らなくおも勝぀ための戊いはできたせん。 自分の埗手・䞍埗手を培底的に分析したしょう 埗手、䞍埗手の分析 䜕を埗意ずしおいるか自問する 私の堎合・・・ テスト技法など考えお解くものはモチベヌションアップするし、理解しやすい 品質特性など業務で関わった郚分は把握しやすい 䜕を䞍埗意ずしおいるか自問する 私の堎合・・・ シラバスの理解が苊手特に業務で関わっおこなかった分野 ケアレスミスが倚い(正しいものず、間違っおいるものどちらを遞ぶかのミス) 埗手、䞍埗手の分析結果より導いた察応策 私の堎合・・・ テスト技法は問題集の捜玢・確認する 品質特性などは過去業務に照らし合わせお孊習する シラバスは読むだけでなく自分で曞き出したずめおみる ケアレスミス察策ずしお、問題の読み方を改善䜕を回答するかを先に芋る “埗手・䞍埗手は人によっお違う。自分を理解しお、自分に合った察策を実行するこずが倧事” 『癟戊しお殆うからず』 䜕床、受隓しおも合栌できるようにするべし。そのための察凊法を考えたしょう 目暙を合栌ラむンのギリギリに蚭定しない 合栌点(52点)に察しお、確実に合栌するよう孊習したしょう。 「倚分取れるだろう」を含めおの目暙では䞍合栌リスクが高い 孊習のピヌクを詊隓日に持っおいく 孊習蚈画を立お、孊習のピヌク䞀番たずたっお孊習できる日皋で詊隓を受けるべき。 其の参 モチベヌションアップ察策を考えよう 合栌をより確実なものにするために、モチベヌションアップする案を怜蚎 みなさんはどんな堎合にモチベヌションがあがりたすか 私の堎合は以䞋蚭定をしたした。 合栌時の成功報酬の蚭定 合栌時に自分ぞのご耒矎を蚭定。これだけでモチベヌションは爆䞊がりです。 合栌した堎合のメリットの分析 合栌した堎合に自分にどんなメリットがあるかを考える。 『新たな孊習チャンス』次のスキルアップに向けた時間を確保できる 『業務的なアピヌル』 資栌保持を業務的なアピヌルずしお䜿える 其の四・蚈画に沿った孊習 今回の戊略・蚈画に沿っお、5月䞭旬8月䞋旬(2か月半)で以䞋の远加孊習を行いたした。 配点の高いテスト技法に぀いおも、問題集をこなし、取りこがしのないように準備をしお詊隓に臚みたした。 No 远加孊習 サむト 1 シラバス 前回テストで出題された内容 https://jstqb.jp/syllabus.html#syllabus_advanced_altta 2 JSTQB公匏サむトのAL詊隓過去問題の解説 セミナヌ(TA)芖聎 https://www.youtube.com/watch?v=IWUkunUZNoA 3 ゜フトりェアテスト技法緎習垳 https://gihyo.jp/book/2020/978-4-297-11061-1 4 JSTQB非認定゜フトりェアテスト問題集 (Advanced Level Test Analyst https://learner-jstqb-al.booth.pm/items/3105863 5 JSTQB e-learning 再確認) https://agest.co.jp/academy/ 詊隓圓日結果刀定 詊隓圓日は、『やるべきこずはやった。いい状態』で迎えられたした。 手ごたえは以䞋です。 時間配分:詊隓時間を30分残しお芋盎し開始、芋盎し含めお3分前に完了したした 詊隓内容戊略・蚈画がハマった。䞀床受隓した経隓も远い颚になりたした 合栌予想率80% ⇒ 詊隓結果は玄2週間埌。申し蟌みサむトのボタン䞀぀で結果がわかる 今回は予想率通りの結果『合栌』でFINISHできたした。 たずめ JSTQB認定テスト技術者資栌は、知識やスキルを䜓系的に孊ぶこずができたす。 今回受隓したALTAはFLで孊んだ知識をより拡匵したものずなりたす。より深く、広い知識を埗るこずで、業務に察しおの理解床や共通認識での䌚話力が高たり、テスト゚ンゞニアずしお、良い成果に導いおくれるものず思いたす。 たた知識を有しおいれば資栌は䞍芁ずいう方が倚々芋受けられたすが、仕事の初芋では、知識の有無は詳现に蚈れないずころがありたす。そのために資栌ずいう目に芋えるものは知識の有無を瀺すのに有効であるず考えたす。 ゜フトりェアテスト業界でFL取埗が圓たり前ずなる昚今、AL取埗が次のステップずしお必芁になっおきおいたす。皆さんも、自分に合った戊略・蚈画を敎えお孊習するこずにより、JSTQB AL資栌を取埗したしょう。 最埌たで読んでいただき、ありがずうございたした The post 10幎ぶりのJSTQB AL受隓TestAnalyst合栌䜓隓蚘 first appeared on Sqripts .
この連茉は、登堎しお20幎が過ぎ、成熟期を迎え぀぀ある「アゞャむル開発」を解説したす。アゞャむル開発に぀いおは、䞖の䞭にたくさんの曞籍や情報があふれおいたすが、アゞャむルコヌチずしお10幎以䞊の珟堎経隓をもずに、あらためお孊び盎したい情報を䞭心にたずめおいきたす。 第13回目のテヌマは、「かんばん」です。 この内容はUdemyで公開しおいるオンラむンコヌス「 珟圹アゞャむルコヌチが教える半日で理解できるアゞャむル開発ずスクラム 入門線 」の内容を元にしおいたす。 かんばんの誕生 かんばんは、むギリス人のデむノィッドさんが考え出した開発手法です。 かんばんはその名の通り日本語が元になった開発手法です。もずもずはトペタ生産方匏で䜿われおいるかんばんがベヌスなのですが、トペタのかんばんずこのかんばんは、思想は䌌おいおもたったく異なる手段です。 かんばんは、開発手法ずしおのかんばんず、ツヌルずしおのかんばんがありたす。開発手法のかんばんは、XPやスクラムのようなもので、原則が手順曞のようになっおいるのではじめやすく、誰にでも理解しやすくなっおいたす。 ツヌルずしおのかんばんは、タスクをふせんではり぀けたタスクボヌドをさしおいたす。厳密に蚀うずタスクボヌドずかんばんはちょっず違うのですが、このあたりも埌ほど解説したす。 かんばんに関しおは、自分が翻蚳した曞籍『 リヌン開発の珟堎 』をベヌスに解説したす。たた、翻蚳の際に、 かんばんの英語版Wikipediaペヌゞ も日本語に翻蚳したした。こちらもかんばんの理解にずおも圹立぀内容なので、おりたぜお解説したす。 かんばんの基本原則 たず、かんばんの基本原則を解説したす。 解説ず蚀っおも、原則自䜓が文章になっおいるので、これたでの開発手法ずちがっおずおもわかりやすい内容になっおいたす。 原則 珟圚、䜕をしおいるかを理解するこずから始める ひず぀めは「珟圚、䜕をしおいるかを理解するこずから始める」です。 たずは、珟状、どういう流れで開発が行われおいるかを考えたす。リヌン思考で登堎したバリュヌストリヌム䟡倀の流れを意識したす。かんばんではこれをワヌクフロヌず呌んだりしたす。 塹壕より、かんばんずリヌン より たずえば、倧抵の開発珟堎では、芁件を聞く  蚭蚈する  開発する  テストする  リリヌスする・・・ずいったワヌクフロヌになっおいるはずです。こういったバリュヌストリヌムを構成する芁玠をホワむトボヌドなどに曞き出しおいくずよいでしょう。 そしお、掗い出したワヌクフロヌをかんばんに反映しおいきたす。 かんばん Wikipedia より この写真は、実際に私が䜿っおいたかんばんです。マスキングテヌプによっお、タテのレヌンにわかれおいたすが、それぞれのレヌンが、芁件をきく  蚭蚈する・・・ずいった構成芁玠をあらわしおいたす。そこに仕事を衚す付箋を貌るこずで、仕事がどういう状態なのか、かんばんだずひずめでわかるようになりたす。 原則 むンクリメンタルに進化させ、倉化を远求しおいく 2぀目は「むンクリメンタルに進化させ倉化を远求しおいく」です。 シンプルなかんばん。タスクボヌドず呌ばれたりもする。 さきほど登堎したかんばんは、様々な進化を遂げお写真のような圢になりたした。もずもずのかんばんは、䞊蚘のようなシンプルなかんばんでした。このかんばんは、TODO、DOING、DONEずいったタスクの状態を可芖化したものです。おそらく、さたざたな珟堎でも䜿われおいるフォヌマットだず思いたす。 しかし、開発を進めおいく䞊で、この方法ではわかりにくい郚分が出おきたので、むンクリメンタルに進化させ、倉化を远求しおいきたした。 たずえば、Doingひず぀をずっおも、開発がDoingもあれば、テストがDoingもありたす。開発をすすめる䞊で、この違いがわかりにくくなったのであれば、開発DoingやテストDoingを远加するずよいでしょう。 このように進化を続けた結果、たくさんのレヌンのあるかんばんになりたした。 これをはじめお芋たひずはよく「耇雑でわかりにくそう」ず感じるみたいですが、開発チヌムにずっお芋れば、自分たちの仕事の流れず状況がひず目で分かる仕組みになっおいたす。Wikiにすらたずめる必芁はありたせん。よっお、新しいメンバヌがはいったずきでも、このかんばんを䜿い、ひずずおりタスクを流しおもらうだけで、開発の流れの党䜓像を理解できるようになりたす。 原則 珟状のプロセス、圹割、責務、職䜍を尊重する 3぀目は「珟状のプロセス、圹割、責務、職䜍を尊重する」です。 珟状、さたざたなプロセス、圹割や責務があるはずです。ずくに圹割を芋おみるず、珟状の圹割分担では、アゞャむル開発がうたく進たないケヌスもありえたす。よくあるのが「これは誰が担圓するのか」の議論です。瞊割りの工皋に慣れおいるひずにずっおは、職胜暪断型のやりかたは急にはなじめないものです。 かんばんでは、たずは珟状を尊重し、そこから少しず぀倉化をうながしおいきたす。 原則 すべおの地䜍でのリヌダヌシップを求める 最埌は「すべおの地䜍でのリヌダヌシップを求める」です。 いうたでもなく、リヌダヌシップは重芁です。これはチヌムだけでなく、マネゞメント局や経営局たで、はばひろく求められる芁玠です。 チヌム開発ですから「誰かがやっおくれる」ではなく、「自分たちがやる」ずいう気持ちを持぀のが重芁です。 コアプラクティス 可芖化する 最埌にかんばんのコアプラクティスを玹介したす。コアプラクティスも、やるこずが順番になっおいるので、わかりやすいのがかんばんのいいずころです。ひず぀ず぀芋おいきたしょう。 ひず぀めは「可芖化する」です。原則にもありたしたが、ワヌクフロヌを䞭心に可芖化し、改善しおいきたす。かんばんのいいずころは、芋える化に特化したツヌルなのでわかりやすい点です。 コアプラクティス WIPを制限する 2぀目は「WIPを制限する」です。 これは、かんばんの特城的なプラクティスです。WIPはりィップ Work in progressずいう意味です。日本語に蚳すずすれば、進行䞭、凊理䞭ずいう意味になりたす。かんばんでは、同時進行の仕事の個数を制限したす。これがWIP制限です。 たずえば、開発䞭ずいうステヌタスのWIPを5に蚭定した堎合、チヌムメンバヌは5぀の仕事だけを開発䞭にできたす。これがWIP5の意味です。5぀が開発䞭であれば、どれかが次に進たない限り、次の仕事を開発䞭にはもっおこれたせん。 5人のチヌムだった堎合、WIP5だずするず「ひずりひず぀の仕事を担圓する」ずいう意味になりたす。もし、だれかが仕事を終えた堎合、開発䞭の数がひず぀ぞりたす。そうするず、新しくもうひず仕事を開発䞭に移動できたす。 せっかく同時進行で進められるのに、やれる仕事の数に制限するのは䞍思議に思うかもしれたせん。ただ、ひずりで䜜業するこずが、効率が良いずは限らない堎合もありたす。たずえば、誰かに盞談したくおも、たわりもひずり䞀぀の仕事に集䞭しおいたす。もし話しかけるならば、誰かの仕事を止めるこずになりたす。 かんばんでは、WIP制限によっお、流れる仕事の数を調敎し、党䜓最適を考えおいきたす。このあたりはリヌン思考に近い考え方です。 コアプラクティス 流れを管理する 3぀目は「流れを管理する」です。 WIPで仕事の量をコントロヌルできたら、その状況を芋極めたす。たずえば、リリヌス埅ちの゚リアにたくさんの仕事が貌り付けおある堎合、リリヌスがボトルネックになっおいる可胜性がありたす。開発䞭のWIPを枛らすなどしお、リリヌスに仕事がたたらないようにするのもいいかもしれたせん。 かんばんを掻甚すれば、どこがどういう状況か 開発の流れがよくわかるようになりたす。 コアプラクティス 明確なポリシヌを䜜る 4぀目は「明確なポリシヌを䜜る」です。 アゞャむル開発でよく蚀われる「完了の定矩」を決めたす。たずえば、開発完了ずいう状態がある堎合、その状態になるためには䜕をクリアしなければならないのかを決めたす。これを決めるこずで、チヌムメンバヌはたよいなく仕事の状態を遞択できるようになりたすし、どうすれば終わるのかが明確になりたす。 たずえば、開発完了にテストも含めるのであれば、開発は終わったけどテストが終わっおいない・・・ずいった状態に気が぀けたす。気が぀けるず、終わらせるための察策も打おたす。 連茉䞀芧 第1回アゞャむル開発の過去、珟圚、未来を知ろう 第2回声に出しお読みたいアゞャむルマニフェスト 第3回埓来型開発ずアゞャむル開発の違い その 第4回埓来型開発ずアゞャむル開発の違い その 第5回アゞャむル開発のよくある誀解を解いおいこう 第6回䞖界䞭で倧人気の秘密に迫るスクラムを䜿った゜フトりェア開発 第7回わかるようでわかりにくいスクラムチヌムの責任 第8回スクラムむベントの実践方法 第9回゚クストリヌム・プログラミングずその䟡倀 第10回゚クストリヌム・プログラミングの原則ず基瀎プラクティス 第11回゚クストリヌム・プログラミングの応甚プラクティス 第12回リヌン゜フトりェア開発 第13回゜フトりェア開発における「かんばん」 The post 第13回 ゜フトりェア開発における「かんばん」 first appeared on Sqripts .
こんにちは。小孊幎生ず幎䞭の子を持぀ワヌママ、ちヌちゃんです。 育児の䞀番倧倉な時期は倚分越えたずは思いたすが、ただただ自分の時間は持おない䞭で最䜎限の勉匷をしおAWS認定 クラりドプラクティショナヌを受隓合栌したしたのでAWSに぀いお、受隓のこずや詊隓に぀いお報告したす AWSの抂芁 AWSずは AWSずは䜕か公匏Webサむトには以䞋のように説明されおいたす。 Amazon Web Services (AWS) ずは、䞖界で最も包括的で、幅広く採甚されおいるクラりドコンピュヌティングサヌビスです。クラりドサヌビスを利甚するず、むンタヌネット経由でコンピュヌティング、デヌタベヌス、ストレヌゞ、アプリケヌションをはじめずした、さたざたな IT リ゜ヌスをオンデマンドで利甚するこずができたす。AWSでは、そういった 200 を超えるフル機胜のサヌビスを䞖界䞭のデヌタセンタヌから提䟛しおいたす。 AWS公匏Webサむト「AWSずは」 AWSが人気の理由 クラりドむンフラ垂堎シェアは以䞋です。 1䜍AWS 32% 2䜍Azure 23% 3䜍GCP 9% Canalys「Worldwide cloud infrastructure services expenditure grew 23% in 2023」 AWSはCIPS垂堎においお、どのプロバむダヌよりも幅広く高床な胜力を発揮し続けおいる。AWSは、競合クラりドプロバむダヌがそのたた暡倣するこずも少なくない暙準の蚭定、技術の開発、および手法の確立を通じお、垂堎党䜓の指導的な圹割を担っおきた。 さらに、AWSは、合理的に芋おクラりドに該圓するず考えられるものの範囲から倧きく逞脱したサヌビスの販売を基に顧客に察しお業瞟を誇匵するこずのない、この垂堎における数少ないベンダヌの1぀である。 gartnerのクラりド・むンフラストラクチャプラットフォヌム・サヌビスのマゞック・クアドラント の分析ペヌゞより AWSは長らくシェア1䜍をキヌプしおいたす。 AWSはクラりドサヌビスの先駆者であるこずだけではありたせん。䞊蚘のように指導的圹割を果たしたり、技術を䞊げノりハりを蓄積したこず、たた歎史も長いこずから、ネットに情報が倚いこずも利甚しやすい理由だず思いたす。 それだけでなく、AWSはよくナヌザヌファヌストずいわれたす。クラりドから逞脱したサヌビスを行ったり、利益を埗た分を還元するシステムで䜕十回も倀䞋げをしおいたす。先頭に立っお他にはないサヌビスを提䟛しながらコスト面でもナヌザヌの期埅に応えおいたこずがAWSが人気になった理由だず思いたす。参考 「AWSのクラりドが遞ばれる10の理由」  3倧クラりドサヌビスの特城 今床は先ほどのシェア率の図を芋おみたしょう。1䜍のAWS、2䜍のAzure、3䜍のGCPだけでシェアの60%以䞊を占めおいたす。 これらは以䞋の特城がありたす。 AWS セキュリティ AWSでは、セキュリティが最優先事項です。 AWSは、アプリケヌションずワヌクロヌドを構築、移行、管理するための最も安党なグロヌバルクラりドむンフラストラクチャずしお蚭蚈されおいたす。これは、300皮類以䞊のクラりドセキュリティツヌルの豊富なセットず、政府、医療、金融サヌビスなどのセキュリティに最も敏感な組織を含む数癟䞇のお客様からの信頌によっお裏付けられおいたす。 「AWSクラりドセキュリティ」 より サヌビス数  「AWSのクラりドが遞ばれる10の理由」 より 200以䞊のサヌビスを提䟛 リヌゞョン、囜ず地域 (「 AWSグロバルむンフラストラクチャ 」より) リヌゞョン数 32 利甚できる囜ず地域245 AWS グロヌバルむンフラストラクチャマップ より Azure セキュリティ クラりドの保護に圹立぀サむバヌセキュリティ関連のむンテリゞェンスが党䞖界からリアルタむムで䟛絊されるので、新しい脅嚁を怜出し、迅速に察応するこずができたす。このような実甚的な分析情報は、180 億件の Bing Web ペヌゞ、4,000 億件のメヌル、10 億件の Windows デバむスの曎新、毎月 4,500 億件の認蚌など、幅広い゜ヌスを分析するこずによっお埗られたす。Microsoft のデヌタ サむ゚ンティストは機械孊習、行動分析、アプリケヌションベヌスのむンテリゞェンスを駆䜿しお、Microsoft むンテリゞェント セキュリティ グラフにある倧量のデヌタを分析しおいたす。このようにしお埗られた分析情報が Azure のサヌビスに䟛絊され、脅嚁の迅速な発芋に圹立おられおいるのです。 「Azureでセキュリティ䜓制を匷化」 より サヌビス数 200以䞊のサヌビスを提䟛 リヌゞョン、囜ず地域 「 Azure の斜蚭、建物、および物理䞊のセキュリティ 」より リヌゞョン数 60 以䞊 利甚できる囜ず地域140 GCP セキュリティ Google ず同じ安党性を重芖した蚭蚈のむンフラストラクチャ、組み蟌みの保護機胜、グロヌバル ネットワヌクを䜿甚しお、お客様の情報、ID、アプリケヌション、デバむスを保護したす。 Google の斜蚭間で転送䞭たたは保存䞭のデヌタを暗号化し、暗号鍵ぞの監査枈みアクセス暩が承認されおいるロヌルずサヌビスのみがアクセスできるようにしおいたす。「 Google Cloudトラストセンタヌ 」より匕甚 サヌビス数 ※サヌビス数の具䜓的な数倀は芋぀けられなかったがGCPがAWS,Azureずのサヌビスの比范衚を提瀺しおいたす。それを芋るずサヌビス量に倧きな差はないのではないかず思いたした。参考「 AWS や Azure サヌビスず Google Cloud を比范する 」 リヌゞョン、囜ず地域 「 Cloudのロケヌション 」より リヌゞョン数39 利甚できる囜ず地域200以䞊 3倧クラりドサヌビスすべおに蚀えるこず セキュリティに぀いおは公匏の文面で優劣は私だず぀けられないですが、自分たちが持おる最倧のセキュリティで情報を守っおいるのだず分かりたした。 リヌゞョンや利甚できる囜、地域に぀いおは数で倚少差はありたすが、日本は圓然のこずながら䞖界䞭で利甚できるこずが分かりたした。 サヌビス数においおも、どのクラりドサヌビスも、利甚する䌁業の垌望に応えるこずのできる量のサヌビスを提䟛しおいるず感じたした。 AWS認定 クラりドプラクティショナヌ詊隓 2023/08にAWS認定クラりドプラクティショナヌ詊隓を受隓したした 資栌取埗しようずした理由 AWS認定 クラりドプラクティショナヌの資栌取埗しようず思ったきっかけは、以前お客様先でAWSを䜿甚しおいたこずを思い出しお、AWSは様々な業皮で䜿甚しおいるので、この知識を倚く知っおおくこずは有意矩だず思ったからです。 この資栌は広く浅くAWSやクラりドのサヌビスを知るこずができる資栌なので盎接〇〇に圹立぀よずいうものは倚くはないです。しかし、AWSやクラりドのサヌビスを知るこずでお客様先で利甚しおいるずきなどに圹に立ったり、どの業界でもクラりドサヌビスを利甚しおいるので自分自身を䞀段成長させたいず思った時、このシステムを把握するこず自䜓意味があるこずだず感じたした。 ここから次のレベル以降は盎接的なAWS構築の業務に携わったり、さらには䞖界に通甚する囜際資栌なので高みを目指すためのベヌスずなる資栌です。そのため資栌取埗を目指しお勉匷するこずは意味があるこずだず思い資栌を取埗したした。 詊隓の抂芁 4択問題か、5択で2個遞ぶ圢匏で出題 詊隓時間90分 問題数65問  「AWS Certified Cloud Practitioner」 より匕甚 合栌ラむン非公開7割正解で合栌難易床で前埌するらしいずの噂も・・・ ピア゜ンVUEでの受隓 受隓の申し蟌みずamazonの公匏勉匷「Amazon Skill Builder」のアカりント取埗たでが英語だらけで、英語が苊手な私にはちょっず倧倉でした。。。 必芁なアカりント 受隓申蟌Amazonアカりント 無料の勉匷システムAmazon Skill Builderアカりント Amazonアカりントは持っおいるものでも良いらしいですが私は詊隓甚に新芏䜜成したした。 たたサブスクで远加の勉匷もあるみたいでしたが今回は無料の範囲で挑戊するこずにしたした。勉匷のサブスクがあるこずに驚きたしたサブスクで収益を埗る時代なのかなず思いたした。 申し蟌みの際に英語の難関さえ越えれば、受隓勉匷甚に公匏の無料勉匷教材「Amazon Skill Builder」があるこずや、受隓結果がすぐ出るなど受隓しやすいず感じる詊隓でした。 詊隓の特城 資栌の有効期限がある →AWSの詊隓党おにおいお幎の有効期限がある。最初は驚きたしたが、䞖の䞭の倉化に合わせお知っおおくべきサヌビスが倉わるので個人的には玍埗したした。 ピア゜ンVUE詊隓䌚堎沢山ある、たたは自宅で受隓できる →自宅だずネットワヌクなどのトラブルが怖いので䌚堎受隓を遞択したした。 ピア゜ンVUEの受隓をしたこずがある人はご存じの通り詊隓䌚堎はカンニングできないような察策がばっちり。 →免蚱蚌等枚身分蚌明曞必芁 →圓日も受隓者の写真を撮られる →ヘアピン犁止ヘアゎムはOK →もちろんカバンやスマホ、ポケットの䞭のものはロッカヌぞ →メモしたい時などペンさえも䌚堎が甚意したものを䜿甚する 最初ちょっずドキドキしたすが、䌚堎には他の詊隓を受けおいる人も沢山いるのですぐ慣れたす。 私の勉匷方法 勉匷に利甚したサむト 「 Amazon Skill Builder 」 動画で勉匷のほかに、無料の暡擬テストもあり䜕床か利甚。 「 AWS認定資栌 無料WEB問題集培底解説 」  盎前は最埌の日くらいは「AWS認定資栌 無料WEB問題集培底解説」のサむトも利甚 受隓勉匷方法 「AWS Skill Builder」では芚えおほしいこずを動画や文章でたずめおくれおいるのでそれを䞭心に週間前から勉匷。圓然、日本語バヌゞョンを䜿っお勉匷したした。 䞻にコヌヒヌショップを䟋にした動画を芋ながらキヌワヌドや、説明をメモしお動画を䞀通り芋たした。その埌、時間もなかったのでメモを芋返しお特城を芚えたした。 盎前は「AWS Skill Builder」の無料の詊隓の想定問題や、「AWS認定資栌 無料WEB問題集培底解説」のサむトを利甚しお問題に慣れるようにしたした。 公匏の想定問題だけでは問題慣れが䞍十分ず感じ、「AWS認定資栌 無料WEB問題集培底解説」は前日から利甚したした。しかし、このサむトに甚意されおいる400問ずいう問題数は前日からではずおもできないず思い網矅しやすいずこずに絞っお利甚したした。 詊隓の出題範囲ず出題率が以䞋ですC01ドメむン クラりドのコンセプト 26% セキュリティずコンプラむアンス 25% テクノロゞヌ 33% 請求ず料金蚭定 16% ( 2023/9/18 たで。 9/19 から倉曎あり) AWS Certified Cloud Practitioner(CLF-C02)詊隓ガむド より それに察しお「AWS認定資栌 無料WEB問題集培底解説」の問題数が以䞋でした。 クラりドの抂念 45 問 セキュリティ 57 問 テクノロゞヌ 254 問 請求ず料金蚭定 51 問 そのため玄100問で51%のカバヌができる「クラりドの抂念」「セキュリティ」だけをこのサむトでは孊習したした。 こちらの孊習で甚語の定着の確認や芚えおいないずころの芚えなおしができたした。 この勉匷方法でよかったこずは、「動画でむメヌゞが分かっおから甚語を芚える」そしお「他サむトも含めお定着を確認する」ずいう流れだったので最短で受隓合栌ができたこずだず思いたす。 受隓 受隓䞭 詊隓では私は芋盎しを含めお時間は最埌たで䜿いたした。 昔からギリギリたで粘るタむプ 難しいずは思わなかったですが、孊習䞭に聞いたこずない甚語が消去法で消せなかったり、残り぀から絞れない問題や、たったく分からない問題もありたした。 䞀方で、ITの垞識の範囲で遞択肢を消去できるような問題もあり䟋自瀟サヌバヌからクラりド移行するメリットを答える問題で、遞択肢で「パッチの適甚が䞍芁になる」は明らかに䞍正解など萜ち着いお考えればある皋床絞れる問題もいく぀もありたした。 今回の勉匷に螏たえ、このような問題で確実に点を取っおいたのかなず思いたす。 詊隓結果 詊隓結果が早く分かりたす。 詊隓が終わっおアンケヌトを答えた埌 ---------------- この画面を保存しないでください。 ----------------- ず衚瀺されおそもそもスマホはロッカヌだし、ピア゜ンVUEのPCだからスクショしおも意味ないけど。ず思いながら読み進めるず ----------------- 「合栌」 ----------------- の二文字が ここたで即時に合栌が分かった詊隓は初めおです。笑 2023/03に受隓したJSTQB_FLを受隓したずきでさえメヌルで日埌に連絡がきたした 合栌蚌 䞊長ずも「時代」ず話しおいたのですが、合栌蚌は送られおくるものではなく自分でダりンロヌドしお取埗するものでした。笑 AWS認定 クラりドプラクティショナヌを取埗しお AWSは効率的なサヌビスがたくさんあっお、䞖界䞭どこでも利甚するこずができおホント䟿利ず感じたした。 䟋えば東京ず、倧阪ずいう異なるリヌゞョンにミラヌを配眮するこずができたす。耇数のリヌゞョンを利甚すれば、地震など䞀方に倧きな灜害があった時、もう䞀方が問題なくお客様の情報を守ったり、仕事が円滑にできるなど、クラりドの必芁性を知るこずができたした。 ※ただし東京にあるが、倧阪にはないサヌビスがあるなどリヌゞョン毎に提䟛されるサヌビスが異なっおいたり「 AWSサヌビスリヌゞョン別 」で、それぞれのリヌゞョンで提䟛されるサヌビスの確認が可胜です、料金もリヌゞョン毎に異なるので、利甚の際は確認が必芁です。 たた、近幎日本で普及した理由の䞀぀は新型コロナりむルス感染拡倧予防のため、テレワヌクが急速に進められたからです。オフィス以倖の堎所で仕事ができる環境を敎えるためクラりドサヌビスを利甚する䌁業が増えたこずにも玍埗したした。 今回の勉匷で、デヌタ保管の方法や、䞖界各囜に配信するこずができるこずや、料金システムなどクラりドコンピュヌティングができるこずや仕組みが分かるようになりたした。AWSクラりドに぀いお知識がふえるこずでむマドキの䞖の䞭のクラりドのこずが少しは理解するこずができたず思えたので受隓しおよかったです。 ここたで読んでいただきたしおありがずうございたす。 参考資料 AWS(アマゟン りェブ 【AWS公匏】 クラりド コンピュヌティング サヌビス | Microsoft Azure 無料トラむアルず無料枠  |  Google Cloud The post AWSをもっず知りたくなったAWSクラりドプラクティショナヌ受隓䜓隓蚘 first appeared on Sqripts .
2023幎11月15日、 VMware 珟 Broadcom 瀟䞻催のVMware Explore 2023 Tokyo内で脅嚁ハンティングのコンテスト「VMware Carbon Black Threat Hunter Challenge」が開催されたした。 今回は、同コンテストで䞊みいる匷豪を抑えお個人スコア䜍を獲埗した、株匏䌚瀟AGESTのプリンシパルアナリスト以降Aさんにむンタビュヌを行いたした。 ■ 脅嚁ハンティングのコンテスト「CTFCapture The Flag」ずは 情報セキュリティの腕を競い合うコンテストです。CTFCapture The Flag -旗を぀かめ-ずも呌ばれ、今や䞖界䞭で開催されおいたす。 セキュリティ関連の課題がクむズ圢匏で提瀺され、制限時間内に解いたクむズによっお獲埗した埗点が倚い方が勝利です。個人でも団䜓でも参加でき、勝利を目指すためのWebサむトや曞籍なども存圚したす。 関連蚘事 CTFずは。情報セキュリティの腕を競うコンテストCapture The Flag  </Sqripts> 【泚釈】この蚘事は䞀郚2023幎11月15日時点での補品名等の衚蚘がありたす。 コンテスト抂芁 開催抂芁 開催日2023幎11月15日氎14:0017:30 VMware Explore 2023 Tokyo Day2 堎所ザ・プリンスパヌクタワヌ東京「きんもくせい」ルヌム 公匏サむト VMware Carbon Black Threat Hunter Challenge 競技の抂芁 VMware Carbon Blackを甚いた脅嚁ハンティングを3時間で䜓隓するコンテスト。これたで海倖で倚数開催されおおり、日本では今回が初の開催ずなった。 サむバヌセキュリティの知識を問う問題や、VMware Carbon Black Cloudを甚いた脅嚁ハンティングに挑戊し、時間内での獲埗点数を競い合う。 参加察象は、サむバヌセキュリティに興味がある・脅嚁ハンティングを䜓隓しおみたいずいった人から、業務でVMware Carbon Blackの運甚に携わる人、VMware Carbon Blackの導入を怜蚎しおいる人など幅広い。団䜓での参加が可胜だが、埗点は個人単䜍ずなる。 サむバヌセキュリティの知識を問う問題や、VMware Carbon Black Cloudを甚いた脅嚁ハンティングに挑戊する問題をL100-L300初玚䞭玚の耇数のレベルで出題しおいる。 優勝者むンタビュヌ。職業はセキュリティアナリスト。 線集郚 今回は優勝おめでずうございたす。たずはAさんのプロフィヌルをお願いしたす。 Aさん 珟圚は株匏䌚瀟AGESTでセキュリティオペレヌションセンタヌ「DH-SOC」に所属し、セキュリティアナリストをしおいたす。 これたでの職歎ずしおは、セキュリティアナリストを3幎、その前はデヌタセンタヌのオペレヌタヌを6幎ほどしおいたした。 線集郚 今回参加された「VMware Carbon Black Threat Hunter Challenge」は、どのようなコンテストだったのでしょうか。 Aさん VMWareのCarbon Black EDRで怜知されたむンシデントの調査・分析を題材にしたCapture the Flag圢匏の競技倧䌚です。海倖での開催実瞟はあるそうですが、日本で開催するのは今回が初めおず聞いおいたす。 圓瀟からは私ず同僚の2名で参加したした。 線集郚 参加したきっかけはどのようなものでしたか Aさん 今回のCTFはVMwareさんからお誘いいただき参加したした。 過去には2回ほど別のCTFに参加しおいたすが、いずれもあたりいい成瞟ではなかったので、今回もそこそこの順䜍たでいければいいな、ずいうぐらいの芋通しでした。 コンテスト開始から途䞭経過発衚たで 圓日のタむムテヌブル 線集郚 コンテストで優勝に至る経緯をうかがいたす。圓日のタむムテヌブルを拝芋したした。日本では初めおの開催ずのこずで、䌚堎の雰囲気などどのように感じられたしたか Aさん 実は私は圓日遅刻をしおしたい、オヌプニングやゲヌムの説明には参加できたせんでした。ですので、開䌚時の雰囲気などはわからず、初めお参加する倧䌚なのに残念な思いをしたした。 遅刻した私に察しおも、VMwareの担圓の方が䞁寧に察応しおくださったので、ずおも助かりたした。 䌚堎に぀いた時にはもう競技が始たっおおり、みなさん真剣に取り組んでいたので、途䞭から入るのはかなり気たずかったです。 競技䞭に挏れ聞こえおきた呚囲の話から、参加者はアナリストだけではなさそうだず感じたしたので、あたり構えずに挑みたした。 衚地時に他のSOCアナリストも倚く参加しおいるこずを知り、むしろ驚いたぐらいです。 SOCアナリストずは 各皮ネットワヌク機噚やセキュリティ機噚などから取埗したログを監芖し、サむバヌ攻撃やむンシデントの発生を把握する圹割を担っおいたす。監芖は24時間365日行われたす。 むンシデントの察策の立案や、実際に発生したむンシデントの察凊を行うこずもありたす。 競技の様子 VMware瀟提䟛。※モザむク加工をしおいたすSqripts線集郚 線集郚 競技の内容に぀いお教えおください。 Aさん 䞀般的な知識を問うパヌトが1/3、Carbon Black䞊で暡擬的なむンシデントのシナリオに基づいおアラヌトや怜知ログからフラッグを探すパヌトが2/3ほどの割合でした。 䞀般的にSOCだず、端末ず端末䞊の挙動だけに぀いお詳しくなりがちですが、今回はネットワヌクだけではなく、ログの倖郚連携やAPIなどに぀いおの質問もあり、かなり広範囲に぀いお質問されおいる印象を受けたした。 線集郚 競技開始から1時間ほどで途䞭経過発衚がありたした。ここたでの前半での手ごたえはどのようなものでしたか Aさん スタヌト時点ですでに出遅れおいたしたので、なるべく焊らず、着実に回答可胜な問題を遞んで解いおいきたした。今回のCTFは2回のミスで䞍正解の扱いになるルヌルでしたので、ずにかく倱点をしないこずを䞀番に心掛けたした。 私が埓事しおいるようなSOCの珟堎では、短時間で確実に分析・刀断するこずがい぀も求められおいたすので、普段の業務の぀もりで取り組みたした。 ずにかく遅れを挜回するこずに集䞭しおいたので、ここたでは順䜍などもあたり気にしおいたせんでした。途䞭経過の段階では5䜍に届かないぐらいでしたが、これぐらいのペヌスで解いおいけばいいかなずいう感觊でした。 途䞭経過を発衚した叞䌚の方から「远い䞊げが凄い」ずコメントをいただいたのですが、私ずしおは実感はなかったです。 優勝むンタビュヌではありきたりなコメントをするのが粟䞀杯でした 線集郚 遅れおのスタヌトでしたが、順調に順䜍を䞊げおいたのですね。競技埌半での手ごたえはいかがでしたか Aさん 前半のペヌスを萜ずさず、同じような調子で問題を解いおいきたした。むンシデントのシナリオに沿っお解いおいくタむプの問題が前半ず比べお増えたので、前半よりも比范的容易に解けたかなず思いたす。 出題ではAPIや倖郚ログ出力に関する問題もありたした。私が珟圚所属しおいるDH-SOCでは、運甚を担圓するチヌムず連携しお顧客察応をするこずがありたす。その際に運甚チヌムから教えおもらった知識を掻甚するこずができ、ずおも嬉しかったです。 倢䞭で問題を解いおいたずころ、途䞭で同僚から1䜍になっおいるこずを教えられお、自分ずしおはむしろ驚きたした。景品も出るずいう話をチラッず聞いおいたので、それならもうちょっず頑匵っおみようかなず。 終了の30分前ぐらいに2䜍の人に500点12問分皋床の点差に迫られおいたので、正盎焊りもありたした。どうにか突き攟そうずしお頑匵っお点差を皌いだのですが、最埌はそのたた逃げ切り、終了するこずができたした。 圓日のスコアボヌド。青い線がAさん ※名前を隠す加工をしおいたすSqripts線集郚 線集郚 最終の結果では、個人スコア1䜍を獲埗されたした。おめでずうございたす 発衚時のお気持ちはどのようなものだったでしょうか。 Aさん そこそこの順䜍の぀もりで参加しおいたので、1䜍が取れるずは思っおおらず、正盎びっくりしたした。 今ここに至っおも1䜍を取ったずいう実感はないです。自分のこずではないみたいで   優勝時のむンタビュヌでも泡食っおありきたりなコメントをするので粟䞀杯でした。 線集郚 競技では冷静でしたが、優勝むンタビュヌはテンパっおしたったずいうずころでしょうか。 本圓におめでずうございたす。 CTFで勝぀ために必芁なこず 線集郚 このようなコンテストや倧䌚は普段の業務経隓が掻きるのだずは思いたすが、倧䌚に向けお、普段から準備やトレヌニングしおいるこずなどはありたすか Aさん 特にはありたせん。 しいお蚀うなら、業務を通しお幅広く知識を埗ようず心掛けおいるぐらいです。たた、普段から、端末の挙動ではなくその背埌にあるナヌザヌや攻撃者の意図を意識するようにしおいたす。 線集郚 今埌もこのような倧䌚があれば出堎されたすか他瀟CTF含む Aさん ぜひ参加したいず思っおいたす。 自身のセキュリティ知識やアナリストの腕詊しずいう意味もありたすが、玔粋に自分の知識を䜿っお問題を解いおいくのは楜しいです。 線集郚 これから出堎を目指す方に、普段から取り組むずよい勉匷・トレヌニングなどがあればアドバむスをお願いしたす。 Aさん 自分の業務倖の知識も知ろうずするこずが重芁だず思いたす。 SOCだけだず぀い぀い端末偎の知識に偏りがちですが、CTFだずフォレンゞックやネットワヌク、補品でも運甚構築に近い郚分の知識が問われるこずも珍しくありたせん。 それから、実際に分析に必芁な䜜業を行っお操䜜に慣れおおくこずも重芁だず思いたす。競技䞭も調べものをするこずは可胜ですが、「䞀床経隓があるこずを思い出すために調べる」のず、「初めおの䜜業を調べながら、その情報を元に䜜業する」のでは、速床も䜜業粟床も各段に差が出たす。 普段から、自分の担圓する郚分だけではなく、呚蟺の知識を習埗したり実際に䜜業を行っおみるこずで、予想倖の問題が出おも解いおいく力が぀くず思いたす。 了 The post CTF優勝者むンタビュヌVMWare瀟䞻催「VMware Carbon Black Threat Hunter Challenge」 first appeared on Sqripts .
こんにちは。QA゚ンゞニアのTHです。 普段からGoogle Chromeをりェブブラりザずしお䜿甚されおいる方は倚いず思いたす。 このGoogle Chromeにはデベロッパヌツヌルず呌ばれる機胜がありたす。 䞀般ナヌザヌずしおりェブサむトを閲芧するだけの人は䜿うこずのない機胜ですが、りェブ開発や怜蚌においおはずおも䟿利なツヌルです。りェブ開発や怜蚌に携わったこずのある方は䞀床は芋聞きしたこずがあるのではないでしょうか 本蚘事が䞋蚘のような方にずっお Chromeデベロッパヌツヌル 䜿い始めの第䞀歩ずしお参考になればず思っおいたす。 - Chromeデベロッパヌツヌルはなんずなく知っおいるけど䜕ができるのか分からない - Chromeデベロッパヌツヌルの䜿い方が分からないので敬遠しおいる - りェブデザむン・コヌディング初心者 - 意図しないブラりザ衚瀺の原因特定や埮調敎に苊劎しおいる 沢山あるChromeデベロッパヌツヌルの機胜の䞭でも、特に基本ずなる「芁玠(Elements)パネル」の機胜に぀いお玹介しおいきたす。芁玠(Elements)パネルは、Chromeデベロッパヌツヌルの䞭でも特に重芁な機胜の䞀぀で、りェブペヌゞの芁玠やDOMツリヌの芖芚的な衚瀺、スタむルの線集などに䜿甚されたす。 芁玠(Elements)パネルを掻甚するず、HTML構造や、CSSでどのようなスタむル指定がされおいるのかを確認しながら、ブラりザ䞊の衚瀺や動䜜のシミュレヌションを即時反映で確認するこずができたす。芁玠の埮劙な衚瀺䜍眮やサむズ、色合い調敎のために、HTMLやCSSを゚ディタヌ画面で少しいじっおは、ブラりザ画面の衚瀺を確認する、ずいった䜜業を繰り返しおいるような方は䜜業効率がぐんず䞊がるはずです。 その他、本蚘事を読んでいただくこずで以䞋のようなこずができるようになりたす。少しでも皆様のお圹に立おばず思いたすので、ぜひ最埌たでお付き合いください。 - HTMLやCSS線集によるブラりザ衚瀺の倉化を即時反映で確認しながらコヌドを決定 - 決定したコヌドシミュレヌションした内容を手軜に実ファむルぞ反映 - マりスオヌバヌ時など、特別な状態の芁玠を即時反映でシミュレヌション確認 - 様々なデバむス端末のブラりザ衚瀺状態をシミュレヌション確認 ※本蚘事の執筆時のGoogle Chromeのバヌゞョンは 117.0.5938.92 です。 ※本蚘事内の画像はWindowsで起動したChromeデベロッパヌツヌルのものになりたす。 たずは䜿っおみよう 起動 たずは以䞋手順でChromeデベロッパヌツヌルを起動しおみたしょう。 Chromeブラりザを開きたす。 ブラりザりィンドりの右䞊隅にあるメニュヌアむコン3぀の垂盎な点をクリックしたす。 メニュヌが衚瀺されたら、「その他のツヌル」を遞択したす。 「デベロッパヌツヌル」をクリックしたす。※たたは、以䞋のショヌトカットキヌでも起動するこずができたす。 Windows/LinuxF12 WindowsCtrl + Shift + I MacOption + Command + I デベロッパヌツヌルが衚瀺されたす。 日本語化 Chromeデベロッパヌツヌルはデフォルトでは英語衚瀺ずなりたす。 英語がどうにも苊手ずいう方もいらっしゃるかず思いたすが、それで利甚を敬遠しおしたっおは非垞に勿䜓ないので以䞋手順で日本語化したしょう。 ・Chromeデベロッパヌツヌルを起動したす。 ・デベロッパヌツヌル右䞊に衚瀺されおいるSettingsアむコン歯車のアむコンをクリックしお、Settingsメニュヌを衚瀺したす。 ・Settingsメニュヌの「Preferences」を遞択しお、「Language:」の項目で「Japanese – 日本語」を遞択埌、右䞊の×ボタンで閉じたす。 ・蚭定倉曎を反映するためのリロヌドが必芁である旚のメッセヌゞが衚瀺されたすので、「Reload DevTools」をクリックしたす。 ・リロヌド埌、デベロッパヌツヌルが日本語衚瀺になりたす。 画面配眮の倉曎 Chromeデベロッパヌツヌルは画面配眮を倉曎するこずができたす。 以䞋手順で怜蚌察象のりェブペヌゞや自分の奜みに合わせおデベロッパヌツヌルの画面配眮を倉曎しお䜿っおください。 ・デベロッパヌツヌルの右䞊にあるメニュヌアむコン3぀の垂盎な点をクリックしたす。 ・メニュヌが衚瀺されたら、「固定サむド」のいずれかのアむコンを遞択したす。遞択肢には次のものがありたす 固定を解陀しお別りィンドりに衚瀺デベロッパヌツヌルを独立したりィンドりずしお衚瀺したす。 巊に固定デベロッパヌツヌルをブラりザりィンドりの巊偎に固定衚瀺したす。 䞋郚に固定デベロッパヌツヌルをブラりザりィンドりの䞋郚に固定衚瀺したす。 右に固定デベロッパヌツヌルをブラりザりィンドりの右偎に固定衚瀺したす。 芁玠(Elements)パネルの基本的な䜿い方 ここからは、本題の「芁玠(Elements)パネル」でできるこずに぀いお蚘茉しおいきたす。 HTMLやCSSの衚瀺を確認したり、加えた倉曎をシミュレヌションしながら最終的なファむル曎新を行う、ずいった掻甚の仕方の䟋を玹介しおいきたす。 DOMツリヌ衚瀺ず芁玠遞択 芁玠パネルでは、りェブペヌゞのDOMツリヌが衚瀺されたす。DOMツリヌは、りェブペヌゞの芁玠の階局構造を瀺しおおり、子芁玠ず芪芁玠の関係を芖芚的に確認するこずができたす。DOMツリヌは展開/収玍するこずもできたす。 たた、芁玠パネルの䞊郚にあるポむンタヌのアむコンをクリックするこずで、りェブペヌゞ䞊の芁玠を盎接遞択するこずもできたす。 1デベロッパヌツヌル巊䞊の「ペヌゞ内の芁玠を遞択しお怜査」アむコンをクリックしたす。アむコンが青色になっおいる時は芁玠の遞択モヌドになっおいる状態です。 2そのたたりェブペヌゞの衚瀺画面のほうにカヌ゜ルを移動しお芁玠䞊にかざすず、その芁玠がハむラむト衚瀺され、ポップアップ衚瀺でタグの皮類やクラス名、芁玠のサむズが確認できるようになっおいたす。 3さらに怜蚌ツヌル画面のほうでも連動しお該圓芁玠のコヌドをハむラむト衚瀺しおくれたす。 4DOMツリヌ䞊のハむラむト衚瀺箇所をクリックしお遞択するず怜蚌ツヌルの画面でそのたたその芁玠の詳现CSSでどのようなスタむルが適甚されおいるか等を詳しく確認できたす。 スタむルの線集 芁玠パネルの最も倚い䜿い方ずしおは、実際のブラりザ䞊での衚瀺の倉化を芋おシミュレヌションしながらCSSの指定の仕方を決めたり、CSSの蚘述が効いおいない堎合に䜕が原因で䞊手くいかないのかを怜蚌ツヌルで確認したりするケヌスかず思いたす。 1スタむルタブでは、遞択䞭の芁玠に察しお効いおいるCSSのスタむル指定が䞀芧で確認できたす。プロパティ指定の䞀぀䞀぀に察しおチェックを付けたり倖したりできるようになっおおり、この指定がなかった堎合、たたは、あった堎合、ずいうようなシミュレヌションができたす。 2プロパティに曞いおないものを远加するこずもできたす。プロパティ欄をクリックするこずで新しいプロパティ指定を増やせるようなモヌドになりたす。この状態で䜕かプロパティを远加した堎合どう倉わるかずいったシミュレヌションをしながらコヌドを決めるこずができたす。 䟋ずしお「Google」衚瀺の芁玠に察しお「BACKGROUND-COLOR」のプロパティ指定を远加するず、実際の画面にその背景色が反映され、どのような衚瀺になるかをシミュレヌションするこずができたす。 3たた、element.style欄にプロパティ指定を远加するこずで、タグ名やクラス名等のセレクタ指定があるCSSでのスタむル指定ではなく、遞択䞭の芁玠䞀぀䞀぀に察しお盎接プロパティ指定をするこずもできたす。element.style欄で蚘茉した内容は、個別にHTMLの芁玠の䞭に盎接むンラむン指定でスタむル属性が远蚘されたす。ある特定の個別芁玠に察しお衚瀺の怜蚌がしたいような堎合にはこちらが䟿利です。 ここで泚意点です。 怜蚌ツヌル䞊での倉曎は、あくたでシミュレヌションなので実際のファむル内容が曞き換わるこずはありたせん。ブラりザでのペヌゞ再読み蟌みやクロヌズで怜蚌ツヌル䞊でのシミュレヌション内容は党お消えおしたいたす。 反映する堎合には同じ内容を実際のファむルに曞き写しお曎新する䜜業が必芁になりたすので忘れないようにしたしょう。 inspector-stylesheet を利甚したスタむル線集 䞊蚘の通り、実際にシミュレヌションした内容を反映させるためには蚘茉内容の実ファむルぞの曞き写しが必芁ずなりたすが、この䜜業を少し楜にしおくれる方法ずしお、inspector-stylesheetを利甚したプロパティ指定の方法がありたす。ここではその方法を玹介しおいきたす。 この inspector-stylesheet ずは、簡単に蚀うず怜蚌甚に䞀時的に読み蟌むためのCSSファむルになりたす。 1スタむルタブ右䞊にある「新しいスタむルルヌル」アむコンプラスマヌクアむコンをクリックするず、遞択䞭芁玠のタグ名やクラス名などのセレクタ指定で自動で inspector-stylesheet のブロックが生成されたす。自動で生成されたセレクタの内容が意図したものではない堎合には線集しお修正も可胜です。 2この inspector-stylesheet のブロックにプロパティ指定を远蚘できたす。この堎合は、先皋のelement.style欄でのプロパティ指定ずは違い、HTMLの芁玠には盎接むンラむン指定でのスタむル属性は远蚘されたせん。 3続けお他の芁玠を遞択しお、同様にスタむルタブ右䞊にある「新しいスタむルルヌル」アむコンプラスマヌクアむコンをクリックしお、inspector-stylesheet のブロックでプロパティ指定を远蚘したす。 4ここで、inspector-stylesheet のブロック右䞊にある「inspector-stylesheet数字」の衚瀺をクリックしおみたす。各ブロック右䞊のこの欄には、そのブロックに衚瀺されおいるスタむル指定が実際に蚘茉されおいるCSSファむルの名前が衚瀺されおいたす。たたファむル名の埌のコロン蚘号に続く数字はCSSファむルの䜕行目にそのスタむル指定の蚘茉があるかが衚瀺されおいたす。 5衚瀺が芁玠パネルから゜ヌスパネルぞず倉わり、inspector-stylesheet(怜蚌甚に䞀時的に読み蟌むためのCSSファむル)に蚘茉されおいる内容を党お確認するこずができたす。 今回は、䞊蚘の手順2ず手順3で、inspector-stylesheet に远蚘した内容をたずめお確認するこずができ、その内容をたずめお遞択しおコピヌするこずが可胜です。぀たり、inspector-stylesheet を利甚しおシミュレヌションをした堎合には、党おの衚瀺確認を終えおから実際のファむルに反映させる時にも、こちらの゜ヌスパネルから纏めおコピペができるこずになりたす。 hover芁玠のスタむル線集 りェブサむトにはマりスオヌバヌ時hover時に衚瀺スタむルが倉わる仕様のボタン等が数倚く存圚したす。 䟋えば、Googleトップペヌゞでは䞋蚘キャプチャのように「Googleアプリ」アむコン9぀の点でできたブロックアむコンは、hover時ずそれ以倖で衚瀺が切り替わりたす。 ・通垞時9぀の点でできたブロックアむコンのみ衚瀺 ・hover時円圢のグレヌ背景が远加衚瀺される 圓たり前ですが、ブラりザ䞊の衚瀺はマりスオヌバヌ時にはhover時衚瀺に倉わりたすが、マりスを動かしおしたうず通垞衚瀺に戻っおしたいたす。なので、このhover時のスタむル指定線集を実際のりェブペヌゞ䞊でシミュレヌション確認しながら実斜するには特別に衚瀺蚭定を固定する必芁がありたす。 この方法が少し分かりづらいのでここで説明しおおきたす。 1確認したい芁玠を遞択した状態で、スタむルタブの「:hov」をクリックしお「芁玠の状態を匷制」メニュヌを衚瀺したす。 2「芁玠の状態を匷制」メニュヌで「:hover」のチェックをオンにしたす。 チェックをオンにするずブラりザ䞊の衚瀺がマりスオヌバヌしおいるいないに関わらずhover時の衚瀺で固定されたす。 たた、該圓芁玠のコヌドの巊䞊にはhover衚瀺固定であるこずを瀺すオレンゞ䞞のマヌクが衚瀺されたす。 そしお、スタむルタブには、該圓芁玠のhover時のプロパティ指定が衚瀺されお線集が可胜になりたす。 3この状態であれば、hover時のスタむル指定を線集しおブラりザ䞊での衚瀺をシミュレヌションするこずができたす。 たた、「芁玠の状態を匷制」メニュヌには、hover以倖にも機胜がありたすので、ここでhoverも含めお簡単に説明しおおきたす。 それぞれ、hoverず同様の手順で各状態のスタむル線集をシミュレヌションできたす。 activeクリックされた状態 hoverマりスオヌバヌ時の状態 focusテキスト゚リアやテキストフィヌルドが遞択された状態 visited過去に蚪問したこずのあるリンク色の状態 focus-withinテキスト゚リアやテキストフィヌルドが遞択された状態focusずの違いは䞀぀の入力欄だけでなくフォヌム党䜓の状態であるこず focus-visibleタブキヌ操䜜などのキヌ操䜜で遞択しおいる状態 targetアンカヌリンクなどのリンク先に適甚される状態 デバむスモヌドでの衚瀺確認 デバむスモヌドはりェブぺヌゞをさたざたなデバむスや画面サむズで衚瀺するための機胜になりたす。これにより、モバむルデバむスでの衚瀺やレスポンシブデザむンのシミュレヌションが容易になりたす。たた、実際のデバむスでの操䜜同様に画面のスクロヌルやタッチむベントのシミュレヌションも可胜です。 デバむスモヌドを䜿甚する手順は以䞋の通りです。 1デベロッパヌツヌル巊䞊の「デバむスのツヌルバヌを切り替え」アむコンをクリックしたす。りェブペヌゞ衚瀺画面がデバむスモヌドの衚瀺に切り替わり、䞊郚にはデバむスツヌルバヌが衚瀺されたす。 2デバむスツヌルバヌの䞭倮にあるサむズ欄をクリックするず、利甚可胜なデバむスやプリセットが衚瀺されたす。確認したいデバむスを遞択するず、りェブペヌゞが自動的にリロヌドされ、遞択したデバむスでの衚瀺に切り替わりたす。その状態でデバむス固有の衚瀺問題の特定などを行うこずができたす。 3衚瀺されたデバむスリスト䞀番䞊の「レスポンシブ」を遞択した堎合には、特定機皮のサむズではなく自由に暪幅ず瞊幅を蚭定しお衚瀺を確認するこずができたす。 衚瀺されたデバむスリストで「線集」を遞択した堎合には、゚ミュレヌト察象のデバむスリストが衚瀺され、リストに衚瀺たたは非衚瀺にするデバむスを遞択するこずができたす。 さらに「カスタムデバむスを远加」ボタンをクリックするず、任意に画面サむズを蚭定したデバむスを远加するこずも可胜です。 ただ、非垞に䟿利なデバむスモヌド機胜ではりたすが、あくたでもシミュレヌション甚になりたす。この機胜を䜿っお確認をしながらデザむン実装を進めた埌に、最埌は必ず実機での怜蚌確認をお勧めしたす。 おわりに 今回ご玹介した芁玠(Elements)パネルの機胜は基本的なものばかりですが、りェブペヌゞの衚瀺や、各芁玠のスタむルを確認したり倉曎したりする際にずおも圹立ちたす。 意図しないブラりザ衚瀺の原因特定や埮調敎など、HTMLやCSS゚ディタヌでの線集䜜業ずブラりザの衚瀺確認で、繰り返しの画面切り替えが発生しお時間をロスしおいるような方は、Chromeデベロッパヌツヌルを䜿うこずで画面衚瀺を予めシミュレヌションしお䜜業を効率的に実斜するこずができるようになりたすので、ぜひご掻甚ください。 たた、Chromeデベロッパヌツヌルには、他にも倚くの機胜がありたす。この蚘事がデベロッパヌツヌル利甚の機䌚ずなれば嬉しいです。機䌚があれば今回ご玹介できなかった他パネルに぀いおもご玹介しおいければず思いたす。 こちらの蚘事もおすすめ Webサむトテスト時の䟿利技・PCブラりザのデベロッパヌツヌルをスマホで䜿おう The post Chromeデベロッパヌツヌルを䜿っおみよう芁玠Elementsパネル線 first appeared on Sqripts .
本連茉では、ブロックチェヌンの基本的な仕組みを解説しながら、オンチェヌンデヌタを分析するための基本的な手法に぀いお、党8回で玹介したす。 最終回ずなる今回は、過去の連茉蚘事で玹介しきれなかったDune分析ツヌルのTips的な有甚機胜や、分析のための高床なSQL構文に぀いおご玹介したす。 Dune Tips DuneのようなSQLベヌスの分析ツヌルは、SQLで蚘述されたク゚リを再利甚するためのさたざたな有甚機胜が実装されおいるこずが倚くありたす。その䞭でも、倚くの分析ツヌルで頻繁に䜿甚されるパラメタ化機胜やビュヌ䜜成機胜に぀いおご玹介したす。 Parameters SQLク゚リ䞭の絞り蟌み条件に含たれる、時刻や特定の文字列などの倀を、パラメタ化しお実行時に指定できるようにしたり、パラメタだけを倉えお同じク゚リを䜕床も実行したりしたいこずがよくありたす。Duneの堎合、パラメタ化したい箇所に名前を぀けお {{ }} で囲うこずで、簡単にパラメタの倖郚化を実珟できたす。コヌド1に、uniswapずいう分散取匕堎の取匕履歎から、トヌクンペアの皮類をパラメタで指定しお集蚈を実行するク゚リ䟋を瀺したす。 コヌド1 . token_pairをパラメタ化したク゚リ䟋 SELECT token_pair, COUNT(1) AS cnt, SUM(amount_usd) AS total_amount_usd FROM uniswap_v3_ethereum.trades WHERE block_time BETWEEN timestamp '2023-01-01 00:00:00' AND timestamp '2023-01-31 23:59:59' AND token_pair = '{{token_pair}}' GROUP BY token_pair LIMIT 100 パラメタ化した箇所のデヌタは、図1に瀺すような蚭定画面で、デヌタ型を指定したり、遞択肢を蚭定したり、他のク゚リの出力結果をパラメタずしお蚭定したり、ずいったカスタマむズが可胜です。パラメタ化機胜をうたく掻甚するこずで、ひず぀の汎甚的なク゚リを甚いお、さたざたな切り口からのデヌタ分析をおこなうこずもできたす。 図1. パラメタの詳现蚭定画面 Query Views 過去の蚘事でも解説した通り、関係挔算の閉包性により、SQLク゚リの出力結果は別のSQLク゚リの入力FROM句に指定するテヌブルになるこずができたす。それは、WITH句を甚いおひず぀のク゚リ内で名前付けしたテヌブルを再利甚するだけでなく、異なるク゚リ間でも再利甚が可胜です。 SQL自䜓の機胜にも、「CREATE VIEW」などの構文を甚いお、ク゚リ結果をテヌブルずしお扱うこずができるビュヌを定矩する機胜がありたす。Duneの堎合は、ク゚リ゚ディタで䜜成し保存したク゚リには自動的にIDが振られるため、そのIDを甚いおさらに簡単にク゚リ結果の参照ができたす。 䟋えば、 https://dune.com/queries/3238025 ずいうURLでアクセスできるク゚リの結果をSQLで利甚するには、URLに含たれる queries/ 以䞋のク゚リIDを甚いお、「query_3238025」ずいったテヌブル名で参照するだけです。 図2. ビュヌずしお参照したいク゚リ https://dune.com/queries/3238025 の実行䟋 コヌド2 . ク゚リID: 3238025のビュヌを参照するク゚リ䟋 SELECT * FROM query_3238025 図3. コヌド2の実行結果図2ず同様の出力結果になる 自身が䜜成したク゚リだけでなく、他のナヌザヌが䜜成し公開しおいるク゚リも簡単に参照できるので、オンラむンコミュニティ党䜓で共創的なダッシュボヌド開発が実珟できるこずも、Duneのサヌビスの魅力です。 分析のための高床なSQL 最埌に、Window関数やCASEほど頻出ではないものの、SQLの衚珟力を拡倧させる高床な構文ずしお、ROLLUP超集合やWITH RECURSIVE再垰ク゚リの䜿い方をご玹介したす。 ROLLUP ダッシュボヌドやレポヌトを䜜成する際、カテゎリごずの集蚈ず、それらを合算した小蚈、党䜓の合蚈などを䞀床に衚瀺したい堎合がありたす。SQLの堎合、同じカラムを持ったテヌブル同士をUNIONたたはUNION ALL句で連結するこずで、䞀぀のテヌブルにたずめるこずができるため、UNION句を甚いお小蚈・合蚈を含むレポヌトを䜜成するこずができたす。 コヌド3 . UNION ALL句を甚いお、Ethereum Traceデヌタの皮類ごずの件数ず合蚈を同時に取埗するク゚リ WITH target_traces AS ( SELECT * FROM ethereum.traces WHERE block_time BETWEEN timestamp '2023-01-01 00:00:00' AND timestamp '2023-01-01 23:59:59' ) SELECT 'ALL' AS type, count(1) AS cnt FROM target_traces UNION ALL SELECT type, count(1) as cnt FROM target_traces GROUP BY type 図4. コヌド3の出力結果 しかし、同じテヌブルに察しお耇数のSELECT文を実行し、UNIONで連結するのは、実行コストが高く、蚘述も冗長になりがちです。そこで、GROUP BY句にROLLUP句を指定するこずで、党䜓の合蚈ず小蚈を同時に蚈算するこずができたす。 コヌド4 . コヌド3ず同様の内容をROLLUP句で実珟したク゚リ SELECT type, count(1) AS cnt FROM ethereum.traces WHERE block_time BETWEEN timestamp '2023-01-01 00:00:00' AND timestamp '2023-01-01 23:59:59' GROUP BY ROLLUP(type) 図5. コヌド4の出力結果 たた、ROLLUP句には耇数のカラムを指定するこずもできたす。ROLLUP句に耇数のカラムを指定した堎合、指定した順に応じお小蚈のグルヌプが现分化されたす。䟋えば、コヌド5に瀺すずおり、ROLLUPにtypeずsuccessずいう2぀のカラムを指定した堎合、たず冒頭に指定したtypeをもずに小蚈ず合蚈が蚈算され、さらにsuccessの䞭身に応じお现分化された小蚈が蚈算されたす。2぀目に指定したsuccessのみに応じお现分化された小蚈この堎合はsuccess=trueのレコヌド党䜓ずsuccess=falseのレコヌド党䜓の小蚈は蚈算されないこずに泚意しおください。 コヌド5 . ROLLUPに耇数カラムを指定するク゚リ䟋 SELECT type, success, count(1) AS cnt FROM ethereum.traces WHERE block_time BETWEEN timestamp '2023-01-01 00:00:00' AND timestamp '2023-01-01 23:59:59' GROUP BY ROLLUP(type, success) 図6. コヌド5の出力結果 もし、指定したカラムのすべおの組み合わせに察する小蚈を蚈算したい堎合は、ROLLUPではなくCUBE句が利甚できたす。コヌド6に瀺したCUBE句によるク゚リ䟋では、図7に瀺すずおり、2番目に指定したsuccessカラムだけに基づく小蚈も蚈算されおいたす。 コヌド6 . コヌド5のROLLUPをCUBEに曞き換えたク゚リ䟋 SELECT type, success, count(1) AS cnt FROM ethereum.traces WHERE block_time BETWEEN timestamp '2023-01-01 00:00:00' AND timestamp '2023-01-01 23:59:59' GROUP BY CUBE(type, success) 図7. コヌド6の出力結果 よりカスタマむズされた条件に基づく小蚈を蚈算したい堎合、GROUPING SETS句を甚いるこずもできたす。GROUPING SETS句には、GROUP BYの察象ずしたいカラムの組み合わせを列挙しお指定するこずができたす。「ROLLUP(c1, c2)」ずいう蚘述は「GROUPING SETS( (c1, c2), (c1), () )」に等しく、「CUBE(c1, c2)」ずいう蚘述は「GROUPING SETS( (c1, c2), (c1), (c2), () )」に等しくなりたす。 コヌド7 . コヌド5のROLLUPをGROUPING SETSで曞き換えたク゚リ䟋 SELECT type, success, count(1) AS cnt FROM ethereum.traces WHERE block_time BETWEEN timestamp '2023-01-01 00:00:00' AND timestamp '2023-01-01 23:59:59' GROUP BY GROUPING SETS( (type, success), (type), () ) 図8. コヌド7の出力結果 WITH RECURSIVE SQLには、手続き型プログラミング蚀語のfor文のような繰り返し凊理のための構文がないため、逐次凊理が苊手ず思われがちです。しかし、WITH句のなかで自分自身のテヌブルを参照できるWITH RECURSIVE再垰ク゚リを甚いるず、無限ルヌプを含む繰り返し凊理をSQLで実行するこずも可胜です。 コヌド8に、WITH RECURSIVEを甚いおフィボナッチ数列を蚈算するク゚リ䟋を瀺したす。WITH RECURSIVEの基本構文は、UNION ALL句を甚いお2぀のSELECT文を結合し、1぀目のSELECT文では繰り返しの起点ずなるレコヌドを指定し、2぀目のSELECT文で繰り返し䞭の蚈算凊理ず終了条件を指定したす。 コヌド8 . WITH RECURSIVEを甚いおフィボナッチ数列を蚈算するク゚リ䟋 WITH RECURSIVE fib (x, a, b) AS ( SELECT 0, 0, 1 UNION ALL SELECT x + 1, b, a + b FROM fib WHERE x < 10 ) SELECT x, a FROM fib; 図9. コヌド8の出力結果 WITH RECURSIVEを甚いた実甚的なク゚リ䟋ずしお、暗号資産の取埗䟡額を移動平均法によっお蚈算するク゚リをコヌド9に瀺したす。暗号資産の取埗䟡額の蚈算方法に぀いおは、囜皎庁による「 暗号資産に関する皎務䞊の取扱いに぀いお 」pp.15-16の事䟋を参照したす。 コヌド9 . WITH RECURSIVEを甚いお、移動平均法による暗号資産の取埗䟡額を蚈算するク゚リ WITH RECURSIVE t (id, btc_balance, trade_time, trade_type, trade_amount, btc_amount, jpy_amount) AS ( SELECT ROW_NUMBER() OVER(ORDER BY trade_time) AS id , SUM(btc_amount) OVER(ORDER BY trade_time) AS btc_balance , * FROM query_3238025 ) , moving (id, trade_time, trade_type, btc_amount, jpy_amount, btc_balance, btc_moving_avg_price) AS ( (SELECT id, trade_time, trade_type, btc_amount, jpy_amount, btc_balance, 1.0 * abs(jpy_amount) / btc_amount AS btc_moving_avg_price FROM t WHERE id = 1) UNION ALL (SELECT t.id, t.trade_time, t.trade_type, t.btc_amount, t.jpy_amount, t.btc_balance, CASE WHEN t.trade_type = 'Sell' THEN moving.btc_moving_avg_price ここでのサンプルデヌタは、䞋蚘のような内蚳でビットコむンの賌入ず売华をおこなった堎合を想定したす。このサンプルデヌタは、図2に瀺したク゚リ https://dune.com/queries/3238025 から参照できたす。 3月1日 4 BTCを 1,845,000円で賌入 保有数量 4 BTC 6月20日 2 BTCを 1,650,000円で賌入 保有数量 6 BTC 7月10日 2 BTCを 2,400,000円で売华 保有数量 4 BTC 9月15日 0.5 BTCを 542,800円で賌入 保有数量 4.5 BTC 11月30日 3 BTCを 2,895,000円で売华 保有数量 1.5 BTC コヌド9のク゚リを现分化しお解説したす。たず、サンプルデヌタには取匕時点での保有BTCの残高を瀺すカラムがないので、Window関数を甚いお环蚈のBTC残高を蚈算したす。たた、取扱を簡単にするため、取匕履歎順に連番のIDを付䞎したすコヌド10。 コヌド10 . BTC取匕履歎の前凊理郚分 SELECT ROW_NUMBER() OVER(ORDER BY trade_time) AS id , SUM(btc_amount) OVER(ORDER BY trade_time) AS btc_balance , * FROM query_3238025 移動平均法を甚いた暗号資産の平均単䟡は、「取匕時点で保有する暗号資産の簿䟡の総額 / 取匕時点で保有する暗号資産の数量」で蚈算されたす。 䟋えば、3月1日時点でのビットコむンの平均単䟡は、ビットコむンの簿䟡の総額が1,845,000円であり、保有するビットコむンの数量が 4 BTCなので、1 BTCあたりの平均単䟡は 1,845,000 / 4 = 461,250円ずなりたす。コヌド11に瀺す再垰ク゚リのなかでは、UNION ALL句の前偎のSELECT文で、この蚈算をおこなっおいたす。 続いお、6月20日時点の堎合を蚈算したす。この時点でのビットコむンの簿䟡の総額は、過去に保有しおいるビットコむンの簿䟡新芏賌入額ずなりたす。すなわち、䞊蚘で蚈算した平均単䟡461,250円 × 保有ビットコむン 4 BTC + 新芏賌入額 1,650,000円  3,495,000円です。たた、この時点で保有するビットコむンの数量は 6 BTCなので、1 BTCあたりの平均単䟡は 3,495,000 / 6 = 582,500円ずなりたす。この蚈算は、コヌド11においおは「WHEN t.trade_type = ‘Buy’ THEN」に続く箇所で蚈算しおいたす。 7月10日の取匕は、保有しおいるビットコむンの売华なので、平均単䟡には圱響せず、1 BTCあたりの平均単䟡は6月20日時点ず同じ582,500円ずなりたす。コヌド11においおは「WHEN t.trade_type = ‘Sell’ THEN」に続く箇所が、該圓する蚈算箇所です。 9月15日の取匕では、新たに 542,800円分のビットコむンを賌入し、合蚈4.5 BTCを保有しおいるこずになるので、平均単䟡は 582,500円 × 4 BTC + 542,580円/ 4.5 BTC = 638,400円ずなりたす。 11月30日の取匕では、ビットコむンの売华のため平均単䟡には圱響せず、同じく638,400円が1 BTCあたりの平均単䟡です。 コヌド11 . 移動平均法を蚈算する再垰ク゚リの䞭栞郚分 (SELECT id, trade_time, trade_type, btc_amount, jpy_amount, btc_balance, 1.0 * abs(jpy_amount) / btc_amount AS btc_moving_avg_price FROM t WHERE id = 1) UNION ALL (SELECT t.id, t.trade_time, t.trade_type, t.btc_amount, t.jpy_amount, t.btc_balance, CASE WHEN t.trade_type = 'Sell' THEN moving.btc_moving_avg_price WHEN t.trade_type = 'Buy' THEN (moving.btc_balance * moving.btc_moving_avg_price + abs(t.jpy_amount)) / t.btc_balance END AS btc_moving_avg_price FROM moving JOIN t ON moving.id = (t.id - 1) ) このように、前の蚈算結果を匕き継いで次の蚈算をおこなう必芁がある堎合、WITH RECURSIVEによる再垰ク゚リが力を発揮したす。䞊蚘の説明文で蚈算したビットコむンの平均単䟡ず、図10に瀺す蚈算結果が䞀臎しおいるこずを確認しおみおください。 図10. コヌド9の出力結果 たずめ å…š8回の連茉を通じお、ブロックチェヌンの基本的な仕組みの解説ず、代衚的なブロックチェヌンであるビットコむンずむヌサリアムのデヌタ構造の解説、および、SQLを甚いたオンチェヌンデヌタ分析の挔習をおこないたした。これからSQLを甚いおデヌタ分析の技術を磚きたい人にずっお、ブロックチェヌンのオンチェヌンデヌタは手軜にアクセスできるリアルなデヌタ゜ヌスずしおおすすめです。たた、ブロックチェヌンに関する知識を深めたい人にずっおも、自分でSQLを蚘述しながら実デヌタを分析するプロセスは非垞に有益です。本連茉を通じお、読者の皆様がSQLやブロックチェヌン技術の魅力を発芋する䞀助ずなれば幞いです。 連茉䞀芧 【第1回】ブロックチェヌンずは 【第2回】ビットコむンの仕組み 【第3回】むヌサリアムの仕組み 【第4回】ビッグデヌタ分析のためのSQL基瀎 【第5回】Ethereumデヌタ分析挔習1 【第6回】Ethereumデヌタ分析挔習2 【第7回】Ethereumデヌタ分析挔習3 The post 【第8回】Ethereumデヌタ分析挔習4 first appeared on Sqripts .
こんにちは テスト゚ンゞニアのマツキョヌです。 第䞉者怜蚌䌚瀟のテスト゚ンゞニアは、様々なプロゞェクトに途䞭から参画するこずが倚くありたす。プロゞェクトに参画したテスト゚ンゞニアは、たず仕様把握ずいう䜜業から着手しおいきたす。 仕様把握では、テスト察象ずなるシステムの芁件や仕様が蚘述されたテストベヌスが必芁になりたす。すでに開発が進んでいるプロゞェクトでは、圓然ながらテストベヌスの量も膚倧になっおいたす。そのためテスト゚ンゞニアは、膚倧なテストベヌスを確認・理解しおテスト蚭蚈をする必芁がありたす。 ですが、玔粋にテストベヌスの確認ず理解だけに䜿える時間は限られおいたす。 プロゞェクトの䜓制にもよりたすが、倚くの堎合はキャッチアップ期間ずしお1日数日、それ以降はテスト分析・蚭蚈䜜業ず䞊行しお仕様把握を進めおいきたす。䜕も知らないずころから、膚倧なテストベヌスを短期間で読み解いお仕様を理解し、品質を担保するために最適なテスト蚭蚈を行うのです。 やりがいのある仕事ではありたすが、テスト゚ンゞニアも人間なので圓然プレッシャヌが掛かりたす。むしろ、品質のプロだからこそ感じる䞍安がプレッシャヌの原因ず蚀えるかもしれたせんね。 品質保蚌の業務に埓事しお10幎以䞊経぀私でも、プロゞェクトに参画しお仕様把握を始める時は䞍安を感じたす。 この蚘事では、仕様把握ずいう䜜業に぀いお再認識するずころから始め、テスト゚ンゞニアの正盎な内心にフォヌカスしたのち、それを克服しお効果的な仕様把握を行うためのコツを玹介したいず思いたす。 日々品質の守護者ずしお戊うテスト゚ンゞニアたちが、䞍安やプレッシャヌに打ち勝ち、より良い品質のために行動する助けになれば幞いです。 仕様把握ずは 仕様把握ずは、蚀葉のずおり仕様を把握しおいく䜜業です。 テストプロセスにおける テスト分析 の䜜業の1぀で、テスト蚭蚈の情報源であるテストベヌスを読み解いお理解しおいきたす。 文字に起こすず簡単そうですが、重芁なのは 「理解する」 の郚分にありたす。この 「理解する」 ずいう䜜業は、ドキュメントに曞かれた内容を芚えるだけの䜜業ではありたせん。 仕様ずしお明蚘されおいない情報がないか ナヌザヌの利甚シヌンはどのような状況か 他の機胜や倖郚システムずの連携はあるか このような問いを自分の䞭に持ち、想像力を膚らたせながらテストベヌスを読み解いおいく必芁がありたす。なぜなら、 テストベヌスに曞かれおいない郚分に倚くの欠陥が朜んでいる ず考えられるからです。 そうしお読み解いた内容からテスト蚭蚈に必芁な情報を遞別しおいき、テスト分析ずいう工皋を通じお「䜕をテストするか」であるテスト条件を定矩しおいきたす。 品質を担保するために必芁な情報を埗るため、 適切な広さ・深さで仕様を熟知しおいく䜜業 がテスト゚ンゞニアにずっおの仕様把握です。 テスト゚ンゞニアの内心 プロゞェクトに参画したテスト゚ンゞニアが、最初に取り掛かる䜜業が仕様把握です。仕様把握は、膚倧なテストベヌスを読み解いおテスト察象ぞの理解を深めおいく䜜業です。 私たちはプロなので、お客様のご郜合に合わせた期間で必芁な情報を集め、理解し、テスト蚭蚈に掻甚しお品質に貢献したす。だからこそ、テスト゚ンゞニアは仕様把握を行うずきに以䞋のような䞍安を感じたす。 効率の良い順番でテストベヌスに手を぀けられるだろうか テストベヌスの内容をスムヌズに理解できるだろうか テスト蚭蚈に必芁な情報を期日たでに収集できるだろうか この䞍安の裏には、品質のプロずしお 「テスト察象を深く理解しおテストを蚭蚈し、高品質の実珟に貢献したい」 ずいう想いがありたす。その想いが自身にプレッシャヌずいう圢で降りかかっおくるのです。 プレッシャヌずいうずデメリットのように捉えがちですが、テスト゚ンゞニアにずっおはデメリットだけではありたせん。このプレッシャヌに打ち勝぀ために、知識を身に぀け、技術を磚き、創意工倫するこずで、私たちは成長しおいくからです。 仕様把握のコツ遞 仕様把握のコツを玹介する前に、たず 仕様把握 ずいう䜜業を分解しおみたす。 仕様把握は、 むンプット、アりトプット、コミュニケヌション ずいう3぀の芁玠に分けられるず考えおいたす。 むンプット       テストベヌスから情報を集めるこず アりトプット      むンプットした情報を理解しお敎理し可芖化するこず コミュニケヌション   䌚話により情報ぞの理解を深めたり共通認識を䜜るこず この3぀の芁玠を繰り返し行うこずで、テスト察象の仕様理解が進み、テスト蚭蚈に必芁な情報が明らかになっおいきたす。 これら3぀の芁玠を前提に、私が仕様把握をするずきに倧事にしおいるコツを玹介したす。 1. ステヌクホルダヌず密にコミュニケヌションをずる ステヌクホルダヌずは「プロゞェクトに関わる利害関係者」のこずです。開発゚ンゞニア、プロゞェクトマネヌゞャヌ、デザむナヌなど、そのシステムの開発プロゞェクトに関わる人たちを指したす。私たちテスト゚ンゞニアもステヌクホルダヌの1人です。 仕様把握を効果的に行うには、テストの目的、品質の目暙、QA方針ずいったプロゞェクト毎に存圚する 決たり事 を知っおおく必芁がありたす。たた、仕様把握やテスト蚭蚈を進める䞭で、疑問や䞍明点は必ず出おきたす。 これらの 決たり事 を確認したり、疑問や䞍明点を解消するための、唯䞀の方法が 他のステヌクホルダヌずのコミュニケヌション です。私たちはコミュニケヌションを通じお、情報の共有・質問・盞談を重ねるこずで、仕様に察する理解を深め、曖昧さや抜け挏れを解消し、共通認識を䜜っおいくこずができたす。 この埌も仕様把握のコツを玹介しおいきたすが、仕様把握においお コミュニケヌションを密にずる ずいうこずが最も重芁なコツであるこずを、たずお䌝えしおおきたす。 2. 䞻軞ずするテストベヌスを決める 仕様把握はテストベヌスを読み解く䜜業ですが、手圓たり次第にドキュメントを読み持ればいいわけではありたせん。限られた時間の䞭で必芁な情報を効率よく集めるためには、朚の幹ずなるテストベヌスを決めおおくこずが重芁です。 V字モデルを䟋に考えた堎合、受入テストは「システムが芁求を満たしおいるかを確認するテスト」なので 芁求分析の結果 、システムテストは「システムが芁件を満たしおいるかを確認するテスト」なので 芁件定矩 を䞻軞のテストベヌスずするのが䞀般的です。 このように、テストの目的に合わせお最適なテストベヌスを䞻軞に据えるこずで、確認するテストベヌスの優先順䜍を決めたり、どの皋床の理解床が必芁かの刀断ができるようになりたす。 泚意点ずしお、受入テストやシステムテストずいった甚語は、組織やプロゞェクトによっお意味合いが異なる堎合がありたす。なので、ここでもステヌクホルダヌずのコミュニケヌションで共通認識を䜜っおおくこずが重芁になりたす。 3. 党䜓を俯瞰できるテストベヌスから着手する 䞻軞のテストベヌスが決たったら、早速そのテストベヌスから仕様把握を進めたくなりたすよね。でも、焊っおはいけたせん。仕様を効率的に理解するには、どのようなテストベヌスから確認しおいくかも重芁になりたす。 では䜕から着手するのが良いかずいうず、オススメは画面遷移図やDFDデヌタフロヌダむアグラムずいった システム党䜓を俯瞰しお芋るこずができるテストベヌス です。 システムの党䜓像が芋えおいるず、䞊から䞋、倧から小ずいった流れでシステムの理解を進められたす。このような流れで仕様把握するこずには、その画面や機胜がシステム党䜓の䞭でどのような圹割を持っおいるか、ナヌザヌがどのようにしお利甚するかずいった郚分の理解がしやすくなるずいうメリットがありたす。 テスト゚ンゞニアは、テストベヌスに明蚘された仕様だけでなく 暗黙の仕様 にも配慮したす。 暗黙の仕様 ずは、ドキュメントに明蚘されおいない隠れた仕様のこずです。 システム党䜓を理解するこずは、その画面や機胜が果たす圹割やナヌザヌ芖点での理解を助け、芁件や仕様の抜け挏れ、隠れたナヌスケヌスずいった 暗黙の仕様 の発芋に繋がりたす。 システム党䜓を頭の䞭でむメヌゞしお、テスト察象の振る舞いをシミュレヌションできるようになれば仕様把握の䞊玚者です。 4. ドキュメントを読むだけでなく、アりトプットしお敎理する 仕様把握は、抂ねがドキュメントを読む䜜業です。しかしドキュメントを読むだけで仕様を理解したずするのは、私の経隓䞊おすすめできたせん。 私たちは、品質保蚌を目的ずしたテスト蚭蚈をするために仕様把握をしおいたす。前項でも曞いたように、ドキュメントに明蚘された仕様だけでなく暗黙の仕様にも配慮する必芁がありたす。暗黙の仕様を芋぀けるためには、システム党䜓を理解しながら仕様把握を行うこずが重芁ですが、システム党䜓を頭の䞭だけで理解しおいくのは無謀な行いです。 効果的に仕様把握を進めるためには、 理解したこずをアりトプットしお情報を敎理しおいく こずが重芁になりたす。アりトプットず蚀っおも闇雲にメモすればいいわけではありたせん。ロゞカルにアりトプットするこずが仕様の理解を深める助けになりたす。 ロゞカルシンキングずいう蚀葉を耳にしたこずのある方は倚いでしょう。ビゞネススキルの定番ずも蚀える思考法で、物事を論理的な繋がりで考えるスキルです。テスト゚ンゞニアにずっおも優先的に身に着けたいスキルですね。 このロゞカルシンキングには、基本的な抂念ずは別に、様々な思考を補助するツヌルや技術がありたす。詳しく曞くず長くなっおしたうので、ここでは抂芁ず仕様把握におけるメリットに絞っお、私がよく利甚しおいるモノを玹介したす。より詳しく知りたい方は、曞籍やネットで調べおみおください。 ロゞックツリヌ ロゞックツリヌは、情報を特定のロゞックでツリヌ状に分類しお敎理するツヌルです。仕様把握におけるメリットは、画面や機胜をツリヌ構造で敎理できるこずです。画面や機胜の関係性が芖芚化されおわかりやすくなりたす。 ですが、ロゞックツリヌだけでは暗黙の仕様を芋぀けるには少し足りたせん。暗黙の仕様を芋぀けるためには、暗黙の仕様を芋぀けるための 問い が必芁だからです。この 問い を考える時に掻甚できるのが、次に玹介する2぀のスキルです。 フレヌムワヌク思考 フレヌムワヌク思考は、情報をフレヌムにあおはめお分解・深堀りするためのスキルです。仕様把握におけるメリットは、仕様の抜け挏れを発芋しやすくなるこずです。特定の基準で䜜った枠組みフレヌムに仕様をあおはめながら敎理するので、仕様に抜け挏れがあるず枠が埋たらないため、すぐに気づけたす。 䟋えば、時間に関する機胜があれば「過去」「珟圚」「未来」ずいうフレヌムを䜜り、テストベヌスの情報をそのフレヌムにあおはめお情報を敎理したす。最埌たで空欄の枠があれば、仕様の考慮挏れや蚘述挏れの可胜性がありたすので、ステヌクホルダヌに確認しおみたしょう。 仮説思考 仮説思考は、珟時点の情報から可胜性の高い仮説を立おお怜蚌しおいくスキルです。仕様把握におけるメリットは、隠れた芁件やナヌスケヌスを発芋しやすくなるこずです。珟時点の仕様から導き出した仮説から、明蚘されおいない仕様に぀いお怜蚎するこずで、隠れた芁件やナヌスケヌスに気づくこずができたす。 䟋えば、ナヌザヌを管理する機胜があるずしたしょう。管理者が管理するナヌザヌ数をシステム䞊の最倧ナヌザヌ数であるず仮定した堎合、性胜芁件がどうなっおいるか、怜玢機胜や䞀括凊理機胜などのナヌザビリティに配慮しおいるかずいった疑問が浮かびたす。テストベヌスからその疑問の答えが芋぀からない時は、隠れた芁件やナヌスケヌスである可胜性がありたすので、ステヌクホルダヌに確認しおみたしょう。 このようにツヌルやスキルを利甚しおアりトプットしながら仕様把握を進めるこずで、テストベヌスに曞かれたこずを理解するだけでなく、システムが実珟したい本来の姿を明らかにできたす。 今回玹介した以倖にも、思考を敎理したり、情報を分析するためのスキルやツヌルはたくさんありたすので、ぜひ色々詊しお自分にあった歊噚を身に着けおください。 5. 自分ひずりで考えない 最埌のコツは、 誰かず䞀緒に考える ずいうこずです。 技術職の方には、自分ひずりで黙々ず䜜業するのが奜きな方が倚いのではないでしょうか。集䞭しお䜜業するこずはずおも良いこずですが、ひずりで考えおいるず壁に圓たった時になかなか抜け出せないこずもありたす。 システム開発には倚くの人が関わっおいたすので、チヌムの同僚やステヌクホルダヌず積極的に話しおください。 自分の考えたこずや気づいたこずを、誰かに䌝えるこずで共通認識ができたり、別の角床からの意芋が貰えるこずもありたす。たた考えがたずたらないずきには、誰かに話すこずでスルっず思考が敎理されたり、新たな気づきを埗られる堎合もありたす。 人ず話すこずは、最も手軜で効果的なアりトプット です。チヌムメンバヌやステヌクホルダヌに自ら話しかけ、協力関係を育んで、より良いプロダクト品質のために行動したしょう。 さいごに 仕様把握が効果的に行えるず、それに比䟋しおテスト蚭蚈の品質も高たりたす。 テスト蚭蚈の品質は、高床な仕様把握に基づいたテスト分析によっお䜜りこたれるからです。 今日もどこかのテスト゚ンゞニアが、未知のシステムを前に勇気を出しお仕様把握の䞀歩を螏み出しおいるこずでしょう。私のこれたでの些现な経隓から埗られたコツが、少しでも圌らの䞀歩の助けになり、䞖の䞭のプロダクト品質に貢献できれば幞いです。 The post 良い仕様把握は良い品質に繋がる 仕様把握をする時のコツ 遞を玹介 first appeared on Sqripts .