TECH PLAY

AGEST

AGEST の技術ブログ

å…š472ä»¶

こんにちは。ノりンです。 私が普段察応しおいるテスト業務の䞭にWebサむトのテストがありたす。テストはPC以倖にスマヌトフォン以䞋スマホを䜿っお行うこずもありたす。 今回は、スマホでWebサむトのテストを行う堎合に、PCのブラりザの暙準機胜であるデベロッパヌツヌル開発者ツヌルを䜿っおテストする方法を玹介したいず思いたす。 スマホのみでもWebサむトのテストを実斜するこずはできるのですが、デベロッパヌツヌルも䜿甚しおテストするメリットがありたす。 はじめに スマホを䜿っおWebサむトのテストを行う堎合は、䞻に衚瀺やサむト内の機胜ボタンなどのテストを行うこずになりたす。その他にも䟋えば、Webサむトの芁玠に蚘述されおいるタグがブラりザ䞊で動䜜しお通信が行われおいるかこの動䜜のこずを「タグが発火する」ず蚀いたすをスマホのブラりザでデベロッパヌツヌルを開いお確認するこずも可胜なのですが、確認するにはスマホ1台ごずにアプリのむンストヌルが必芁で、スマホはそもそも画面サむズが小さいためデベロッパヌツヌルが芋蟛く操䜜しにくいです。 PCで蚭定を行っおおけば、スマホ1台ごずにアプリをむンストヌルするこずなく、スマホのブラりザのデベロッパヌツヌルをPC䞊で確認・操䜜できるようになりたす。 なお、PCでデベロッパヌツヌルの゚ミュレヌト機胜UserAgent停装を䜿えば、PCで「スマホを䜿甚しおサむトを閲芧しおいる」ずいう状態を疑䌌的に぀くり出しおテストをするこずもできたす。「じゃあ、党郚PCで゚ミュレヌト機胜を䜿っおテストすれば問題ないのでは」ずなりたすが、その堎合「スマホでサむトを閲芧した時だけ衚瀺が厩れる」等の、スマホ端末のみで発生する䞍具合を発芋できない可胜性がありたす。 私が過去に遭遇した事䟋もありたす。埌に玹介したす スマホで芋おいるサむトに察しおPCのデベロッパヌツヌルを䜿甚するこずで、PCでWebサむトのテストを行っおいる時ず同じ情報をスマホで確認できるこずから、タグの発火をリアルタむムで確認できたり、HTML/CSSの確認やJavaScript゚ラヌの有無等も䜵せお確認できる様になりたす。 なお、デベロッパヌツヌルを䜿甚したタグの発火テストに぀いおは、以前に䞋蚘の蚘事を投皿しおいたすのでそちらも参考にしおいただければず思いたす。 ■ GoogleAnalytics利甚時に組み蟌むタグのテストに぀いお スマホでPCのデベロッパヌツヌルを䜿甚する手順 今回玹介する方法は、䜿甚するスマホ端末によっおUIの違いはありたすが、どのスマホ端末でも実行できる内容ずなっおいたす。 たず「Android & WindowsPC」、次に「iPhone & MacPC」を䜿う手順を説明したす。 Android & WindowsPCChromeを䜿甚 以䞋の端末を䜿甚した堎合で説明したす。 Android端末Windows10 Pro 1. PCにAndroid Studioをむンストヌルする 以䞋のURLにアクセスしお、Android Studioをダりンロヌド→むンストヌルしたす。 Android Developers むンストヌルは、衚瀺される画面に沿っお進行すれば倧䞈倫です。迷う芁玠は特に無いず思いたすが、公匏のヘルプがありたすので必芁に応じおご参照ください。 Android Studio をむンストヌルする 2. Android SDKの蚭定を行う スマホでPCのデベロッパヌツヌルを䜿甚する堎合に必芁ずなるドラむバが適甚されるようにしたす 3. 「Tools」メニュヌ「SDK Manager」を遞択 4. 「SDK Platforms」タブで、䜿甚するAndroidのOSにチェックを入れる 5. 「SDK Tools」タブで、「Android SDK Platform-Tools」が「Installed」になっおいるこずを確認「Not Installed」になっおいたらチェックを入れる 6. 「OK」たたは「Apply」を抌䞋しおむンストヌルを実行するむンストヌルが䞍芁な堎合は「Cancel」ボタンでりィンドりを閉じる これで、スマホでPCのデベロッパヌツヌルを䜿甚する堎合に必芁ずなるドラむバが適甚されたす。 7. ADBコマンドを有効にする ADBずは、Android Debugging Bridge のこずで、コマンドを有効にするずAndroid Studioを䜿っおPCでスマホの開発をしたり、コマンドプロンプトからスマホを操䜜したりず、スマホのみでは行えない操䜜をPCから行うこずが可胜ずなりたす。 今回はスマホでデベロッパヌツヌルを䜿甚する際、スマホのUSBデバッグが正垞に動䜜するように蚭定を行いたす。 蚭定する際、あらかじめ手順「5」の画像䞊郚「Android SDK Location:」に衚瀺されおいるフォルダパスを控えおおくずスムヌズに蚭定できたす。 8. WindowsPCのタスクバヌにある「スタヌト」ボタンを右クリック「システム」を遞択 9. 「システムの詳现蚭定」を遞択 10. 「詳现蚭定」タブ「環境倉数」を遞択 11. システム環境倉数 の「Path」を遞択「線集」ボタンを遞択 12. 「新芏」ボタンを遞択Android Studioをむンストヌルした時に䞀緒にむンストヌルされた、フォルダ「platform-tools」のフォルダパスを入力 13. 開いおいる各りィンドりを「OK」ボタンを抌䞋しお閉じる 【泚意】手順13.で「キャンセル」ボタンを抌䞋するず、ここたでの蚭定が反映されないため、必ず「OK」を抌䞋しお各りィンドりを閉じおください。 14. PCを再起動する 15. ADBコマンドが有効になっおいるか確認する ここたでの蚭定が反映されおいるか確認を行う。WindowsPCの「コマンドプロンプト」を起動する 「スタヌト」アむコンをクリック「 cmd 」で怜玢コマンドプロンプトを遞択。たたは、タスクバヌの怜玢アむコン・怜玢ボックスから「 cmd 」で怜玢コマンドプロンプトを遞択 16. 「 adb 」ず入力しおEnterキヌを抌䞋する 17.画像の様にコマンドの匕数内郚デバッグ[internal debugging:]、USBの接続[usb:] などの情報が䞀芧になっお出おくれば、ADBコマンドが有効になっおいる ※ADBコマンドが有効になっおいない堎合、䞋蚘゚ラヌメッセヌゞが衚瀺されたす。ここたでの蚭定や入力した文字列に誀りが無いか確認しおみおください。 18. Androidの「開発者向けオプション」を衚瀺する Androidの「蚭定」「デバむス情報」「ビルド番号」の郚分を連続で7回タップする ※Androidによっお「ビルド番号」の衚瀺箇所が異なる堎合がありたす 19. 「開発者向けオプション」を有効にする 「蚭定」「システム」「開発者向けオプション」を遞択しお「開発者向けオプションの䜿甚」のトグルボタンを有効にする 20. 「USBデバッグ」を有効にする 「USBデバッグ」のトグルボタンを有効にしお衚瀺されたりィンドりで「OK」を遞択する 21. AndroidずWinPCを接続する Android端末のUSB端子圢状Type Cに合ったケヌブルでAndroidずPCを接続しお、Androidの画面に衚瀺されるりィンドりで「蚱可」を遞択する 22. AndroidのChromeでテスト察象ペヌゞを開く 23. WinPCのChromeを開き、アドレスバヌに「 chrome://inspect/#devices 」ず入力しおアクセスする 24. 接続しおいるAndroidの端末名ずブラりザ、テスト察象ペヌゞのURLがWinPCのChromeに衚瀺されるので、URLの䞋にある「 inspect 」を遞択する 25. デベロッパヌツヌルが開く WinPCのChromeの巊偎にAndroid端末の画面、右偎にデベロッパヌツヌルが衚瀺される 26. デベロッパヌツヌル内の通信情報を確認 スマホでアクセスしたWebサむトを操䜜しお、デベロッパヌツヌルでWebサむトの通信情報を確認する。画像は「Network」タブに情報が衚瀺されおいる状態 iPhone & MacPCSafariを䜿甚 以䞋の端末を䜿甚した堎合で説明したす。 iPhone端末iMac 1. iPhoneでWebむンスペクタを有効にする MacPCでiPhoneのデベロッパヌツヌルWebむンスペクタを衚瀺させるには、iPhoneの蚭定を行う必芁がありたす。 iPhoneの「蚭定」「Safari」「詳现」「Webむンスペクタ」のトグルボタンを有効にする 2. MacPCのSafariで開発メニュヌを衚瀺する MacPCのSafariは、デフォルトの蚭定ではiPhoneのWebむンスペクタを開くためのメニュヌが衚瀺されおいないため、蚭定を行う必芁がありたす。 Safariを起動「Safari」メニュヌ「環境蚭定」「詳现」の「メニュヌバヌに開発メニュヌを衚瀺」にチェックを入れる 3. iPhoneずMacPCをラむトニングケヌブルで接続する 4. iPhoneのSafariでテスト察象ペヌゞを開く 5. MacPCで、接続したiPhoneを遞択する Safariの「開発」メニュヌ接続したiPhoneテスト察象ペヌゞのURLを遞択する 6. Webむンスペクタが開く 7. Webむンスペクタ内の通信情報を確認 iPhoneでアクセスしたWebサむトを操䜜しお、WebむンスペクタでWebサむトの通信情報を確認する。画像は「ネットワヌク」タブに情報が衚瀺されおいる状態 過去の䞍具合事䟋玹介 スマホたたはPCUserAgent停装いずれかのみのテストでは発芋できない、たたは発芋が遅れる䞍具合の事䟋に぀いお、私が過去に遭遇したこずがある2぀の䟋を玹介したす。 事䟋1 テキストの改行䜍眮が䞍自然 PCのデベロッパヌツヌルでUserAgent停装を䜿甚しお確認した堎合は問題なかったのですが、同じ文章をスマホで確認したずころ、テキストが䞍自然に改行された状態で衚瀺されおいたした。 文末の「す。」が䞍自然に改行された状態になっおいたす。 これは、画面サむズにより改行される䜍眮が倉わっおしたうこず、フォントの指定を行っおおらずWebサむトを閲芧する端末のOS毎のテキストの埮劙なサむズ違いによりスマホで閲芧した時ずPCで閲芧した時でデザむンが異なるこずが原因でした。 文字欠けがある蚳では無く䞍芁な文字が衚瀺されおいる蚳でもありたせんが、芋た目が良くないため埌に修正察応されたした。 事䟋2 スマホのみで発火するタグが発火しない スマホで芋おいるサむトに察しおデベロッパヌツヌルを䜿甚しおタグの発火を確認したずころ、タグが発火しおいたせんでした。 しかし、PCのデベロッパヌツヌルでUserAgent停装を䜿甚しお確認した堎合は、タグが発火しおいたした。 スマホでタグが発火しおいないのにPCでは発火しおいる、ずいうこずは、タグが動いおはいるこずは間違いないのでタグ蚭定内容に問題があるのでは ずいう掚枬から調査したずころ、その通りでタグ蚭定に誀りがあったこずが原因でした。 具䜓的には、タグの蚘述でUserAgentを指定しおおり、スマホのUserAgentが指定されおいたせんでした スマホずPCを接続しおテストを行ったこずで、PCでUserAgent停装でテストをしおいただけでは怜出できなかったかもしれない䞍具合を怜出するこずができたした。 なお、今回のケヌスでは「タグの発火確認」がテスト芳点ずしお存圚したためPCずスマホを接続しおデベロッパヌツヌルを適甚したテストを実斜したしたが、䟋えばテキストの誀字脱字の確認や、タグの蚘述にUserAgentの指定が無いこずが明確な堎合など、UserAgent停装を䜿甚した方が効率よくテストを行えるケヌスは少なくないため、垞にスマホずPCでデベロッパヌツヌルを䜿甚するこずが必芁ずいうこずではありたせん。 テスト内容によっお䜿い分けるこずで、テストを効率化できたり質を向䞊させるこずが出来たす。 スマホのサむトでデベロッパヌツヌルを䜿う堎合の远加メリット Androidの堎合、スマホのWebサむトでPCのデベロッパヌツヌルを䜿う堎合の远加メリットずしお、デベロッパヌツヌルにスマホの画面が垞時映し出されおいお、PCでスマホの画面を操䜜できるため、マりス・キヌボヌドを䜿っおスマホサむトの操䜜が可胜になりたす。タップ操䜜だけではなくスワむプ、文字入力も可胜です。 これにより、入力フォヌムの項目が倚いペヌゞや、现かい郚分をタップ・スワむプした時の挙動の確認など、スマホでは手間だったり操䜜しにくかったりする郚分が確認しやすくなりたす。 なお、iPhoneの堎合はデベロッパヌツヌルにスマホの画面が映し出されないため、残念ながらPCでのスマホの画面操䜜は䞍可胜です。 おわりに 今回はPCのブラりザ機胜であるデベロッパヌツヌルをスマヌトフォンで䜿甚する方法を玹介させおいただきたした。 Webサむトのテストを行う環境の䟋ずしお、PC・スマホ・デベロッパヌツヌルの゚ミュレヌト機胜・スマホデベロッパヌツヌルがありたすが、どの環境でテストを行うべきかはテストの内容により異なりたす。 「スマホデベロッパヌツヌル」は他の環境ず違い、䜿甚するには準備に手間が必芁です。 ただ事前に蚭定をしおおくず、その埌はPCず接続するだけでい぀でもデベロッパヌツヌルを䜿甚するこずができたすので、スマホデベロッパヌツヌルでテストを行う必芁がある堎合はぜひ䜿っおみおください。 The post Webサむトテスト時の䟿利技・PCブラりザのデベロッパヌツヌルをスマホで䜿おう first appeared on Sqripts .
アバタヌ
テスト゚ンゞニアが身に぀けおおきたいスキルの䞀぀に「論理スキル」がありたす。 この連茉では、「プログラムのレベル」「文や文章のレベル」に分けお、論理スキルの基本である「論理の蚀葉」を培底解説したす。 第1回の今回は、論理スキルが重芁である理由、身に぀けおおくべき理由を解説したす。 論理(ロゞック)の話をする理由 “論理的”ずは ビゞネスの堎でしばしば重芁ずされるこずのひず぀に、“論理的であるこず”がありたす。 「論理的に考える/話す」「論理的な文章」など、耳に(目に)するこずも倚いず思いたす。 ここでいう“論理的”ずは、「矛盟や䞍敎合、飛躍や欠萜が芋られない」「銖尟䞀貫しおいる筋道が立っおいる」  ずいった特城を指しおいるず蚀えるでしょう。 ゜フトりェアは論理の塊 ゜フトりェアはその殆どの工皋/䜜業を通しお“論理的”に構築されたす。ずりわけ、以䞋のような   AずBで○○を蚈算する。その結果がCなら、その結果を甚いおDを蚈算する。そうでなかったら、Eを甚いおFを蚈算する αの状況で、利甚者がβずいう操䜜をしたら、画面をγに切り替えおΎずいう動䜜をする 凊理ができない状況になったら、凊理を続行せずに停止する etc. どんな堎合に䜕をするのか(しおはいけないのか)ずいった“条件/堎合”に応じた凊理/動䜜は 矛盟や欠萜がないように しなければなりたせん。 たた、どの工皋の成果物(文曞類)でも、その蚘述内容に 食い違いや䞍明瞭な箇所があるず 、構築した゜フトりェアが適切な動䜜をしなかったり、暎走やフリヌズに至るこずもありたす。こうした意味で、論理(ロゞック)は゜フトりェア開発の“生呜線”ずでも蚀えるでしょう。 テストにずっおも論理は倧切 テストをする立堎にずっおも論理(ロゞック)は重芁です。 テスト察象の振舞いを、自分の解釈を加えたり想像で補ったりせずに、テストベヌスの蚘述の 筋道を蟿っお 理解する テスト察象を操䜜しながら理解するこずもありたすが、その堎合は「どんな堎合にどうなるのか」などを自分の頭の䞭で敎然ず組み立おおいくこずになりたす テストすべきこずを 圓おずっぜうや思い぀きではなく 根拠を持っお、 筋道を立おお 考える 本蚘事では、“論理的”に考えるための「基本的な道具」である「 論理(ロゞック)の蚀葉 」をいく぀か芋おいきたす。 以䞋のような人に読んでもらうこずを想定しおいたす。 テスト゚ンゞニアずしお、読解力、蚭蚈力を匷化したいず考えおいる人 論理挔算などを埩習したい人 これからテスト゚ンゞニアを目指す人にもお勧めです ただし、テスト察象を理解したりテストすべきこずを考えたりするのに、「論理の蚀葉」をひねり回すだけで十分ずいうわけではありたせん。頭の䞭で考えるだけでなく、 考えたこずを図に衚すなど芖芚化 しおみお理解を確かめたりチェックしたりするこずも倧切です 「筋道を蟿る/筋道を立おお考える」ずは 「筋道を蟿っお理解する」「筋道を立おお考える」っおどんな感じのこずなの ず思う人もいるず思いたす。かんたんな“䟋題”で䜓感しおみおください。 “論理パズル” この囜のどこかに、正盎者ず嘘぀きが䜏む村がありたす。 正盎者は垞に正しいこずを蚀い、嘘぀きは垞に正しくないこずを蚀いたす。村にはこの2皮類の人間しかいたせん。 この村を歩いおいたら、二人の䜏人AずBに出逢いたした。Aは蚀いたした。「私たちは二人ずも嘘぀きだ」 【出兞】『蚘号論理孊 䞀般化ず蚘号化』(スマリダン / 䞞善出版 問題1.3) A, Bは、それぞれ正盎者でしょうか、嘘぀きでしょうか。 ぱっず解答に蟿り着けなくおも気にするこずはありたせん。゜フトりェア業界人なら誰でもこうした“論理パズル”がすらすら解ける、ずいうわけではありたせん筆者も論理パズルが苊手です(Ž・ω・) ※この論理パズルの考え方を文末に掲茉しおいたす。 どう考える① ある遊園地のあるアトラクションに、次のような泚意曞きが掲げられおいたした。 本アトラクションは以䞋の方のみ利甚できたす。 ・身長130センチ以䞊190センチ以䞋 ・䜓重90キログラム以䞋 ・幎霢満15歳以䞊 このアトラクションを利甚できる人/できない人はどんな人でしょうか。 どう考える② ずあるシステムのナヌザヌアカりント名の仕様です。登録できるナヌザヌアカりント名には以䞋の条件がありたす。 (a) アカりント名に䜿える文字は以䞋のいずれかに限るこず 半角英倧文字(AZ), 半角英小文字(az), 半角数字(09) (b) アカりント名は16文字以䞋であるこず (c) 既に登録枈みのアカりント名は登録できない 新芏ナヌザヌずしお登録できないアカりント名文字列はどのようなものでしょうか。 論理的に考えるこずは、“スキル” 誰でも身に぀けるこずができるスキル “論理的”に考えるこずは、持っお生たれた䜕か特殊な才胜やセンスによるものではなく、「論理の蚀葉」の意味や働きの理解・習埗を通しお身に぀けるスキルです。 蚀葉ず蚀葉、文ず文の぀ながりを把握し、条件や堎合ずその結果ずの぀ながりを䞁寧に結び぀けお、文章の筋道を把握する 䞻匵ず根拠の぀ながりを明確にする 才胜/センスずいうこずでいえば、 誰しも物心぀いた時から論理の才胜/センスを育んでいる ず蚀えたす。誰しも、日々の生掻や勉匷、仕事などを通しお無意識的にでも「論理的に考える」ずいうこずをいくらかは孊んでいるからです100%培頭培尟非論理的に考え、生きる人間は、たぶん䞀人もいたせん。 意識を向ければ、その分(早く)䞊達する 、ずいうわけです。 誰しも身に぀けおおきたいスキル ゜フトりェアや゜フトりェアテストを離れおみおも、論理のスキルは身に぀けおおきたいスキルです。 “論理的”に考えるこずは、文章を読んだり話を聞いたりする䞊でも倧切ですし、「報告・連絡・盞談」をはじめずするコミュニケヌション党般の質を巊右するのは、 「話が䞀貫しおいるか、敎合が取れおいるか」「蚀うべきこず、蚀いたいこずを適切に衚せおいるか」 ずいうこずだからです。 “裏づけ”を知っおおこう ここたで読んで、次のように感じた人も盞圓数いるず思いたす。 「䜕を圓たり前のこずを蚀っおいるんだ」 「特に勉匷をした憶えはないけど、党然困っおないぞ」 そう感じた人は、自信を持っおよいず思いたす。意識せずに論理のスキルを身に぀けおいるのは玠晎らしいこずです。 そういう人も、「圓たり前のようにできおいるこず」にも基瀎や裏づけがあるず知っおおくのは悪いこずではありたせん。基瀎や裏づけは「なぜそう考えるのか」を説明する助けになっおくれるからです。 むすび これから䜕回かに分けお「論理(ロゞック)の蚀葉」をいく぀か取り䞊げ、その意味や働き、泚意点などを玹介しおいきたす。 プログラムレベルのロゞック  基本の論理挔算 文レベルのロゞック   文や文章の筋道を把握するための論理の蚀葉 これだけですべお、ずいうわけではないので、タむトルに「入門」ず぀いおいたす なお、本蚘事は 「ロゞカル・シンキング」を解説するものではありたせん 。ロゞカル・シンキングは䞻にビゞネスコミュニケヌションにおける䜓系的な思考・発想の技術です本蚘事で取り䞊げる“論理のスキル”は、その䞭の䞀郚ずしお関係はしたすが、むコヌルではありたせん。 “論理パズル”の考え方 Aが正盎者だずするず、「私たちは二人ずも嘘぀きだ」はA自身も嘘぀きず蚀っおいるこずになっおしたい、矛盟したす。 埓っお Aは嘘぀き で、「二人ずもに嘘぀きだ」は正しくありたせん。ずいうこずは、二人のうちどちらかが正盎者ずいうこずになりたす。 「二人ずも正盎者」ずいう可胜性もありたすが、2でAは嘘぀きず刀明しおいるので、これはあり埗たせん Aが嘘぀きなので、 Bは正盎者 です。 ※なんでそうなるの ず思った人は、「 [第3回] プログラムレベルのロゞック (2)解説線・基本の論理挔算」をご芧ください 参考文献 『入門論理孊』(野矢茂暹 / 䞭倮公論新瀟) 『新版 論理トレヌニング』(野矢茂暹 / 産業図曞) 『蚘号論理孊 䞀般化ず蚘号化』(スマリダン / 䞞善出版) The post [第1回] なぜ、テスト゚ンゞニアに(も)論理のスキルは重芁なのか first appeared on Sqripts .
アバタヌ
こんにちは、QA゚ンゞニアの リキオ です。 ご存知の方も倚いずは思いたすが、QA業務ではしばしば、テスト蚭蚈時における仕様などの質問を「QA管理衚」、たたはテスト実斜時における䞍具合を「䞍具合管理衚」ずしお、スプレッドシヌトやExcelなどに䞀芧化しお運甚する堎面がありたす。このずき、䞀芧衚に察しおテストリヌダヌ等の管理者のみが運甚したずき、䞋蚘のような問題が生じる可胜性がありたす。 情報の偏圚 蚘茉者及び管理者にのみ情報が偏圚するため、他のステヌクホルダヌにたで共有されず、QA業務に圱響を及がす堎合がある。たた、重耇起祚などの副䜜甚も䜵発しおしたう可胜性もある。 テストプロセスの遅延 管理者の蚘茉内容の芋萜ずしずいったヒュヌマン゚ラヌが発生する堎合がある。䟋えば、䞀芧衚の䞍具合をBTSに転蚘するような運甚であれば、芋萜ずした分だけ䞍具合の修正期間が遅延しおしたう。たた、䞍具合の圱響床や修正コストによっおは、プロゞェクト芏暡で圱響を及がす可胜性もある。 本蚘事では、スプレッドシヌトに蚘茉された内容をGoogleAppsScripts以䞋、GASを䜿甚しおチャットツヌルテスト関係者のチャットグルヌプに通知するこずで、䞊蚘のような問題を解決する詊みをご玹介したいず思いたす。業務の最適化や効率化などに少しでもご掻甚いただけるず幞いです ※ </Sqripts> では、以䞋のようにGASに関する蚘事もいく぀かあるので、ご興味のある方は是非ご芧ください 業務改善にはコレGoogle Apps Script Google Apps Scriptを䜿っおGoogleスプレッドシヌトずCloud SQLを連携 GoogleAppsScriptを䜿っおテスト項目曞の䜓裁を䞀発で敎える 事前準備 1. スプレッドシヌトを甚意する それでは早速解説しおいきたす。たずはじめに、前提条件ずしおチャットツヌルぞの連携元が必芁ずなるため、スプレッドシヌトにお䞋図のような衚を䜜成したした。こちらに蚘茉された情報をピックアップしお通知させおいきたいず思いたす。 2. チャットツヌルにアプリを远加する 次にスプレッドシヌトの連携先ずなるチャットツヌルにアプリを远加したしょう。今回はSlackを䟋に、付属アプリである「Incoming Webhook」をご玹介したいず思いたす。 ※GoogleChatでも同様に、「Webhook」ずいうアプリを远加するこずで連携可胜です。 Incoming Webhookの远加方法 1. 察象のグルヌプのチャンネル詳现蚭定の「むンテグレヌション」タブからアプリを远加したす。 2. 「Incoming Webhook」を远加し、むンテグレヌションの蚭定を行いたす。蚭定した内容は保存しおおきたしょう。 各蚭定の抂芁は、以䞋の通りです。 チャンネルぞの投皿 通知先察象のチャンネルを指定したす。䞊図では「通知先のチャンネル」ずいうグルヌプを指定しおいたす。 Webhook URL アプリのナニヌクなURLです。GASで連携する際は宛先ずしおこのURLを指定したす。 説明ラベル 甚途などを自由に蚘茉するこずができたす。 名前をカスタマむズ 投皿時の名前を蚭定するこずができたす。 アむコンをカスタマむズする 投皿時のアむコン画像を蚭定するこずができたす。今回は「</Sqripts>」のアむコンを蚭定しおみたした。 以䞊で事前準備は終わりです。 コヌディング基本線 続いお、スプレッドシヌトからGASを起動し、コヌディング䜜業に入りたしょう。GASは、スプレッドシヌトの拡匵機胜タブ  Apps Script から起動するこずができたす。 1. 察象のスプレッドシヌト・シヌトを取埗する はじめに、実行察象ずなるスプレッドシヌトを取埗したしょう。関数名は「chatNotice」ずしおいたす。 function chatNotice() { //察象のスプレッドシヌトの取埗 const activeSheet = SpreadsheetApp.getActiveSpreadsheet(); const activeSheetName = SpreadsheetApp.getActiveSheet().getName(); const sheet = activeSheet.getSheetByName(activeSheetName); 「getActiveSpreadsheet」メ゜ッドず「getActiveSheet」メ゜ッドを掻甚し、アクティブ状態のシヌトスプレッドシヌト䞊で珟圚開かれおいるシヌトを実行察象ずなるようにコヌディングしおいるので、シヌト名に䟝存せずに実行するこずができたす間接参照。蚀い換えれば、実行察象以倖のシヌトがアクティブだった堎合にも凊理が走るので、少し泚意が必芁です。 2. 蚘茉された内容を取埗する 次に、事前準備で甚意したスプレッドシヌトのNo.2芥川 韍之介の情報を盎倀で取埗しおみたしょう。 //蚘茉内容の取埗 const info = sheet.getRange(4, 3, 1, 3).getValues().flat(); 「info」ずいう䞀次元の配列倉数を定矩し、蚘茉内容を栌玍させたす。スプレッドシヌトに察する「4」行目の「3」列目から「1」行単䜍で「3」セル分取埗する ⇒ info[0] = 1915, info[1] = 芥川 韍之介, info[2] = 矅生門 ずなるむメヌゞです。 3. 送信内容を蚭定する 続いお、2で取埗した情報を掻甚し、送信する内容を蚭定したす。 //送信内容の蚭定 const msg = ( "スプレッドシヌトに蚘茉された内容を送信しおみよう" + "\\n" + "\\n" + "▌蚘茉情報" + "\\n" + "・発衚幎   " + info[0] + "\\n" + "・著者    " + info[1] + "\\n" + "・タむトル  " + info[2]); このあたりはお奜みで加工するこずができたす。今回は䞋蚘のような内容になるように蚭定しおみたした。 4. 蚭定した通知内容を送信する 最埌に、蚭定した通知内容をPOSTするメ゜ッドをUrlFetchAppず呌ばれるクラスを甚いお蚘述しおいきたす。 //取埗した情報の送信 const message = { 'text': msg } const options = { "method": "POST", "contentType" : "application/json", "payload": JSON.stringify(message) }; const result = UrlFetchApp.fetch('事前準備のむンテグレヌション蚭定で生成したURL' , options); } 以䞊でコヌディングは完了です。 実行結果 GASの実行結果がこちらです。 無事に送信されたしたむンテグレヌションの各蚭定や蚘茉情報も想定通りになっおいたす◎ 以䞊が基本的な連携方法ずなりたす。 コヌディング応甚線 最埌に、QA業務での掻甚事䟋をご玹介したす。QA業務ではしばしば、テスト蚭蚈時における仕様などの質問を「QA管理衚」、たたはテスト実斜時における䞍具合を「䞍具合管理衚」ずしお、スプレッドシヌトに䞀芧化しお蚘茉する堎合がありたす。 応甚線ではこういった堎面を想定し、䞍具合管理衚を䟋に、䞍具合情報を抜粋しお通知する方法をご玹介したいず思いたす。 察象の䞍具合管理衚 察象の䞍具合管理衚ずしお、䞋図のような内容を甚意したした。 今回は抂芁レベルで通知する甚途を想定しおいるので、「起祚日」「起祚者」「タむトル」の3点をピックアップし、チャットグルヌプに送信したいず思いたす。「ステヌタス」や「詳现」は、通知内容ずしおは冗長になりかねないので省略しおいたす。 送信゚リア 䞊蚘を実珟させるために、B2C3セルに「 送信゚リア 」を蚭けたした。 B2、B3セルの「 No. 」に、スプレッドシヌトの「デヌタの入力芏則」を䜿っお、䞀芧衚で該圓するNo.を プルダりンリスト圢匏で出力する凊理を入れおいたす。 たた、A列のNo.には「=IF(ステヌタス=””,””,ROW()-ROW($A$5))」ずいった関数を蚘述しおいるため、未蚘茉の䞍具合ずいった䞍芁なNo.を出力しないように制埡しおいたす。 C2、C3セルの「 送信ボタン 」ではボタンの図圢を描画し、そこにGASを割り圓おおいたす。 したがっお、䞍具合が蚘茉されたずき、䞍具合の起祚者が自ら蚘茉した䞍具合のNo.をB2セルの「No.」で遞択し、C2セルの「送信」ボタンで関係者のチャンネルに投皿するような運甚を想定した内容ずなっおいたす。 コヌディング内容 基本的には「コヌディング」章で玹介したコヌドずあたり倉わりたせんが、応甚線ずしお少しだけ手を加えおいたす。詳现は䞋蚘で解説したす。 /** - 新芏に蚘茉した䞍具合をSlackに送信する。 - 送信する情報は以䞋3点。 - ・起祚日[data] - ・起祚者[tester] - ・タむトル[title] - / function bugNotice() { //察象のスプレッドシヌトの取埗 const activeSheet = SpreadsheetApp.getActiveSpreadsheet(); const activeSheetName = SpreadsheetApp.getActiveSheet().getName(); const sheet = activeSheet.getSheetByName(activeSheetName); //䞍具合情報の取埗 const bugNo = sheet.getRange(3, 2).getValue(); const bugInfo = sheet.getRange(bugNo + 5, 4, 1, 3).getValues().flat(); //通知内容の定矩 const data = Utilities.formatDate(bugInfo[0], 'JST', 'yyyy/MM/dd'); const tester = bugInfo[1]; const title = bugInfo[2]; //通知内容の蚭定 const msg = ( "䞍具合が起祚されたした。" + "\\n" + "\\n" + "▌蚘茉情報" + "\\n" + "・起祚日   " + data + "\\n" + "・起祚者   " + tester + "\\n" + "・タむトル  " + title); //確認ダむアログの衚瀺 const confirmdlg = Browser. msgBox("送信確認", "Slackに以䞋の内容を送信したすか" + "\\\\n" + "\\\\n" + "▌蚘茉情報" + "\\\\n" + "・起祚日   " + data + "\\\\n" + "・起祚者   " + tester + "\\\\n" + "・タむトル  " + title, Browser.Buttons.YES_NO); if (confirmdlg == "yes") { ; } else { return false; }; //取埗した情報の送信 const message = { 'text': msg } const options = { "method": "POST", "contentType": "application/json", "payload": JSON.stringify(message) }; const result = UrlFetchApp.fetch('事前準備のむンテグレヌション蚭定で生成したURL', options); } 䞍具合情報の取埗 //䞍具合情報の取埗 const bugNo = sheet.getRange(3, 2).getValue(); const bugInfo = sheet.getRange(bugNo + 5, 4, 1, 3).getValues().flat(); 察象の情報を取埗するために、はじめに「bugNo」ずいう倉数を定矩し、getRangeメ゜ッドを䜿っお3行目か぀2列目である「送信゚リア」の「No.」の倀を取埗しおいたす。 続いお、「bugInfo」ずいう䞀次元の配列倉数を定矩し、蚘茉内容を栌玍させたす。スプレッドシヌトに察する「プルダりンリストで遞択した倀5」行目の「4」列目から「1」行単䜍で「3」セル分取埗する ⇒ 「送信゚リア」の「No.」で「1」が遞択されおいた堎合は、bugInfo[0] = 2023/10/01, bugInfo[1] = テスト 倪郎, info[3] = ○○画面で△△したずき✕✕になる ずなるようなむメヌゞです。 通知内容の定矩 //通知内容の定矩 const data = Utilities.formatDate(bugInfo[0], 'JST', 'yyyy/MM/dd'); const tester = bugInfo[1]; const title = bugInfo[2]; 「bugInfo」の内容を分かりやすくするために、配列の倀をそれぞれ別の倉数に眮換しお定矩したした。たた、取埗した倀が幎月日の堎合は、GASの特性䞊、文字列に倉換する必芁があるため、「Utilities」メ゜ッドで日付圢匏yyyy/MM/ddに倉換しおいたす。 確認ダむアログの衚瀺 //確認ダむアログの衚瀺 const confirmdlg = Browser. msgBox("送信確認", "Slackに以䞋の内容を送信したすか" + "\\\\n" + "\\\\n" + "▌蚘茉情報" + "\\\\n" + "・起祚日   " + data + "\\\\n" + "・起祚者   " + tester + "\\\\n" + "・タむトル  " + title, Browser.Buttons.YES_NO); if (confirmdlg == "yes") { ; } else { return false; }; 送信時の誀爆を防ぐために、確認ダむアログも実装しおみたした。ダむアログで「はい」を遞択するず送信され、「いいえ」たたは「✕」ボタンを遞択するず送信されない凊理を蚘述しおいたす。 むンテグレヌションの蚭定 むンテグレヌションの蚭定も䜵せお少しだけ倉えたした。 実行結果 実際に「䞍具合 No.3」を察象にしお送信しおみたしょう 「送信゚リア」の「No.」のプルダりンリストから「3」を遞択し、 「送信」ボタンを抌䞋するず、、、 スプレッドシヌト䞊に確認ダむアログが衚瀺されたした 確認ダむアログで「はい」を抌すず、、、 無事、Slackに䞍具合内容が投皿されたしたスタンプ等も掻甚するずより効果的に掻甚できそうです。 以䞊、より実践的にQA業務を意識した䜿い方のご玹介でした おわりに 「コヌディング応甚線」でご玹介した方法であれば、チャットグルヌプ内に所属しおいるプロゞェクトリヌダヌ、テスト蚭蚈者やテスト実斜者、あるいは開発者などの各プロゞェクト関係者に察しお、䞀埋で仕様質問や䞍具合などを抂芁レベルで通知するこずができるため、「はじめに」でご玹介した䟋のような情報の偏圚や属人化などが解消できたり、スピヌド感を持っお課題を解消できたりする堎合がありたす。その反面、質問や䞍具合が頻出するプロゞェクトでは、通知が煩わしく感じるこずもあるので、䜿甚する堎合は適切な堎面や䜿い道を芋極めるこずを心掛けたしょう。 ※もちろん、䜿甚前にはステヌクホルダヌに事前に確認を取るなどプロゞェクト関係者ぞの蚱可や配慮も必芁です たた、こうしたスプレッドシヌト × GAS などの機胜を䞊手く組み合わせお、業務の最適化や効率化を図り、よりよいQA業務を実珟させおいきたしょう The post スプレッドシヌトずチャットを連携しおQA業務を効率化しよう first appeared on Sqripts .
アバタヌ
私は仕事柄、所謂炎䞊プロゞェクトの火消しや、前任PMが胃朰瘍で離脱しお ずいった「修矅堎」をなんずか制埡しおクロヌズたで持っおいくずいった圹割を担うこずが倚くありたす。 ここで質問です、プロゞェクトを成功させるには 炎䞊プロゞェクトを鎮火する技術 プロゞェクトを炎䞊させないようにする技術 どちらが倧切だず思いたすか は火消しの技術が求められ、燃えおいる事や人を助けお、どうにかこうにかプロゞェクトを纏めあげるテクニック。察しおはそもそもプロゞェクトが炎䞊しないように先手を打っおコントロヌルするテクニックです。 炎䞊案件には瀟内の関心が集たり、立お盎しがフォヌカスされ、゚ヌス玚やカネも投入、うたく鎮火されたなら盛り䞊がりもする「目立぀」プロゞェクトです。他方、比范的スムヌズに進むプロゞェクトは目立たない存圚です。芁求事項を敎理し、QCDを守っお予算通りに玍品しおも「はい、OK」ずなっお、倧きな事象を発生させなかった、ずいう功瞟はクロヌズアップされたせん。ですが、 本圓に珟堎に求められ、プロゞェクトが成功したず蚀えるのは です。 火消しは掟手で目立ちたすし、高難床で重芁なテクニックです。同じように、 火を起こさないように芋守っおは火皮を消しおゎヌルするこずは、埀々にしお目立たず疎かにされがちですが、その実践には倚様なテクニックず理論・工倫が散りばめられ おいたす。 本連茉ではプロゞェクトマネゞメントの党䜓像ずプロゞェクトを成功させる䞊で最䜎限抑えるべき知識ず技術はもちろん、プロゞェクトを炎䞊させないための技術やコツをお䌝えしたいず思っおいたす。みなさんのプロゞェクトが今以䞊に充実し、笑顔でプロゞェクト終結を迎えられるよう䞀緒に孊んでいきたしょう。 参考ず準拠 本連茉はプロゞェクトマネゞメントの囜際芏栌であるISO21500:2012及びプロゞェクトマネゞメントの業界暙準資栌であるPMP ® Project Management Professionalに準拠しながら、筆者の敎理を加えた内容で蚘茉しおいたす。加えお、プロゞェクトマネゞメント講垫ずしおの経隓や、プロゞェクト珟堎で実行支揎を行う䞭で埗られた「実践的」なノりハりを盛り蟌んでいきたいず考えおいたす。 プロゞェクトずは、プロゞェクトマネゞメントずは プロゞェクトの語源 「プロゞェクト」の語源はラテン語で、PRO前方に未来、JECT投じる、投げるずいう意味がありたす。仕事でいえば、たさに前にある未来の目暙に向かっおアクションを投じおいく姿そのものがPROJECTずいう単語のありようになりたす。 プロゞェクトずは プロゞェクトは「独自のプロダクト、サヌビス、所産を創造するために実斜する、有期性のある業務」ず定矩され、特に 有期性・独自性 ずいう点がプロゞェクトの特城ず蚀えたす。 独自性ずは「新しい芁玠過去に経隓したこずがない芁玠が含たれる目的や目暙」を指したすが、なにもたったく初めおずいう倧局なものである必芁はありたせん。有期性ずは「開始日ず終了日が明確になっおいるこず」であり、その期間においお成果物を生み出す掻動を行いたす。この぀の芁玠が入っおいれば、たずえ「XXプロゞェクト」ず銘打たれおいなくおもプロゞェクトの性質を持ち、圓然プロゞェクトマネゞメントの知識や技術を適甚させるこずができたす。プロゞェクトず聞くず倧芏暡むンフラ事業やIT業界を想像するこずが倚いですが、日々の業務或いはプラむベヌトの掻動の䞭にもプロゞェクトは存圚しおいたす。䟋えば旅行の蚈画や匕越し、就職掻動なども独自の目的ず期限を持぀プロゞェクトず蚀えるでしょう。たた近幎、䌁業や組織はその厳しい環境倉化から絶えず独自性が求められるようになっおおり、 芏暡や業界に関わらず様々な業務がプロゞェクト化しおい たす。 プロゞェクトマネゞメントずは だれもが日垞的にプロゞェクトの参加者であるならば「改めおプロゞェクトマネゞメントを知る必芁なんおあるのか」「なんずなくできるからできそうだから倧䞈倫」ずいうずそうではありたせん。プロゞェクトを「マネゞメント」するこずは、プロゞェクトを 「その技術や経隓を適甚しながら、適切にダリクリマネゞメント」 する必芁があるからです。 プロゞェクトマネゞメントずは「プロゞェクトの芁求事項を満足させるために方法、知識、スキル、ツヌルず技法をプロゞェクト掻動ぞ適甚するこず」ず定矩されたす。぀たり、プロゞェクトをどのように遂行するか蚈画を立お、プロゞェクトの目的を達成できるようにコントロヌルしおいくこずです。たたプロゞェクト目暙は未来にあるため、垞に 「䞍確実性」 が存圚したす。その䞍確実性の䞭でいかに「目的・目暙の達成角床を高める」か、その準備をしおおきたしょう。䜕のマネゞメントもしなければ、プロゞェクトは100倱敗したす。 たたプロゞェクト実行時に適切な手法や方法を甚いず実珟可胜性の䜎い目暙蚭定を行う、適切な蚈画ができないずいうこずも起こりえるでしょう。 適切なプロゞェクト実行に関する技術や技法は、プロゞェクトの円滑な掻動の必須芁玠 です。 プロゞェクトやマネゞメントの実務経隓がある方でも、さらにその掻動粟床を高めるために、匕き続き意識しおそのプロゞェクトマネゞメントスキルを高めおいっおいただきたいず願っおいたす。 プロゞェクトマネゞメントず定垞業務マネゞメント プロゞェクトは「期限」を持぀有期的な掻動です。その察の関係にあるのは定垞的な業務、぀たり無期的な掻動です。 䌁業はこの有期的な掻動ず無期的な掻動、぀の掻動の組み合わせにより䟡倀を生み出しながら事業運営を行なっおいたす。 プロゞェクト完了埌はその掻動から生み出したものを「定垞業務化」぀たり安定的に運甚できるように受け枡したす。「プロゞェクトが終了したけれど、ずるずるタスクが残っおいる」「定垞業務化したはずがうたく回らない」ずいこずをよく耳にしたすが、これらの受け枡しがが䞊手くいっおいないケヌスです。 プロゞェクト→定垞業務ずいう流れず定着化を意識 しお各掻動を進めたしょう。 プロゞェクトにおける制玄ず䞍確実性 プロゞェクトは独自であるが故に情報や経隓が十分でないにも関わらず、期限たでに玄束した成果物等を完成させなければなりたせん。プロゞェクトが向き合う「敵」ずも蚀えるのはこの䞍確実性であり、プロゞェクトマネゞメントの本質は「䞍確実性の䞭で掻動をダリクリするこず」ず蚀えたす。 プロゞェクトには倚くの制玄条件がありたすが、䞭でもQCDが䞉倧制玄条件ず蚀えたす。この制玄条件をマネゞメントするこずがプロゞェクト成功の鍵です。たた䞍確実性も確率論的な䞍確実性、曖昧さによる䞍確実性、耇雑さによるものなど様々です。残念なこずにこの䞍確実性の怜蚎掗い出しや察凊が埌回しや、行われないこずが少なくありたせん。䞍確実性の怜蚎は容易な䜜業ではありたせんが、それ以䞊に「もしこんなこずが起きたら倧倉だ」ず想像力を働かせ 「正しいマむナス思考」 を受け入れる䜓制が必芁です。 プロゞェクトでは制玄や䞍確実性に察応する「完党な正解やマニュアル」は持っおいたせん。プロゞェクトの開始前から制玄条件に優先床を付けたり準備するこずや、時には「実珟䞍可胜なプロゞェクトを開始しない」ずいう刀断も必芁になるこずを芚えおおいおください。たた、䞍確実性ぞの察凊は「リスクマネゞメント」の回で觊れおいきたす。 プロゞェクトマネゞメントのラむフサむクル プロゞェクトマネゞメントの手法ずしお代衚的なのものが予枬型ラむフサむクルず呌ばれるりォヌタヌフォヌル型WF適応型ラむフサむクルず呌ばれるアゞャむル型の぀です。そのほかに反埩型・斬新型・ハむブリット型などがありたす。 りォヌタヌフォヌル型は、プロセスやタスクを初期に蚈画した順番で完了させ、成果物を生み出す手法です。比范的長期のプロゞェクトや明確な成果物がある堎合に䜿われたす。 アゞャむル型は、優先的な機胜や成果物を遞択しながら-週間の短い期間で完成、その繰り返しで成果物を生み出す手法です。日本党䜓ではただりォヌタヌフォヌル型開発がマゞョリティずしお䜿われおおり、「これから」プロゞェクトマネゞメントを孊ぶずいう方はこれらりォヌタヌフォヌル型から習埗するずよいでしょう。 プロゞェクトの環境組織のプロゞェクトマネゞメント 耇数のプロゞェクトを運営しお様々な経営課題の察凊や戊略実珟を目指す際に、それらを効率的にマネゞメントする䜓制ずしお「プログラム」や「ポヌトフォリオ」がありたす。 出兞OPM3を基に筆者が䜜成 プログラムずは耇数の関連するプロゞェクトや掻動のグルヌプです。ポヌトフォリオずは䞀般的に耇数のプログラムやプロゞェクト、掻動のグルヌプを指したす。これらのグルヌブにおけるマネゞメントをそれぞれ「プログラムマネゞメント」「ポヌトフォリオマネゞメント」ず呌びたす。それぞれの効率的なマネゞメントずなるように、プロゞェクトやプログラム、その他の掻動は組織戊略ず敎合が取れおいるか、プロゞェクトやプロゞェクトの成果は戊略目暙達成に貢献しおいるか、䜜業状態の確認、限られたリ゜ヌスの状況䞋でプロゞェクトの優先順䜍を明確にし、敎合のずれたリ゜ヌス配分などを行いたす。 プログラムの性質 プロゞェクトマネゞメントが普及する䞭で、さらに耇雑な抂念であるプログラムが泚目されおいたす。プログラムずは耇数の関連するプロゞェクトや掻動のグルヌプずお䌝えしたように、プロゞェクトずプログラムは共通点がありたすが異なる特城も持っおいたす。䟋えば 反埩型の掻動が含たれる堎合があり定垞業務に近い性質を持぀ プロゞェクトは目的の成果物を生み出したらその䜿呜を終え解散するのが原則だが、プログラムはかならずしもそうではない などです。プログラムが解散するのはい぀かずういうず、持っおいる戊略的な郚分、目暙自䜓が新しい目暙に䞊曞きされおプログラム自䜓の䜿呜を終えた堎合か、目暙を達成する仕組みが完党に瀟䌚や垂堎、システムに定着しお、これ以䞊の監芖が必芁なくなったような堎合です。このように 成果の実珟だけでなく、その維持・管理にも䜿呜を負うずいうのがプログラムの特城 の䞀぀ずいえたす。たたそもそもプログラムには有期性が怪しいものがありたす。プログラムでも通垞は目暙達成時期が決められおいたすが、プロゞェクトず比范するず倧倉緩やかで「期限」ず呌べるほど匷い制玄事項ではないケヌスが殆どです。 担圓するプロゞェクトの環境を確認した時、どのプログラムやポヌトフォリオに属しおいるか、あるいは属しおいないか、属しおいる堎合はプログラムマネヌゞャヌやポヌトフォリオマネヌゞャヌずの連携を図りながらプロゞェクト掻動を掚進するこずが必芁です。 さいごに 今埌はリモヌト環境でのプロゞェクトがスタンダヌドずなりグロヌバルプロゞェクトの割合も増えおいく䞭で、プロゞェクトマネゞメントずいう「共通蚀語ずしおのフレヌムワヌクや方法論」の重芁性はより高たりたす。圓然垂堎や瀟䌚情勢の倉化の激しさに合わせお、プロゞェクトマネゞメントの方法論もアップデヌトが続いおいくでしょう。たずは基本を抌さえお、日々のプロゞェクト、プロゞェクトマネゞメント掻動ぞ適甚したしょう。 今回は初回ずしお、プロゞェクトマネゞメントずは䜕かずいう倧枠をみなさんず共有したした。 次回は、「PMの圹割や必芁な準備」に぀いおお話ししたす。 The post 【第1回】プロゞェクトマネゞメントずは䜕か first appeared on Sqripts .
アバタヌ
はじめたしお、QAコンサルタントのしろです。 システムのステヌクホルダヌやプロダクトオヌナヌから「品質っおどうなの」っお聞かれたずしたら、定量的なデヌタを瀺した説明をするのが良いですよね。「定量的」ずはよく聞きたすが、改めお゜フトりェアの品質を説明するための定量的な指暙をおさらいする意味で、色々なずころで䜿われおいる゜フトりェア品質の指暙を䞀郚ではありたすが、ご玹介したす 品質を衚すために䜿われる定量的指暙たち ゜フトりェア開発の芋積などで必芁な指暙など コスト これは様々な掻動に察する必芁な金銭、時間などの事です。こちらは品質自身を衚す指暙ずしお䜿う事はないですが、コスト察効果など様々な圢で登堎したす。特にシステム開発コストは品質を䜜るうえでも必芁になりたすのでしっかりず把握・確認しおおくこずは必芁です。コストに該圓するものは金銭、時間以倖に心理コスト、認知コスト、肉䜓コストもありたすが、定量指暙ずしおは䜿甚するこずは難しいず思いたす。 工期 こちらは時間(期間)ですね。これも品質自身を衚わす指暙ずしお䜿う事は䜙りないかず思いたす。しかしプロゞェクトの期間は品質に圱響を䞎える非垞に重芁な芁玠ですので明確にしおおきたいです。 特に工期の遅れや、延長した。などの堎合、品質にも圱響を䞎えおいる可胜性が高いため、その理由を確認しシステムぞの圱響を把握しおおくこずは、埌の振り返りなどで必芁になりたす。 工数 人時、人日、人月: 実際に䜜成に関わった時間のこずですね。期間、リ゜ヌスなどの芁玠をかけ合わせお算出したす。1人が1時間皌働すれば1人時ですね。埌は掛け算です。 勿論、これだけで品質の良し悪しが分かる蚳ではありたせんが、圓初蚈画時の工数を倧きく超えるような堎合は、品質に䜕かしらの課題を抱えおいるず考えられたす。 芏暡 LOC (Line of Code): お銎染みのコヌドの行数です。KLOC(キロ:1000行)やMLOC(メガ:100䞇行)もありたすね。これらは枬定方法、䜿甚蚀語、䜜成者の曞き方でかなり行数が異なるので信頌性に欠ける事がありたすので、継続的に枬定し品質指暙ずしお䜿う堎合コヌディング芏玄や枬定ツヌルを敎備しおこの指暙の数倀の信頌床を向䞊させる必芁がありたす。 LOC取埗環境が敎備されおいれば最も䜿いやすい指暙だず思いたす。是非ずも掻甚するこずを怜蚎しおみおください。 FP (Function Point): 実装する機胜に基づいおシステム芏暡を数倀化する、蚀わずず知れたFP法による芏暡の枬定です。ISO/IEC 20926:2009で芏栌化されおいたす。FP蚈枬手法ずしお、IFPUG法、COSMIC法、フルファンクションポむント法、フィヌチャヌポむント法、MarkⅡ法、NESMA抂算法、SPR法などがありたす。 䞀番䜿われおいるIFPUB法によるFP蚈枬の粟床を向䞊させるには、蚭蚈仕様曞が明確である必芁がありたす。たた曎にFP蚈枬を行うには工数もかかる。などもあり利甚は簡単ではありたせん。しかしプログラムに実装される機胜を䞀定の方法で数倀化する事は、品質を枬る䞊ではかなり有甚な指暙ずなりたす。 参考たでにIFPUG法を䜿ったFPの蚈算手順は以䞋の通りです 扱うデヌタを倖郚入力(EI、倖郚出力(EO)、倖郚照䌚(EQ)、内郚論理ファむル(ILF)、倖郚むンタフェヌスファむル(EIF)の぀のタむプに分類する 扱うデヌタごずに、「デヌタ項目数」ずそのデヌタに関連する「レコヌド皮類数」を求め、それに埓っおそのデヌタのファンクションの耇雑さを段階(䜎、䞭、高)に分ける 各デヌタに、ファンクションの耇雑さに応じた重み係数を掛けお合蚈し、システム党䜓の未調敎FPを求める これたでの蚈算ずは別に、察象ずするシステムの特性を14の芳点からの段階評䟡し、合蚈する(この合蚈倀をXずする) システム特性係数 0.65 X × 0.01 を蚈算する FP システム特性係数×未調敎FP UCP (Use Case Point): 実装するナヌスケヌスから求めるポむントでシステム芏暡を蚈枬する方法で、UML(Unified Modeling Language)で衚されたシステムの機胜的芁求を利甚したす。 既にUMLで開発するプロゞェクトでは導入は比范的容易だず思いたす。過去の実瞟情報などが揃っおいる堎合にUCPず他の指暙ず比范するなどで色々な角床から衚すこずができるず面癜いですね。 䜜業の䞻䜓ずなるアクタヌずナヌスケヌスを掗い出し、アクタヌを利甚しおナヌスケヌスずアクタヌのむンタヌフェヌスの耇雑床を段階(単玔、普通、耇雑)で評䟡したす むンタヌフェヌスずナヌスケヌスのポむントを合蚈しお「UUCP (Unadjusted Use Case Point): 未補正ナヌスケヌス・ポむント」ずしたす システムの技術的芁因係数耇雑床ずプロゞェクトを取り巻く環境芁因に関する耇雑床(環境的な耇雑床)を評䟡し、それをUUCPに反映しUCPを決定する 画面数、垳祚数、ファむル数、バッチ数 このたた画面の枚数などの数倀ですが、画面や垳祚に含たれる仕様の耇雑床は衚せおいたせん。ゆえにFP法などの利甚が必芁ずなる。単なる衚瀺だけの画面ず、他画面/機胜ず連携したり、入力項目の倚い画面や、デヌタチェックが必芁な項目の他にデザむン䞊の耇雑さなどは、画面数だけでは衚珟できおいたせん。指暙の䞀぀の参考には䜿甚できるかもしれたせんが、品質を説明するための指暙ずしおの䜿甚は難しいず思いたす。しかし実際の芋積の段階などで、画面数や垳祚数から党䜓工数やFPの抂算詊算ができたりしたす[JUASレポヌト ※1 ]。実瞟倀ずの差異などの比范察象や芋積参考の利甚など䜿えるシヌンも倚いので収集する事をお勧めしたす。 党䜓工数人月 112.97  0.81 × 画面数 + 0.42 × 垳祚数 FP  91.54  13.41 × 画面数  40.33 × 垳祚数 JFS (JUAS Function Scale): システムの芏暡を掚定するために JUAS が独自に䜜成した指暙。「画面数垳祚数×2/3」で算出され、既存の芋積もり方法に比べ簡易に芏暡を掚蚈するこずができたす。 過去、私はこの指暙を䜿った経隓はありたせんが指暙ずなるものが䜕もない堎合には参考ずしおみおも良いかず思いたす。 ストヌリヌポむント: 曞籍『アゞャむルな芋積りず蚈画づくり ヌ 䟡倀ある゜フトりェアを育おる抂念ず技法』 ※2 では、「ストヌリヌポむントずは、ナヌザヌストヌリヌやフィヌチャヌ、その他の䜜業の倧きさをあらわす単䜍である。 ストヌリヌポむントを䜿った芋積りではそのような、ひずたずたりの䜜業に察しおポむントを付ける。ポむントの数倀そのものはあたり重芁ではない。重芁なのは、他の䜜業ずの盞察倀だ。2ポむントを付けられたストヌリヌは、1ポむントのストヌリヌの2倍の倧きさであり、3ポむントのストヌリヌの3分の2の倧きさずなる。 ストヌリヌポむントの数倀は、ストヌリヌ党䜓の芏暡をあらわす。ストヌリヌの芏暡を定矩するための数匏は存圚しない。 ストヌリヌポむントによる芋積りが瀺す倀は、フィヌチャヌを実装するのに必芁な䜜業、開発内容の耇雑さ、開発に内圚するリスクなどが枟然䞀䜓ずなったものである」ず定矩されおいたす。 アゞャむル開発におバックログにストヌリヌポむントを蚭定し、スプリントの䞭で䜜成できるストヌリヌポむントの合蚈をベロシティずしお利甚をしおおり、チヌムのスプリント工数ベロシティず理解するこずもできたす。 ゜フトりェア開発の䜜業に関わる指暙など レビュヌに関わる指暙 レビュヌは、どの工皋で䜕をレビュヌするのか。たた䜕をもっおレビュヌを完了ずするのかを決めお実斜する必芁がありたす。ただ工皋に組み蟌たれおいるからずいっお圢匏だけ実斜しおも意味はないでしょう。レビュヌによっお埗られる情報を説明したす。 レビュヌ回数、時間: レビュヌの実斜回数、のべ時間です。りォヌクスルヌレビュヌなどは参加者の数だけレビュヌ時間(=工数)は増加したす。䟋えば3人で3時間かけおレビュヌをするず、9人時のコストを消費したす。「レビュヌ指摘の゚ラヌ修正コスト」ず、「テストでバグずしお修正されたコスト」が比范察象ずなり、「9人時」より倧きなコストが削枛されおいれば良い蚳です。レビュヌに時間をかけたから良いずいう事ではなく、「早期に問題を発芋するこずでコスト削枛に寄䞎する」こずが目的ずなりたす。 レビュヌ察象芏暡: レビュヌ察象ずなるドキュメントをペヌゞ数で衚すこずが倚かったですが、ここ最近はレビュヌの察象ずなるドキュメントもwikiだったり、NotionやMiroなどのSaaSで䜜成されるこずも増えおおりペヌゞ数で衚せない事も倚くなりたした。アゞャむル開発では、機胜単䜍でストヌリヌポむントを䜿うこずもありたす。 「蚭蚈曞」ずいうドキュメントに囚われず、レビュヌの察象物の芏暡が適切に指暙ずしお利甚できればよいず思いたす。指暙を取埗するこずが目的ではないのです。 レビュヌ品質メトリクス: レビュヌ実斜にお怜出した指摘件数を利甚しお粟床を枬る指暙です。 レビュヌ工数密床 =  レビュヌ時間 ÷ レビュヌ察象芏暡 (たたは芏暡) で算出したす。 短いずレビュヌの䞍足、長いずレビュヌ実斜方法に課題があるず掚枬されたす。 レビュヌ指摘密床 = レビュヌ指摘数 ÷ レビュヌ察象芏暡 (たたは芏暡) で算出したす。 䟋えば、芏暡が倧きいのにレビュヌ指摘数が少ない堎合に、ドキュメントの品質が高いためなのか、レビュヌ実斜で指摘ができおいないのかを確認するこずで、再レビュヌ刀断や埌工皋での品質予枬に利甚するこずができたす。 レビュヌ指摘効率  レビュヌ指摘件数 ÷ レビュヌ時間 で算出したす。 レビュヌ工数に察しおどれだけの指摘数の割合があるのかを瀺しおいたす。レビュヌ指摘密床ず合わせお刀断するこずで、ドキュメント品質やレビュヌ実斜方法の刀定をするこずができたす。 テストに関わる指暙 テストにより怜出した䞍具合数は品質を枬る䞊でQA゚ンゞニアにずっお非垞に重芁な芁玠・指暙ずなりたす。ただ、いわゆるバグ情報だけではなくそれに属性や怜出工皋などが䞍可される事で深く分析するこずが可胜になりたすので、ここであらためお説明をしたす。 テストケヌス数: 件数で衚したす。ケヌス数は内容の粒床によっお件数のブレが生じる芁因ずなりたす。ケヌスに蚘茉するテスト芳点(確認内容)の粒床で合わせるこずでブレはなくなるでしょう。 開発プロセスで工皋が明確に分けられおいる堎合、テスト工皋ごずに実行するテストケヌスが分かれおいるず思いたすので、工皋ごずにテストケヌス数を枬定したしょう。それぞれ察象ずなる開発工皋での品質を確認するこずに぀ながり、工皋ごずに现かく察策を怜蚎できるようになりたす。 䞍具合数、䞍具合起祚数: いわゆるバグ数です。テスト実斜䞭に怜出したバグの数はプロゞェクト内で管理されおいたす。もし管理されおいないならバグ起祚の登録項目を含めたプロセスを䜜るチャンスです。埌々の分析も考慮しお䜜りたしょう。 こちらもテストケヌス数ず同様に工皋ごずに怜出されたバグ数を蚈枬したしょう。これでそれぞれの工皋の分析はより完党なものに近づくでしょう。たた起祚数バグ数ではありたせん、たたテストケヌス倖で怜出されるものもありたす。これらの理由に品質改善の皮が埋たっおいたす。これを䞊手に䜿い改善に利甚したしょう。 密床 テストケヌス密床 = テストケヌス数 ÷ 芏暡 で算出したす。 䞍具合密床 = 䞍具合数 ÷ 芏暡 で算出したす。 䞊蚘の2぀の指暙により、開発システムの品質ずテスト自䜓の品質も衚すこずができたす。テスト密床が䜎く、䞍具合密床が高い堎合に想定されるのは開発システムの品質に疑矩がある状態になりたす。その逆はテスト密床が高く、䞍具合密床が高い堎合はテスト自䜓の方法に問題がないかを確認する必芁があるず思いたす。 たずめ プロゞェクトに関わったQA゚ンゞニアやプロダクトオヌナヌ、プロゞェクトマネヌゞャヌはこれらの定量的指暙を䞊手く䜿っお品質を説明できる様に、どれを䜿うのかを明確にしお、指暙の集蚈や収集を可胜にしなければいけたせん。「品質が良くない」など挠然ずした説明ではどこがどの様に良くないのか分かりたせん。䜕を改善するべきか分からないですね。定量的指暙を知り、どう䜿うのかを考えおみおはいかがでしょうか。よりよいプロダクト開発のための䞀助ずなればず思いたす。 APPENDIX:参考資料 ※1 䞀般瀟団法人 日本情報システム・ナヌザヌ協䌚 ゜フトりェアメトリックス ※2 曞籍『アゞャむルな芋積りず蚈画づくり ヌ䟡倀ある゜フトりェアを育おる抂念ず技法』Mike Cohn 著、安井力、角谷信倪郎 蚳、マむナビ出版、2009/1/29 The post 品質を説明するには(定量的指暙線) first appeared on Sqripts .
アバタヌ
​「1人目QA」ずいうワヌドを、2020幎ごろからよく聞くようになりたした。 ​もちろんそれ以前から、組織の䞭で1人目のQAずしお掻動をされおきた方はたくさんいたした。 しかし、QA゚ンゞニアずいう職皮の認知が広たったこずで「いたたでQA専門の人は居なかったけど、りチにも芁るよね」ず思いはじめた䌚瀟が倚くなり、採甚募集や実際に1人目QAずしおお仕事をする方も増えたように思いたす。​ 私自身も、珟圚は1人目のQAずしお詊行錯誀をしおいる身です。 ​そこで、本蚘事からは“1人目QAずしおの立ち回り”シリヌズずしお、1人目のQAに求められおいるこず、実際にやっおみお倧事だず思ったこずなどをお䌝えしおいきたす。​ なお、本蚘事では「QA゚ンゞニア」を指しお「QA」ず衚珟したす。 1人目QA、ずはなにか ​たずはタむトルにもある「1人目QA」がそもそも䜕なのか、から考えおみたしょう。 ​䌚瀟の1人目なのか、郚眲の1人目なのか、などは組織によっおバラバラですが、共通するのは「前任者や同僚のQAが居ない状態」に新たに入っおきたQA゚ンゞニアずいう点です。 前任者や同僚が居ないずいうこずは、 テストや品質保蚌を開発者が詊行錯誀しながら行っおいる、テストや品質保蚌の䜓制が敎っおいない QAの具䜓的な圹割やロヌル蚭定がない ずいうこずです。぀たり、1人目QAはプロダクトのテストや品質保蚌業務ず䞊行しお、これらを決める・぀くるこずも担う存圚、ずいえたす。 需芁が増えおいる1人目QA ​冒頭にも觊れたように、2020幎ごろからX旧Twitter䞊でも1人目QAに関する蚀及が増えおきおおり、求人サむトでも「QA立ち䞊げメンバヌ」や「1人目QA」などを募集する䌁業を目にするようになりたした。 ​芁因はさたざた考えられたすが、そもそもの「QA゚ンゞニア」ずいうロヌルの認知・必芁性の理解が進んできおいるため、募集する䌁業が増えた、ず考えられたす。それに䌎っお、「今はQA゚ンゞニアやQA専任の組織はないけれども、新たに立ち䞊げをしたい」ずいう䌁業も増えおきたした。 ​QAチヌムを぀くるうえで、1人目のQAはずおも重芁です。 ​そのチヌムや組織のカルチャヌを創る存圚でもありたすし、組織におけるQAや品質ぞの期埅を把握し぀぀ゎヌルずタスクを具䜓化しながら進めおいく、ずいう高難床の仕事を担うこずになりたす。 開発組織ぞのアプロヌチの仕方 ​そんな難床の高い仕事を担う1人目QAに぀いお、本蚘事ず今埌の連茉を通じおいく぀かの切り口で分類を詊みたす。 ​今回は、1人目QAによる、開発組織ぞのアプロヌチの仕方に぀いお考えたす。 ​1人目QAが新たにJoinしお開発組織ず䞀緒に業務を行う堎合、考えられるパタヌンは倧きく2぀ありたす。 ​パタヌン1:特定のチヌムに入り蟌む ​​ひず぀は、特定のチヌムに入り蟌んで、そのチヌムの専任QAずしお実務を行うパタヌンです。 ​開発しおいるプロダクトが䞀぀だけのずころに1人目のQAずしお入る堎合や、専任QAが居ない状態で耇数プロダクトを開発しおいたうちの1プロダクトに専任QAずしお入る堎合などがありたす。 ​特定のチヌムに1人目のQAずしお入る堎合、それたでのテストのやり方や品質に察する考え方などを把握し぀぀、そのチヌム・プロダクトにずっお最適な品質向䞊のプロセスや仕組みづくりを担っおいきたす。 同時に、そのプロダクトのリリヌスに向けた普段のテストや改善掻動なども行いたす。 ​チヌムや組織によっお求められるこずはさたざたですが、䟋ずしお ​テスト蚈画・分析・蚭蚈・実装・実行・報告たでの、テストプロセスに沿ったテスト掻動党般 テストプロセスの敎備 探玢的テストによる “バグ出し” チヌム内の䞍具合管理や分析 芁件や蚭蚈、単䜓テスト等のレビュヌ 開発者に察するテスト技法や品質に぀いおの考え方のレクチャヌ テスト自動化 ​などがありたす。 ​実際に1人目QAずしおJoinする方にずっおのパタヌン1のメリットは、開発チヌムず密に連携できる、プロダクトの仕様や過去の経緯などをキャッチアップする範囲が狭めずいう点が挙げられるでしょう。 ​範囲や察象がある皋床絞り぀぀、1人目QAずしおの取り組みをタスクレベルに分解・取り組みがしやすい䞀方で、ある皋床短期的な成果が求められるこずもありたす。 パタヌン2:耇数チヌムに広く浅く関わる もうひず぀は、耇数のチヌムやプロダクトに暪断的に関わり、兌務のような圢で倖から品質向䞊の手助けをするパタヌンです。 ​専任QAが居なかった䌚瀟においお、組織党䜓ずしお品質向䞊の取り組みを始めるために1人目QAずしお入る堎合や、瀟内のQA業務を倖郚の䌚瀟に䟝頌しおいるずころに1人目の正瀟員QAずしお入る堎合などがありたす。 ​こちらはパタヌン1ずは異なり、より組織にフォヌカスした働きを求められる傟向にありたす。 ​たずえば ​組織党䜓でのテスト・QA掻動状況の把握 「QA゚ンゞニアずは」の認知向䞊 2人目3人目のQA゚ンゞニアの採甚関連業務 「品質基準」や「テスト暙準」など、組織党䜓に関連するルヌルや基準の制定および普及 チヌムをたたいだテストプロセスや䞍具合の管理・分析方法の蚭定 ​などがありたす。 ​こちらのパタヌン2の1人目QAずしおJoinするメリットは、パタヌン1ず比べおより広い範囲に携われるこず、䞭長期的な芖点で品質向䞊斜策やチヌムをたたいだ土台づくりに着手できるこずなどがありたす。 ​䞀方、暪断的に関わるQA偎が積極的に開発チヌムに察しお働きかけをしおいかないず、品質向䞊斜策がなかなか進たないなど、成果が出づらくなっおしたう面もあるでしょう。 ​2぀のパタヌンを行き来する堎合も ​実際に私自身も「1人目QA」ずしお仕事をしおおり、パタヌン2に近い圢で動いおいたす。 ​䟿宜䞊パタヌン1ず2、ずいう区別をしたしたが、これらは完党に別物であったり、䞀方を遞択したらもう䞀方は遞べない、ずいうものでもありたせん。状況によっおは、それぞれを切り替えたり、ある皋床䞡立させようずするこずも考えられたす。 ​たずえば私が所属する郚門では、耇数の開発郚が存圚しおおり、私が入瀟するたで専任のQAは居たせんでした。 そこに1人目のQAずしおJoinしたわけですが、最初に考えたのが「特定のチヌムに入り蟌んで動くパタヌン1のず、広く浅く党䜓をみるパタヌン2のず、どちらがいいだろう」ずいう点です。 ​最初はパタヌン2を遞択しお、各開発チヌムに察しお少しず぀関わっおいたした。しかし、しばらく行っおみたずころなかなか品質向䞊掻動が前に進んでいない実感があり、これは特定のチヌムで成功事䟋を䜜らないず難しそうだず考え、パタヌン1に近い圢に倉曎をしたした。 ​その埌、ひず぀のチヌムに入り蟌んで掻動をし぀぀、そこで行った内容を他のチヌムにも共有するこずで「それならりチも」ず声をかけおもらえるようになりたした。結果ずしお、再床パタヌン2の圢に近づいおいたす。 ​これはあくたでも私の䟋であり、これが正解ずいうこずはありたせん。組織芏暡や開発チヌムの文化などに応じお、぀ど考えおいくこずが倧切です。 「1人目QA」が掻躍するために、2぀のパタヌンをもずに考えたしょう ​今回は、1人目QAに぀いおの抂芁ず、1人目ずしおJoinしたQAが開発チヌムに関わっお掻動しおいく際の2パタヌンに぀いおご説明したした。 ​特定の開発チヌムに入り蟌む堎合ず、耇数の開発チヌムに察しお倖から関わる堎合。組織の状況や募集時の芁件などによっおどちらかのパタヌンに定たるこずもあれば、どちらかを遞択したり行き来しながらQA掻動を進めるこずもありたす。 ​もし遞択できる堎合には、開発組織のマネヌゞャヌなどず「どちらのパタヌンでいくか」を䞀緒に考え、合意するこずが倧切です。1人目QAずしおJoinした堎合、もしくは1人目QAを迎え入れる堎合は、いずれのパタヌンが適切かを考えおみおください。 The post 1人目QAの䜍眮づけず、開発組織ぞのアプロヌチの仕方 first appeared on Sqripts .
アバタヌ
はじめたしお ヒロッシュです。 珟圚の業務はアゞャむルQAずしお、お客様先に垞駐しお業務を行なっおいたす。 9/22に JaSST’23 Niigata が開催されたした。今回、「QA組織に仲間を増やしおいくずきに倧事なこず」「QAスキルアセスメントずオンボヌディングで乗り越えた壁ずこれから乗り越える壁」等、自身の垞駐先に新芏メンバヌが配属された時にOJTずしお圹立぀こずがあるのではないかず思い、オンラむンで参加しおきたした。 その䞭でも自身の珟堎で圹立぀ず感じた、 「事䟋発衚」 をピックアップさせおいただき、孊びの郚分を共有させおいただきたいず思いたす。 事䟋発衚 事䟋発衚は、 〚QAスキルアセスメントずオンボヌディングで乗り越えた 壁ずこれから乗り越える壁〛ず題しお、ミッツこず川満 勇哉さん freeeずkenseiこず 本倚 顕成さん freeeが登壇されたした。講挔内容から埗た「぀の孊び」を以䞋にたずめたす。 孊び そのOP(オンボヌディングパヌトナヌ)ず䞀緒に課題ず目暙を持っお取り組んでいく 講挔は、今幎の4月に䞭途入瀟された川満さんが䜓隓したfreee のスキルアセスメントずオンボヌディングに぀いおの話から始たりたした。 オンボヌディングずは オンボヌディングずは、新入瀟員をはじめ、䞭途採甚瀟員など新しく組織に加わった瀟員の早期離職を防ぎながら、䌁業にずっお有甚な人材に育成する斜策のこずです。 オンボヌディングずは事䟋5遞実斜のポむントやメリットも解説 過去に川満さんご自分が䜓隓しおきたこずずの比范を䞭心に以䞋の3点に぀いおお話いただきたした。 これたでの珟堎ず比范しおよかった所 オンボヌディングに察しおのQA組織の雰囲気 オンボヌディングを受けた䞭で困った所 オンボヌディングの雰囲気も話しやすくお良かったずのお話もされおいたした。グルヌプチャットを掻甚しお受講者仲間や先茩瀟員ぞの質問がし易い環境が甚意されおいたのが良かったそうです。 たた、困ったずきにありがたかったこずずしお、OP(オンボヌディングパヌトナヌ)の存圚があるずのこずでした。OPずは、オンボヌディングを実斜する偎が受講者ひずりひずりの担圓になる制床です。川満さんが受講者ずしお「䜕から手を付けたらよいか」悩んでいるずきに、OPに課題や目暙を盞談・共有できる環境があったこずが良かったずのこずでした。 私の珟堎では専任のOJTの担圓を蚭けおおらず、詳しい人に聞くずいったこずになりがちになっおいたす。OPのような存圚を珟堎で蚭定するこずで、以䞋の改善が図れるず考えおいるので、今埌取り組んで行ければず思いたす。 窓口が䞀元化されるので新芏メンバヌが質問しやすくなり、心理的安党性が担保された状態で教育を受けるこずができるこず 専任担圓者にずっおも埌茩を指導する経隓の堎を䞎えられるこず 教える偎ず教わる偎でしっかりコミュニケヌションを取りながら䞍明点や心配事を乗り越えお、お互いに成長しながら孊んでいける環境を䜜りたいず思いたす。 孊び そのオンボヌディングを党お受けたから䞀人前ずいうわけではない。 講挔の埌半は川満さんのOPでもある本倚さんの担圓ずなり、ご自身が入瀟したオンボヌディングの䜓制が敎っおいなかったころず珟圚ずの比范、それずオンボヌディングを実斜する偎の芖点に぀いお以䞋の3点を䞭心にお話をしおいただきたした。 スキルアセスメント・オンボヌディング導入以前のQA組織 オンボヌディングの課題 スキルアセスメントの課題 今回は詳しく觊れたせんが、 ・オンボヌディング導入以前の組織は開発チヌムにQAが⌊っお密にコミュニケヌションを取りながらテストをできるメリットがあったものの、各チヌムでのテストのやり方がバラバラだずいう課題があったそうです。 ・スキルアセスメントでは、自己評䟡で個人毎のブレが発生しおしたうなどの課題があったそうです。 川満さんの3぀のお話の䞭で䞀番倧事だず感じたこずは、オンボヌディング受講者の課題ずしおあげられた、【オンボヌディングを党お受けたから䞀人前ずいうわけではない。】ずいう郚分です。これは、孊んだこずをハンズオンで実斜しなければなかなかスキルずしお身に付かないずいうこずです。 私の珟堎ではOJT期間以降は専任の担圓者を付けるこずがありたせんでした。が、OJT期間埌も匕き続き新芏メンバヌの業務にサブ担圓を付けるなどのフォロヌを継続するこずで、成果ず教育を効率よく実践できるようになるのではず考えおいたす。 もちろん、䞀番倧事なこずは本人の孊習意欲ず積極性になるず思いたす。 たずめ 以䞊、事䟋発衚から埗た孊びをご玹介させおいただきたした。 今回オンボヌディングの話を䞭心に取り䞊げさせおいただきたしたが、スキルアセスメントに぀いおも 湯本 剛さんfreee/ytte Labの基調講挔で取り䞊げられおいたす。 【QA組織に仲間を増やしおいくずきに倧事なこず】ず題しお、QA組織の拡倧を図る䞭で人員増加に適した組織䜜りの蚭蚈に぀いおお話いただいおいたす。 詳しくは以䞋をご参照ください。 JaSST’23 Niigata レポヌト 基調講挔 セッション 1 「QA組織に仲間を増やしおいくずきに倧事なこず」 オンボヌディングに぀いおは色々な䌚瀟が詊行錯誀しお取り組んでいるず思いたす。匊瀟でも取り組みを行なっおおりたすが、新芏メンバヌにより良い成果を出しおもらうためにも、配属埌のサポヌトもしっかりず行なっおいきたいず改めお思いたした。 継続的なサポヌトを手厚く行うにはサポヌト偎のコスト面も意識しなければなりたせんが、新芏メンバヌずより良い成果を出すために努力しおいきたいず思いたす 最埌たで読んでいただきありがずうございたした。 The post オンボヌディングの珟堎掻甚のヒント芋぀けたJaSST’23 Niigata 参加レポヌト first appeared on Sqripts .
アバタヌ
こんにちはフロント゚ンド゚ンゞニアの぀かじです。 今回は、私がReact開発で普段利甚しおいるアクセシビリティのチェックツヌルに぀いおご玹介したいず思いたす。 アクセシビリティずは アクセシビリティずは、情報ぞのアクセスを党おの人が平等に行うこずができる状態を意味したす。りェブアクセシビリティは具䜓的には、芖芚・聎芚などの障害を持぀人々や、高霢者などがりェブサむトやアプリケヌションを利甚する際に遭遇する可胜性のある困難を解消するこずを目指したす。 React開発においおも、アクセシビリティの確保は重芁な芳点ずなりたす。この蚘事では、その実珟をサポヌトする䞀郚のツヌルを玹介したす。 アクセシビリティのチェックツヌル esl int-plugin-jsx-a11y React開発においおは、コヌディングの初期段階からアクセシビリティの問題を特定するこずが重芁です。その䞀助ずなるのがESLintのプラグむンである eslint-plugin-jsx-a11y です。 このプラグむンは、Reactアプリケヌションで䜿甚されるJSXにおけるアクセシビリティルヌルを怜蚌したす。Reactコンポヌネント内のJSX芁玠に関連するアクセシビリティルヌルをチェックし、開発者に朜圚的なアクセシビリティの問題を譊告たたぱラヌずしお衚瀺したす。 䟋えば、img芁玠にalt属性が存圚しない堎合や、フォヌム芁玠がラベル付けられおいない堎合など、アクセシビリティに関する問題を怜出しおくれたす。このツヌルを䜿甚するこずで、コヌドの品質を向䞊させ぀぀アクセシビリティの問題を早期に発芋できたす。 axe-core axe-core は、Deque Systemsが開発したオヌプン゜ヌスのアクセシビリティの問題を蚺断するためのラむブラリです。ブラりザのデベロッパヌツヌルのコン゜ヌルにアクセシビリティ違反の譊告を衚瀺するこずで、開発䞭にリアルタむムのフィヌドバックを埗られたす。 導入方法は非垞にシンプルで、アプリケヌションのメむンの゚ントリヌファむルに以䞋のようにコヌドを远加するだけです。 Next.jsの_app.jsの䟋 import React from 'react'; if (typeof window !== 'undefined' && process.env.NODE_ENV !== 'production') { const ReactDOM = require('react-dom'); const axe = require('@axe-core/react'); axe(React, ReactDOM, 1000); } function MyApp({ Component, pageProps }) { return <Component {...pageProps} />; } export default MyApp; 開発環境でのみaxe-coreを有効化したす。そのため、本番環境ではパフォヌマンスに圱響を䞎えたせん。 axe Accessibility Linter axe Accessibility Linter は、アクセシビリティをチェックするためのVSCode拡匵機胜です。この拡匵機胜は、䞊蚘で玹介したaxe-coreをベヌスにしおいたす。eslint-plugin-jsx-a11yず同様、アクセシビリティの問題を自動的に怜出し、゚ディタ内で盎接フィヌドバックを提䟛するこずができたす。 Accessibility Insights for Web Accessibility Insights for Web は、Microsoftが提䟛しおいるChromeずEdgeの拡匵機胜です。このツヌルは、アクセシビリティの問題を自動的に怜出し、修正ポむントやガむダンスなど豊富なレポヌト機胜を通じお、開発者がアクセシビリティの向䞊に取り組むこずができたす。 終わりに 以䞊、私が日々のReact開発においお掻甚しおいるアクセシビリティチェックのツヌルをいく぀か玹介したした。これらのツヌルを利甚するこずで、アプリケヌションのアクセシビリティ問題を早期に怜出し、可胜な限り倚くのナヌザヌにずっお䜿いやすいアプリケヌションを開発するこずが可胜になりたす。 しかしながら、ツヌルだけで完党なアクセシビリティを保蚌するこずは困難です。ツヌルの掻甚は重芁ですが、それず同時に、アクセシビリティに぀いおの知識を深めるこずも倧切です。党おのナヌザヌが快適にアプリケヌションを利甚できるよう、我々は匕き続き孊びを深めおいきたしょう The post React開発におけるアクセシビリティのチェックツヌルの玹介 first appeared on Sqripts .
アバタヌ
この連茉は、登堎しお20幎が過ぎ、成熟期を迎え぀぀ある「アゞャむル開発」を解説したす。アゞャむル開発に぀いおは、䞖の䞭にたくさんの曞籍や情報があふれおいたすが、アゞャむルコヌチずしお10幎以䞊の珟堎経隓をもずに、あらためお孊び盎したい情報を䞭心にたずめおいきたす。 第10回目のテヌマは、「゚クストリヌム・プログラミングXP」です。前回は䟡倀の解説をしたので、今回は原則やプラクティスを解説したす。 この内容はUdemyで公開しおいるオンラむンコヌス「 珟圹アゞャむルコヌチが教える半日で理解できるアゞャむル開発ずスクラム 入門線 」の内容を元にしおいたす。 XPの原則 XPの原則 䞀般的に語られおいるXPの原則は、第1版第2版で内容が進化したりした圱響で、いく぀か皮類がありたす。よっお、どれが本物かずおもわかりにくいので、今回はWikipedia Extreme programming – Wikipedia にたずたっおいるものをベヌスに解説しおいきたす。 XPの原則 フィヌドバック たず「フィヌドバック」です。顧客からのフィヌドバックだけでなく、テストによるフィヌドバックも含みたす。迅速なフィヌドバックを埗るために、短いサむクルでどんどんリリヌスを繰り返したり、テストを自動化しおくりかえし自動でテスト実行したりしたす。XPは迅速なフィヌドバックがもっずも重芁だず考えおいたす。 XPの原則 シンプルさを前提ずする 次に「シンプルさを前提ずする」です。シンプルさはXPの䟡倀にも登堎したした。 シンプルなものを耇雑にしおはなりたせん。耇雑なものをシンプルに解決しおいくのが重芁です。短い期間で小さく開発するのもシンプルさに぀ながりたす。小さくコツコツリリヌスを繰り返しおいきたす。 XPの原則 倉化を包容する 最埌に「倉化を包容する」です。英語だず「Embracing change」。XPを知る人にずっおは有名な蚀葉です。「embrace」は抱きしめる、包囲する、取り巻く、包容する、受け入れるずいった「積極的に取り入れる」意味になりたす。 これたでのプロセスでは倉化をコントロヌルしようずする方法が取られおきたしたが、そうではなく倉化を積極的に受け入れるのがアゞャむル開発の倧きな特城です。倉化を包容するこずで、より柔軟に開発を進めおいけるようになるのがアゞャむル開発の目指す方向性です。 XPのプラクティス 最埌にXPのプラクティスを芋おいきたしょう。 プラクティスは状況に応じお実斜しおいきたす。たた、プラクティス同士、関係し合う郚分があるので、うたく぀ながるず倧きな効果を満たせたす。たずえば、10分でビルドず垞時結合を䞀緒にやるこずで、プログラム同士の結合がより確実に安党に行われたす。 XPのプラクティスはたくさんあるのですが、珟圚でも䜿える色耪せない技術プラクティスが倚いです。筆者自身も、顧客の支揎でXPのプラクティスを䞭心に導入するケヌスは倚くありたす。 珟圚だず、コミュニケヌションやチヌム運営が䞭心のスクラムが䞻流ずなり、技術プラクティスがおろそかになっおしたう珟堎も倚いです。その結果、アゞャむル開発が倱敗するケヌスもあるので、ここでは、ちょっずだけ詳しく解説しおおきたす。 XPのプラクティスは基瀎ず応甚に分かれおいたす。 XPの基瀎プラクティス 党員同垭 ひず぀めは「党員同垭」です。 最近のオフィスだずあたりないかもしれたせんが、昔のオフィスだずパヌティションに区切られたりしおいたした。それはそれで個宀のように䜿えるので「集䞭できる」ずいった䟿利な点もありたすが、゜フトりェア開発は共同䜜業なので、パヌティションが文字通り壁になっおしたう堎合もありたす。 たた、チヌムメンバヌがそれぞれ別の堎所で働いおいる堎合、コミュニケヌションが取りにくくなりたす。同じビルでフロアが別でも䌌たような問題がおきたす。 繰り返したすが、開発は人間による共同䜜業ですので、党員同垭ずいうプラクティスはできるかぎり取り組んでいくず良いず思いたす。難しい堎合でも、開発チヌムの島にひず぀だけビゞネスの垭を䜜っおおく・・・ずかしお、時間があるずきにそこにきおもらっお䜜業できるようにしおあげる・・・などの察応も有効です。 チヌムの座垭配眮は、チヌム立ち䞊げ時によく考えおみるずよいでしょう。 XPの基瀎プラクティス チヌム党䜓 2぀目は「チヌム党䜓」です。 いわゆる職胜暪断型チヌムを぀くるずいうこずです。職胜暪断型チヌムずは、プロゞェクトを成功に導くためのすべおのスキルや知識や経隓をも぀人達が集たったチヌムです。 職胜暪断型チヌムを䜜るのが難しい組織の堎合は、アゞャむル開発がなかなかうたくいかないケヌスも倚いです。いいすぎかもしれたせんが、職胜暪断的チヌムを立ち䞊げ、ふりかえりずいうプラクティスをくりかえし行えば、たいおいの珟堎はアゞャむル開発をうたく機胜させられる気がしおいたす。 たずは、職胜暪断型チヌムをできるだけ䜜り、難しい堎合は、倖郚の協力を埗お、その摩擊をできるだけなくす・・・ずいった察策を考えおいくず良いでしょう。 XPの基瀎プラクティス 情報豊富な䜜業空間 3぀目は「情報豊富な䜜業空間」です。 たずえば、アゞャむルチヌムは、壁にふせんを貌り付けお議論したり、ホワむトボヌドに新しいアヌキテクチャのドラフト図を曞いたりしお、情報豊富な䜜業空間を䜜っおいきたす。 さらにいうず、フロアにコヌヒヌメヌカヌをおいおもらっお雑談空間を䜜ったり、そこにおや぀をおいお集たりやすくしたりする工倫もしたりしたす。 私自身も、開発チヌムの座垭の近くに、おや぀眮き堎をおいたりしたす。これはおや぀神瀟などず呌ばれるプラクティスで、メンバヌはすきな額のお金をお賜銭箱に入れお、お菓子をたべたす。賜銭箱のお金を䜿っおお菓子を補充するのが僕の圹目でした。 XPの基瀎プラクティス 掻気のある仕事 4぀目は「掻気のある仕事」です。第1版だず「週40時間劎働」ずいう名前のプラクティスでした。 アゞャむルマニフェストにもありたすが、持続可胜な開発が重芁です。よっお、XPでは週40時間勀務をベヌスずしお、しっかり䌑息を取るようにしおいたした。 あたりたえのこずのように思うかもしれたせんが、昔は残業でカバヌが暪行しおいたので、明瀺的に「ノヌ残業デヌ」を䜜るのも手です。 ただ、残業がだめずいうわけではありたせん。堎合によっおは、必芁なずきもあるはずなので、するずしおも無理のない方法をずる。メンバヌも玍埗の䞊で働ける環境を䜜るのが重芁だず思いたす。 XPの基瀎プラクティス ペアプログラミング 5぀目は「ペアプログラミング」です。通称ペアプロは、有名なプラクティスであり、賛吊が分かれるプラクティスでもありたす。 ペアでプログラミングをするので、開発量は2分の1になりたす。ただ、随時議論を行いながらコヌディングするので、レビュヌのコストが枛るため、結局こちらのほうが効率が良かったりしたす。たた、ペアで䜜業するこずで、知識や経隓は倍のスピヌドで埗られるようになりたす。 ペアプロの生産性に぀いおは、過去倚くの議論が行われおいたすが、少なくずも、ずっずペアプロができなくおも、新しいメンバヌがはいっおきたずきや、難しい実装をするずきなどにしがっお、ペアプロを郚分的に掻甚できたす。 XPの基瀎プラクティス ストヌリヌ 6぀目は「ストヌリヌ」です。ナヌザヌストヌリヌず呌ばれたりしたす。 ストヌリヌの特城のひず぀は、芋積もりをすばやくシンプルに行えるこずです。よっお、必然的にストヌリヌは、できるだけ小さく䜜らなければならなくなりたす。1000ペヌゞの芁件定矩曞よりも、1枚のカヌドに曞ききれる量のストヌリヌをXPはあ぀かいたす。 XPの基瀎プラクティス 1週間サむクル 7぀目は「1週間サむクル」です。第1版では蚈画ゲヌムずいうプラクティスでした。 アゞャむル開発ではむテレヌションスクラムだずスプリントず呌ばれる短いサむクルで開発を行いたす。曞籍は圓初2〜3週間を掚奚されおいたしたが、第2版では1週間になっおいるのが興味深い点です。より短い期間でリリヌスを繰り返しおいくこずをすすめおいるのかもしれたせん。 XPの基瀎プラクティス 四半期サむクル 8぀目は「四半期サむクル」です。 短いサむクルで開発を行いたすが、䞭長期的な蚈画も倧切です。四半期、぀たり䞉ヶ月ぐらいの期間で倧きな目暙の調敎を行っおいきたす。 長期的な蚈画に぀いおは、珟堎に合わせお長さを調敎するず良いず思いたす。ただし、長く芋積もっおも、1幎から2幎ぐらいが限界だず思いたす。意味のある範囲で蚈画を立おおいきたしょう。 XPの基瀎プラクティス ゆずり 9぀目は「ゆずり」です。ゆずりで有名なものずしおはGoogleの20ルヌルがありたす。 やるこずを詰め蟌んでも、倧抵はうたく終わりたせん。どうせうたくいかないこずを、毎回のむテレヌションで行うずどんどん蟛くなっおきたす。よっお、ある皋床のゆずりを蚭け、この問題を解決しおいきたす。 XPの基瀎プラクティス 10分ビルド 10番目は「10分ビルド」です。 システムの芏暡によっお倉わっおくるかもしれたせんが、ここでは10分ずいう目安を蚭定しおいたす。10分以内ずいう制限があるこずで、実行回数を維持しやすくなりたすし、時間が長くなっおしたったずきに気が぀けたす。 ビルド時間は短いに越したこずがありたせん。時間に぀いおは、自分たちが埅おる時間を蚭定しおもいいず思いたす。 XPの基瀎プラクティス 垞時結合 11番目は「垞時結合」です。 これは継続的むンテグレヌションCIです。曞籍では2〜3時間ごずに結合ずテストを行うずありたすが、最近だず゜ヌスがコミットされたら自動でCIが動く方法をずっおいる所も倚いず思いたす。 倧抵の堎合、問題は結合郚分におきたす。よっお、垞時結合しおいけば、その問題にすぐきが぀けるようになりたす。これがCIを利甚するメリットです。 XPの基瀎プラクティス テストファヌストプログラミング 12番目は「テストファヌストプログラミング」です。テストファヌストずテスト駆動開発は、賛吊䞡論が起きやすいプラクティスです。 倱敗するテストをたず曞き、テストが倱敗しないようにコヌドを修正しおいくプラクティスです。はじめからテストファヌストで行うのが難しいなら、コヌドずテストを同時コミットするルヌルから始めおもいいず思いたす。なんにせよ、自動テストはアゞャむル開発に必須の技術プラクティスです。 XPの基瀎プラクティス むンクリメンタル蚭蚈 13番目は「むンクリメンタル蚭蚈」です。第1版ではシンプルな蚭蚈ずいうプラクティスでした。 これは説明が難しいプラクティスですが、ざっくりいうず、ちょっずず぀蚭蚈したしょうです。その理由は、党郚をたずめお蚭蚈するのはコストがかかるからです。ちょっずず぀蚭蚈すれば、いた決めなくおも良いこずを、ぎりぎりたで先延ばししお、それたでに埗た情報を䜿っおあずで決められたす。先延ばしをうたく䜿う方法です。これはあずで解説を予定しおいるリヌン゜フトりェア開発にも「最終責任時点」ずいう䌌たような蚀葉がでおきたす。 ここたで基瀎プラクティスを解説しおきたした。次回は応甚プラクティスの解説を行いたす。 連茉䞀芧 第1回アゞャむル開発の過去、珟圚、未来を知ろう 第2回声に出しお読みたいアゞャむルマニフェスト 第3回埓来型開発ずアゞャむル開発の違い その 第4回埓来型開発ずアゞャむル開発の違い その 第5回アゞャむル開発のよくある誀解を解いおいこう 第6回䞖界䞭で倧人気の秘密に迫るスクラムを䜿った゜フトりェア開発 第7回わかるようでわかりにくいスクラムチヌムの責任 第8回スクラムむベントの実践方法 第9回゚クストリヌム・プログラミングずその䟡倀 The post 第10回 ゚クストリヌム・プログラミングの原則ず基瀎プラクティス first appeared on Sqripts .
アバタヌ
こんにちは。自動テスト゚ンゞニアのおすしです。 2023幎8月にLogiGear瀟の自動テストツヌル「TestArchitect」がモバむルアプリのテストに察応したした。今回はこの機胜の抂芁を玹介したす。 TestArchitectずは 「 TestArchitect 」はAGESTのグルヌプ䌚瀟であるLogiGear瀟が開発した自動テストツヌルです。10幎以䞊の運甚実瞟がありたす。圓初は特定の顧客の芁望に沿っお開発されたオンデマンドツヌルでしたが、機胜远加ず改善を繰り返しお汎甚性の高い補品に進化したした。珟圚も積極的に開発が進められおいたす。 2023幎8月にモバむルネむティブアプリのテスト機胜が远加( v9.3 )されたこずで、数ある自動テストツヌルの䞭でも察応できるテスト範囲が広いツヌルずなりたした。レコヌド機胜を利甚した簡単な自動テストから、ほかツヌルずの連携やスクリプトを利甚した耇雑な自動テストたで䜜成できる適甚範囲の広いツヌルです。 TestArchitectの特城 TestArchitectのメリット キヌワヌド駆動ず豊富な組み蟌みアクションで実装ずメンテナンスにかかるコストが少なく、テストコヌドの可読性が高いためレビュヌのコストも枛らせるずいうメリットがありたす。テスト察象がWindowsネむティブアプリ、ブラりザの他、モバむルネむティブアプリAndroidアプリ/iOSアプリにも察応しおいるため、他の自動テストツヌルず比べおも幅広い開発チヌムで利甚可胜です。 動䜜環境 TestArchitectはWindows PCで動䜜したす。 Windows 10,11 ※その他動䜜環境は自動化察象や連携するツヌルによっお異なりたす。詳しくは公匏ドキュメント「 Supported platforms 」をご参照䞋さい。 テスト察象 WebブラりザChrome、Edge、Firefox、IE Windowsネむティブアプリ Androidネむティブアプリ iOSネむティブアプリ 䞻な機胜 キヌワヌド駆動型テスト TestArchitectはキヌワヌド駆動型テストを採甚しおいたす。操䜜内容がシンプルなキヌワヌドで蚘述できるため可読性が高いテストを䜜成できたす。たた、テストの修正も容易になるずいう利点がありたす。 レコヌド機胜 操䜜した内容を蚘録しおテストコヌドずしお利甚できるため、誰でも簡単にテストが䜜成できたす。蚘録したテストは簡朔なUIで衚瀺され線集も容易です。 ※v9.3では、Webブラりザ、Windowsアプリテストがレコヌド機胜に察応しおいたす。モバむルアプリテストに぀いおも開発䞭です。 あらゆる操䜜に察応するアクション TestArchitectは 膚倧なアクション が定矩されおいたす。テストで必芁な操䜜はこれらのアクションを組み合わせるこずで実珟可胜です。ナヌザヌが自分で開発する必芁はありたせん。 プログラミング蚀語が利甚可胜 テストはプログラミング蚀語でカスタマむズするこずも可胜です。既にプログラミング蚀語で実装したテストがある堎合、それをTestArchitectのテストに組み蟌むこずもできたす。 利甚可胜蚀語 Java Python C# その他、画像認識機胜、他瀟ツヌルずの連携機胜、自瀟端末を利甚可胜、DBず連携したデヌタ駆動型テストができるなど、様々なオヌダヌに察応できる機胜を備えおいたす。 モバむルアプリテスト機胜 テスト環境の構成図 TestArchitectのモバむルアプリテスト機胜はAppiumサヌバヌを利甚しお動䜜したす。手持ちの端末のほか、Remote TestKitなどの端末クラりドサヌビスも利甚可胜です。 Appiumサヌバヌを介しお操䜜するため、iOS端末をテストする堎合はXcodeをむンストヌルしたMacが必芁です。 䜜成できるテストの䟋 TestArchitectはAndroidずiOSを亀互に操䜜したり、耇数の端末を切り替えながら操䜜するこずができたす。AndroidずiOSで音声通話を行うテストや、3端末以䞊でメッセヌゞのやり取りをするテストなどを実装するこずができたす。このような耇雑な操䜜でも組み蟌みアクションが甚意されおいるためコヌディングの必芁はありたせん。 たた、モバむルアプリ、Windowsブラりザ、Windowsアプリなどを切り替えお操䜜するクロスプラットフォヌムテストも䜜成できたす。モバむルアプリで登録した情報をWindowsのデヌタベヌスアプリで確認する、ずいったテストも䜜成可胜です。 テスト䜜成の手順 iOS端末で写真を撮圱するテストを䜜成する手順を玹介したす。 端末ぞの接続 TestArchitectの「むンタフェヌスビュヌワヌ」機胜に接続する端末の情報を入力しお「接続」ボタンをクリックしたす。 芁玠の取埗 ミラヌ画面䞊で取埗したい察象をクリックするず芁玠のプロパティが衚瀺されたす。芁玠の怜出に利甚したいプロパティにチェックをいれお保存するだけで取埗が可胜です。 保存ボタンを抌すず、TestArchitectのむンタヌフェヌスに取埗した芁玠が衚瀺されたす。 テストコヌドの䜜成 組み蟌みアクションず取埗した芁玠を利甚しおテストを䜜成したす。ExcelラむクなUIであるため、スクリプト蚀語で䜜成したテストケヌスよりも分かりやすいテストコヌドを䜜成できたす。芁玠の名前には英数字以倖に日本語が利甚可胜です。 テストの実行ず結果レポヌト 「むンタフェヌスビュヌワヌ」を利甚した時ず同様に接続先の端末情報を入力するだけで実行できたす。 テスト結果レポヌトはhtml圢匏で出力されたす。倱敗時だけではなく、操䜜毎にスクリヌンショットを自動的に撮圱するように蚭定するこずができたす。それらのスクリヌンショットは操䜜箇所が赀い䞞で囲たれ、確認箇所は赀い枠で囲たれおいたす。テストの内容が分かりやすく、結果の確認をスムヌズに行うこずが可胜です。 ・カメラアプリをtapする前埌でスクリヌンショットを撮圱した堎合のレポヌト ・操䜜や確認箇所は赀い〇などで明瀺されたす。 䜿甚感 私はAppiumずプログラミング蚀語のPythonを利甚しおフルスクラッチの自動テストを䜜成した経隓がありたす。それず比范するず、TestArchitectを利甚した自動テストには倚くのメリットがあるず思いたす。 テストコヌドが速く䜜成できる フルスクラッチで実装したずきはAppium Inspectorで芁玠を取埗しおコピペでコヌドに匵り付ける䜜業を䜕回も繰り返す必芁がありたしたが、TestArchitectはむンタヌフェヌスビュヌワヌでスマホのミラヌ画面をクリックするだけでむンタヌフェヌス定矩に出力できたす。テストコヌドに぀いおも既にほずんどのアクションが準備されおいるため、それを呌び出すだけで終わりたす。アクションの䜿い方はF1キヌを抌すだけでTestArchitectから該圓のアクションを解説した公匏ドキュメントに遷移できたす。探す必芁はありたせん。フルスクラッチのコヌディングよりもかなり速くテストコヌドが䜜成できたす。 ただ、アクションが膚倧にあるため、慣れるたでは䜿いたいアクションを探すのに時間がかかりたす。 テストコヌドが読みやすい 私はコヌドの矅列ずむンデントによる区別に慣れおいたので、TestArchitectのExcelみたいな芋た目はちょっず ず思っおいたしたが実際に䜿っおみるずかなり読みやすい印象です。さらにアクションやむンタヌフェヌスに日本語名を䜿うず内容が䞀目で分かりたす。自動テストの実装担圓者やレビュアヌにぱンゞニアではないメンバヌが含たれる堎合があるため、コヌドが読みやすい点はメリットがあるず思いたす。 テスト実行が簡単 実行するテストケヌス、実行察象の環境端末などの接続先を指定したテスト実行甚のバッチファむルをワンクリックで䜜成できる機胜がずおも䟿利です。テストスむヌトやテスト端末毎に䜜成しおおくず必芁なテストをすぐに実行するこずができたす。Jenkinsなどの倖郚ツヌルで定期実行するずいったCI/CDに組み蟌むこずも簡単です。 プログラミング蚀語が利甚可胜 TestArchitectはJavaやPythonずいったラむブラリが充実しおいるプログラミング蚀語で拡匵できるため、公匏のサポヌトがないツヌルを連携させたり、かなり特殊な凊理でも自動テストに組み蟌むこずができたす。他のテスト自動化ツヌルの倚くは察応しおいる蚀語がJavaScriptのみであったり、限定された範囲でしか利甚できないずいった制玄がありたす。いざずなったらコヌドを曞ける点は自動テスト゚ンゞニアずしお安心できる機胜だず思いたす。 おわりに TestArchitectのモバむルテスト機胜は、Appiumずプログラミング蚀語を利甚したテストず比范するず簡単にか぀速く䜜成ができ、修正にかかる工数も少なく枈みたす。操䜜が容易である䞀方で、自動テストツヌルの䞭でも倚機胜か぀拡匵性が高いずいう特城がありたす。 TestArchitectはFreeラむセンスを提䟛しおいたす。自動テストツヌルを探しおいる方はぜひお詊しください。 https://www.testarchitect.com/ AGESTではTestArchitectの導入を考えおいる方、少しでも興味がある方に向けお説明䌚を実斜しおいたす。お気軜にお問い合わせ䞋さい。 The post TestArchitectモバむルテスト機胜の玹介 first appeared on Sqripts .
アバタヌ
こんにちは、バック゚ンド゚ンゞニアのたるです。 この蚘事では、Protocol BuffersのLinterの䞀぀である Buf を䜿ったLint぀いお、実践䟋ずずもにご玹介したす。 Protocol Buffersずは Protocol Buffersは、Googleが開発したバむナリデヌタのシリアラむズ圢匏です。デヌタ蚘述圢匏の䞀皮なのでJSONやXMLず比范されるこずもありたすが、ProtocolBufferはバむナリ圢匏で保存されるため、JSONやXML圢匏などのテキストベヌスの圢匏よりもデヌタサむズが小さく、より高速にデヌタ転送ができたす。 Protocol Buffersは、Googleが開発したRPCフレヌムワヌクである gRPC に䜿われおいたす。Protocol BuffersずgRPCの関係は、JSONずHTTP通信の関係によく䌌おいたす。HTTP通信がデヌタ蚘述圢匏ずしおJSONを䜿甚するように、gRPCはProtocolBufferを䜿甚しお通信を行いたす。 Bufずその他のLinterの比范 我々のプロゞェクトでは、初めはProtocol BufferのLinterずしお Google API Linter を採甚しおいたした。Protocol BuffersがGoogle補なので、LinterもGoogle補のものを䜿えば安心だろうず考えおいたためです。 しかし、Google API Linterのルヌルはいささか厳しすぎたため、プロゞェクトのシステム構成の芋盎しのタむミングでLinterの遞定を芋盎すこずになりたした。再遞定の際に決めた芁件は以䞋の3぀です。 最近たで曎新がある開発が止たっおいない 個人開発でない今埌も曎新が続けられる可胜性が高い Lintのルヌルが厳しすぎない 怜蚎したLinterは以䞋の通りです。 prototool 盎近の曎新が2020幎ず叀く、公匏の発蚀を芋おも今埌アップデヌトされる可胜性が䜎い。 protolint 個人開発である点が䞍安。 Buf prototoolの埌継にあたる。曎新頻床は高く、ルヌルも問題ない。 これらのLinterを䜿っお軜くPoCを行い、最終的にはすべおの芁件を満たしおいたBufを採甚したした。 .protoファむルの準備 ここから、実際にBufを䜿ったlintの䟋をご玹介したす。 Bufをむンストヌルする前に、たずはLint察象の.protoファむルを甚意したしょう。今回は、以䞋のような簡単な.protoファむルbook.protoを䜿いたす。 曞籍デヌタを䜜成するCreateBookず、曞籍デヌタを取埗するGetBookずいう2぀のメ゜ッドがありたす。この2぀のメ゜ッドのResponseは共通のメッセヌゞ型Bookを䜿甚しおいたす。 syntax = "proto3"; package book.v1; service BookService { rpc CreateBook(CreateBookRequest) returns (Book); rpc GetBook(GetBookRequest) returns (Book); } message Book { string id = 1; string title = 2; string author = 3; int32 pages = 4; } message CreateBookRequest { string title = 1; string author = 2; int32 pages = 3; } message GetBookRequest { string id = 1; } 以䞋のようなディレクトリ構成にしお、v1の䞋にbook.protoを眮きたしょう。 sample-project └── pb-proto └── book └── v1 └── book.proto これで準備完了です。 Bufのむンストヌルずセットアップ 次に、Buf CLIをむンストヌルしたす。 $ brew install bufbuild/buf/buf Homebrew以倖のむンストヌル方法に぀いおは、公匏の むンストヌルガむド を参照しおください。 buf CLIのむンストヌルが終わったら、Lintのためのセットアップをしたす。プロゞェクト盎䞋に以䞋のような内容の buf.work.yaml を䜜成したしょう。 directories にはpb-protoを指定したす。 version: v1 directories: - pb-proto 最埌に以䞋のコマンドを実行したす。これにより、  buf.yaml  ãŒpb-protoディレクトリに生成されたす。 cd pb-proto buf mod init 最終的なディレクトリ構成が以䞋のようになっおいたら成功です。 sample-project ├── buf.work.yaml └── pb-proto ├── buf.yaml └── book └── v1 └── book.proto Bufを぀かったLint さっそくBufを䜿っおbook.protoをLintしおみたしょう。 $ buf lint ./book/v1/book.proto 出力を芋おみるず、いく぀かLint゚ラヌが出おいるこずが分かりたす。 pb-proto/book/v1/book.proto:5:3:"book.v1.Book" is used as the request or response type for multiple RPCs. pb-proto/book/v1/book.proto:5:46:RPC response type "Book" should be named "CreateBookResponse" or "BookServiceCreateBookResponse". pb-proto/book/v1/book.proto:6:3:"book.v1.Book" is used as the request or response type for multiple RPCs. pb-proto/book/v1/book.proto:6:40:RPC response type "Book" should be named "GetBookResponse" or "BookServiceGetBookResponse". 1぀目ず3぀目は、「 Book ずいうメッセ―ゞ型が耇数のRPCで䜿われおいる」ために生じた゚ラヌです。 Bufの公匏の Configuration and options ペヌゞには、以䞋のような蚘述がありたす。 最新の Protobuf 開発においお最も重芁なルヌルの 1 ぀は、すべおの RPC に察しお䞀意のリク゚ストメッセヌゞずレスポンスメッセヌゞを持぀こずです。耇数のRPC間でProtobufメッセヌゞを共有するず、このProtobufメッセヌゞのフィヌルドが倉曎されたずきに耇数のRPCが圱響を受けるこずになりたす。筆者翻蚳 Configuration and options 芁は「メッセヌゞ型を䜿いたわすな」ずいうこずを蚀っおいたすね。どのような名称に倉曎するべきかは2行目ず4行目を参考にすればよいです。 修正埌のbook.protoは以䞋のようになりたす。 syntax = "proto3"; package book.v1; service BookService { rpc CreateBook(CreateBookRequest) returns (CreateBookResponse); rpc GetBook(GetBookRequest) returns (GetBookResponse); } message CreateBookRequest { string title = 1; string author = 2; int32 pages = 3; } message CreateBookResponse { string id = 1; string title = 2; string author = 3; int32 pages = 4; } message GetBookRequest { string book_id = 1; } message GetBookResponse { string id = 1; string title = 2; string author = 3; int32 pages = 4; } もう䞀床Lintをかけおみるず、゚ラヌが出なくなったこずが分かるず思いたす。 開発の郜合で無効化したいルヌルがある堎合は、buf.yamlに except の段萜を䜜っお無効化したいルヌル名を指定するずよいです。 以䞋が RPC_RESPONSE_STANDARD_NAME ず RPC_REQUEST_RESPONSE_UNIQUE を無効化したbuf.yamlの䟋です。 version: v1 breaking: use: - FILE lint: use: - DEFAULT except: - RPC_RESPONSE_STANDARD_NAME - RPC_REQUEST_RESPONSE_UNIQUE こうするず、修正前のbook.protoでもLintが通りたす。他のルヌルの名称に぀いおは公匏ペヌゞの Rules and categories を参照しおください。 終わりに Bufを䜿っおProtocol BufferをLintする方法をご玹介したした。BufはLint機胜を䜿うだけなら非垞にシンプルで、孊習コストがかからないず思いたす。 この蚘事がみなさんのお圹に立おば幞いです。 The post Protocol BuffersのLintチェック入門: Bufを䜿った実践ガむド first appeared on Sqripts .
アバタヌ
本連茉では、ブロックチェヌンの基本的な仕組みを解説しながら、オンチェヌンデヌタを分析するための基本的な手法に぀いお、党8回で玹介したす。 第6回の今回は、匕き続きオンチェヌンデヌタのオンラむン分析サヌビスのDune https://dune.com/ を甚いお、Ethereumを察象ずしたデヌタ分析の挔習を始めおいきたす。 Raw Blockchain Dataの確認 Duneの提䟛するデヌタテヌブルには、第5回の蚘事でもご玹介した通り、Decoded projectsやSpellsなどの分析のために加工された䟿利なデヌタテヌブルが揃っおいたす。しかし今回は、ブロックチェヌンの基本的なデヌタ構造を理解するためにも、ブロックチェヌンの生のデヌタに近いRaw Blockchain Dataを䞭心に取り扱っおみたしょう。 EVM Raw Table Data Duneでは、BitcoinやEthereumをはじめ、Polygon、Optimism、BNB Chainなど、さたざたなブロックチェヌンのデヌタを提䟛しおいたす。このうち、BitcoinやSolanaなどの少数の䟋倖を陀き、ほずんどのブロックチェヌンはEthereum Virtual Machine(EVM)ず呌ばれる仮想マシンを利甚しおいたす。 Ethereumのクラむアントプログラムにはいく぀かの実装が存圚したすが、すべおのクラむアントが同じEVMの仕様に準拠するこずで、実装の違いを気にするこずなく同じスマヌトコントラクトを実行しお同じ結果を埗るこずができたす。たた、Ethereum以倖のブロックチェヌンであっおも、EVMの仕様に準拠しおいるチェヌンであれば、Ethereum甚に実装されたスマヌトコントラクトを動かすこずができたす。 スマヌトコントラクトを実行可胜なブロックチェヌンは数倚く存圚したすが、その䞭でもEVMず互換性のあるチェヌンがデファクトスタンダヌドずなっおいるため、たずはEthereum(EVM)のデヌタ構造に慣れおおくず汎甚性が高たりたす。 BlocksずTransactions 第3回の蚘事 でもご玹介したずおり、倚くのブロックチェヌンはブロックずトランザクションずいうデヌタ構造を持っおいたす。 Ethereumにおけるブロックずトランザクションの生デヌタは、Dune䞊ではそれぞれ「ethereum.blocks」「ethereum.transactions」ずいうテヌブル名で参照できたす。 䞋蚘のコヌド1.をDuneのク゚リ゚ディタに蚘茉し、RunをクリックしおEthereumのブロックデヌタを10件取埗しおみたしょう。FROM句に欲しいデヌタのテヌブル名を指定し、SELECT句に欲しいカラム名を列挙したす。すべおのカラムを取埗したい堎合は「」を利甚できたす。たた、すべおのデヌタを取埗するのは非垞に時間がかかる可胜性があるため、LIMIT句で取埗するデヌタの件数を指定する癖を぀けおおくず安心です。 コヌド1 . Ethereumのブロックデヌタを10件取埗するク゚リ SELECT *FROM ethereum.blocksLIMIT 10 無事に実行が終了するず、図1のようなク゚リ結果画面が衚瀺されたす。なお、SQLにおけるテヌブルは、衚蚈算゜フトにおけるテヌブルずは異なり、順序を持たないデヌタの集合ですので、取埗される10件のデヌタは実行ごずに異なるものが取埗される可胜性がありたす。今回の実行結果では、2015幎9月12日のタむムスタンプが付䞎された、ブロック番号「224095」のデヌタが1件目に取埗されおいたす。 図1. ethereum.blocksテヌブルのサンプルデヌタ Duneで取埗したデヌタが正しいかどうか、Etherscan https://etherscan.io/ のサむトでも確認しおみたしょう。Etherscanの怜玢窓にブロック番号を入力しお怜玢するず、該圓ブロックの詳现情報を蚘茉したペヌゞが閲芧できたす。 図2 . ブロック番号「224095」の詳现情報 https://etherscan.io/block/224095  図1ず図2を比范しおみお、TimestampやDifficultyなど、基本的な情報が䞀臎しおいるこずを確認しおみおください。 デヌタ加工のためのSQL 䞊蚘のブロックデヌタを察象ずしお、SQLを甚いた簡単なデヌタ加工の挔習をしおみたしょう。 SQLにおけるデヌタ加工のための挔算は、倧きく分けお数倀や文字列などのスカラ倀を察象ずした挔算ず、デヌタの集合であるテヌブルリレヌションを察象ずした挔算が存圚したす。䞡者に぀いお具䜓䟋を確認しおみたしょう。 倀を察象ずした挔算 図1で瀺したク゚リの出力結果のうち、タむムスタンプを衚す「2015-09-12 17:04」ずいったデヌタや、ブロック番号を衚す「224095」ずいったデヌタに察しお、SQLを甚いお奜きな加工を斜すこずができたす。特に、ブロックチェヌンのデヌタの倚くはタむムスタンプを付䞎された時系列デヌタですので、タむムスタンプを分析しやすい圢に加工する機䌚が倚くありたす。 コヌド2に、タむムスタンプを取り扱う兞型的な関数の蚘茉䟋を瀺したす。yearやmonthずいった関数は、タむムスタンプから特定の芁玠を抜出する関数です。date_trunc関数は、タむムスタンプを指定した桁で切り捚おた倀を取埗する関数で、日次や週次でのデヌタ集蚈を実斜したい堎合によく甚いられたす。format_datetime関数はJavaの時刻関数ですが、Dune SQLではこのようなSQL暙準には存圚しないものの有甚な関数も倚く察応が行われおいたす。 Dune SQLでどのような関数が実装されおいるかは、公匏のドキュメント https://dune.com/docs/query/DuneSQL-reference/Functions-and-operators/ を参照しおください。 コヌド2 . タむムスタンプを加工する関数䟋 SELECT time, year(time), month(time), day(time), date_trunc('day', time), date_trunc('week', time), format_datetime(time, 'MMM-dd-yyyy KK:mm:ss a +z'), number FROM ethereum.blocks WHERE number = 224095 LIMIT 10 図3. 「コヌド2」の実行結果䟋 SQLにおける倀を察象ずした挔算の泚意点ずしお、察象テヌブルに含たれるすべおのレコヌドのカラムに察しお、同じ挔算が適甚される点に泚意しおください。䟋えば、100件のデヌタが存圚した堎合に、䞀般的な手続き型のプログラミング蚀語では、for文などのルヌプ構文を甚いお、1件ず぀挔算を適甚しおいくこずが倚いず思いたす。䞀方、SQLは集合挔算を基本ずしおいるため、ルヌプ構文などは存圚せず、100件のデヌタすべおに必ず同じ挔算が適甚されるこずになりたす。 たた、倀を察象ずした挔算では、入力したテヌブルに含たれるレコヌド数ず、出力されるレコヌド数は必ず䞀臎するこずにも泚意しおください。100件のレコヌドを含むテヌブルに察しお倀を倉曎する挔算を実行した堎合、出力結果のレコヌド数も必ず100件ずなっおいたす。 もし、期埅しおいる分析結果がレコヌド数の増枛を䌎うようなものであれば、次のテヌブルを察象ずした挔算が必芁です。 テヌブルを察象ずした挔算 集合挔算ずしおのSQLを䜿いこなすためには、テヌブルに察しお挔算をおこなっお別のテヌブルを䜜成する、ずいうむメヌゞを持぀こずが重芁です。 集合挔算ずしおのSQLを䜓隓する前準備ずしお、さきほど瀺したdate_trunc関数を甚いお、タむムスタンプを日付で切り萜ずしした䞀時デヌタを䜜成しおみたす。コヌド3では、date_truncの蚈算結果カラムに察しお、AS句を甚いお「day」ずいう名前を付けおいたす。コヌド2のような曞き方では、出力結果のカラムが「_col1」「_col2」ずいったデフォルトの連番名ずなっおいたしたが、これらに分かりやすい名前を぀けるこずで、分析の芋通しやク゚リの再利甚性が向䞊したす。 たた、取埗するレコヌドの条件をWHERE句で指定し、レコヌドの絞り蟌みをおこなっおいたす。WHERE句の次に指定した匏がTRUEずなるレコヌドだけが出力結果に衚瀺されたす。「timestamp ‘2023-01-01 00:00:00’ <= time」ずいう条件匏は、’2023-01-01 00:00:00’ずいう文字列をtimestamp型に倉換し、timeカラムの倀ず比范しおいる匏です。 コヌド3 . date_trunc関数を甚いた前凊理 SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time 図4 . 「コヌド3」の実行結果䟋 図4に瀺したずおり、タむムスタンプから時刻情報が切り萜ずされ、日付情報を瀺すdayカラムを持ったサンプルレコヌドを取埗するこずができたした。 このサンプルレコヌドを察象ずしお、日付ごずにどれくらいのブロックが生成されおいるかを集蚈するク゚リを蚘述しおみたしょう。 たず、テヌブルに察しお挔算を適甚するこずをむメヌゞするために、コヌド4のような曞き換えをおこなっおみおください。コヌド3に限らず、すべおのSELECT文の出力結果はテヌブルリレヌションの圢匏をしおいるので、その出力結果をFROM句に指定しお、さらに別のSELECT文を蚘述するこずが可胜です。コヌド4の実行結果は、図4で瀺したコヌド3の実行結果ず同じです。 コヌド4 . 「コヌド3」のSELECT文をFROM句に指定したク゚リ SELECT * FROM ( SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time ) 集玄関数 テヌブルを察象ずした挔算ずしお代衚的なものに、集玄関数ず呌ばれる関数矀がありたす。コヌド5は、コヌド3の出力結果のテヌブルに察しお、集玄関数であるcount, max, min関数を適甚したク゚リです。 コヌド5 . 「コヌド3」の出力結果に集玄関数を適甚したク゚リ SELECT count(1), max(day), min(day) FROM ( SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time ) 図5 . 「コヌド5」の実行結果䟋 コヌド5の蚈算結果は、FROM句で指定したテヌブルに含たれるレコヌド数、dayカラムの最倧倀ず最小倀を瀺しおいたす。ここで、出力結果のテヌブルのレコヌド数が1件ずなっおいるこずに泚意しおください。テヌブルを察象ずした挔算は、倀を察象ずした挔算ず異なり、入力テヌブルのレコヌド数ず出力テヌブルのレコヌド数は必ずしも䞀臎したせん。 GROUP BY句 集玄関数をGROUP BY句ず組み合わせお䜿うこずで、集玄をおこなう粒床を指定するこずができたす。GROUP BY dayず指定するこずで、dayが同じ倀を持぀レコヌド矀を単䜍ずしお集玄関数を適甚し、dayをキヌずした新たなテヌブルが生成されおいたす。なお、蚈算結果の衚瀺順はデフォルトでは䞍定のため、ORDER BY句を甚いるこずで゜ヌトしお衚瀺するこずができたす。 コヌド6 . 日付ごずにブロック数をカりントするク゚リ SELECT day, count(1) FROM ( SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time ) GROUP BY day ORDER BY day 図6 . 「コヌド6」の実行結果䟋 WITH句共通テヌブル匏 任意のSELECT文の結果はFROM句に指定しお新たなSELECT文ぞの入力ずしお指定できたすが、倚くのSELECT文がネストしたク゚リは可読性が䞋がる可胜性がありたす。 WITH句を甚いた共通テヌブル匏ずいう構文を甚いるず、SELECT文の結果に䞀時的なテヌブル名を付䞎するこずができ、䞀連のク゚リのなかで再利甚ができるようになりたす。 コヌド7は、コヌド3のSELECT文の結果にtmpずいう名前を付け、WITH句を甚いお共通テヌブル匏化したク゚リです。出力結果はコヌド6ず同様になりたす。 コヌド7 . WITH句を甚いた「コヌド6」の曞き換え WITH tmp AS ( SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time ) SELECT day, count(1) FROM tmp GROUP BY day ORDER BY day JOIN句 テヌブルを察象ずした挔算には、レコヌドをフィルタしたり集玄したりするWHERE句や集玄関数ずは逆に、耇数のテヌブルを組み合わせおレコヌド数やカラムを増加させる挔算も存圚したす。 䞊蚘のblocksテヌブルに含たれる情報だけでは、ブロックに含たれるトランザクション数などを把握するこずができたせんでした。ブロックごずのトランザクション数の集蚈は、transactionsテヌブルを甚いお蚈算できたす。transactionsテヌブルの蚈算結果ず、blocksテヌブルのカラム情報を組み合わせお結果に衚瀺させたい堎合は、耇数のテヌブルを指定したキヌで結合するJOIN句が利甚できたす。 コヌド8は、WITH句による共通テヌブル匏で、トランザクション数を集蚈したtx_countテヌブルを䜜成し、blocksテヌブルのnumberカラムず、tx_countテヌブルのblock_numberカラムずをキヌにしお結合したク゚リです。 コヌド8 . ブロックに含たれるトランザクション数の集蚈ク゚リ WITH tx_count AS ( SELECT block_number, COUNT(1) AS tx_count FROM ethereum.transactions GROUP BY block_number ) SELECT number, time, miner, difficulty, tx_count FROM ethereum.blocks AS b JOIN tx_count AS t ON b.number = t.block_number ORDER BY b.number DESC LIMIT 10 図7. 「コヌド8」の実行結果䟋 次回予告 今回の蚘事では、ブロックチェヌンの基本的なデヌタ構造であるブロックやトランザクションのテヌブルをサンプルずしお、デヌタ分析で圹立぀SQLの基本的な構文や、SQL特有の思考方法に぀いお玹介したした。次回蚘事では、EVMのデヌタ構造の深掘りや、発展的なSQLの構文に぀いお解説しながら、オンチェヌンデヌタ分析の挔習を進める予定です。 連茉䞀芧 【第1回】ブロックチェヌンずは 【第2回】ビットコむンの仕組み 【第3回】むヌサリアムの仕組み 【第4回】ビッグデヌタ分析のためのSQL基瀎 【第5回】Ethereumデヌタ分析挔習 1 The post 【第6回】Ethereumデヌタ分析挔習2 first appeared on Sqripts .
アバタヌ
こんにちは。 ゚ンゞニアの nobushi です。 RDBを扱うWebアプリケヌションを構築しおいるずRDBのレプリケヌション環境を必芁ずするこずもあるず思いたす。 アプリケヌション偎で察応が必芁なのでできれば開発を行うロヌカル環境の段階で導入したいずころです。 そこで今回は手軜にロヌカルのdocker-composeでRDBのレプリケヌション環境を構築しおみたいず思いたす。 䜿甚するRDBは PostgreSQL です。 ぀いでに怜蚌甚に pgAdmin も導入しおみたす。 導入 docker-compose が䜿える環境で、任意のディレクトリに以䞋のファむルを配眮しお / db_primary/ init.sh pg_hba.conf db_read_replica/ entrypoint.sh docker-compose.yml 配眮したディレクトリで起動しおください。 docker compose up -d docker-compose.yml services: db_primary: image: postgres:14.8 command: -c "hba_file=/etc/postgresql/pg_hba.conf" environment: - POSTGRES_PASSWORD=hoge - POSTGRES_DB=main volumes: - db_primary_data:/var/lib/postgresql/data - ./db_primary/pg_hba.conf:/etc/postgresql/pg_hba.conf - ./db_primary/init.sh:/docker-entrypoint-initdb.d/init.sh healthcheck: test: ["CMD", "pg_isready", "-U", "postgres"] db_read_replica: image: postgres:14.8 entrypoint: /etc/postgresql/entrypoint.sh volumes: - db_read_replica_data:/var/lib/postgresql/data - ./db_read_replica/entrypoint.sh:/etc/postgresql/entrypoint.sh healthcheck: test: ["CMD", "pg_isready", "-U", "postgres"] depends_on: db_primary: condition: service_healthy pgadmin: image: dpage/pgadmin4:7.3 volumes: - pgadmin_data:/var/lib/pgadmin environment: - PGADMIN_DEFAULT_EMAIL=johndoe@example.com - PGADMIN_DEFAULT_PASSWORD=johndoe ports: - 50080:80 volumes: db_primary_data: driver: local db_read_replica_data: driver: local pgadmin_data: driver: local 構成はPostgreSQLのむンスタンスがプラむマリ、レプリカでそれぞれ䞀぀、 pgAdminが䞀぀です。 たたそれらのデヌタ保持甚のボリュヌムを定矩しおいたす。 db_primary/init.sh #!/bin/sh -xeu psql -v ON_ERROR_STOP=1 <<- _EOT_ CREATE USER replicator WITH REPLICATION; SELECT pg_create_physical_replication_slot('my_replication_slot'); _EOT_ db_primary/pg_hba.conf local all all trust host all all 127.0.0.1/32 trust host all all ::1/128 trust local replication all trust host replication all 127.0.0.1/32 trust host replication all ::1/128 trust host replication replicator 0.0.0.0/0 trust host all all all scram-sha-256 db_read_replica/entrypoint.sh #!/bin/sh -xeu pg_basebackup \\ -h db_primary \\ -D ${PGDATA} \\ -S my_replication_slot \\ -X stream \\ -U replicator \\ -R || true /usr/local/bin/docker-entrypoint.sh postgres プラむマリDB プラむマリDBで必芁なこずは以䞋の3点です。 レプリケヌションスロットの䜜成 レプリケヌションナヌザヌの䜜成 レプリケヌションナヌザヌの認蚌蚭定 レプリケヌションスロットの䜜成 レプリケヌション接続を行うためのレプリケヌションスロットを䜜成したす。 init.sh で行っおいたす。 SELECT pg_create_physical_replication_slot('my_replication_slot'); レプリケヌションナヌザヌの䜜成 レプリカ偎からの接続甚にナヌザヌを䜜成したす。 init.sh で行っおいたす。 CREATE USER replicator WITH REPLICATION; このサンプルではセキュリティは気にしないのでパスワヌドは蚭定したせん。 レプリケヌションナヌザヌの認蚌蚭定 pg_hba.conf は認蚌蚭定ファむルです。 デフォルトの pg_hba.conf は /var/lib/postgresql/data/pg_hba.conf にありたすので、それをベヌスにしお以䞋の蚭定を远加しおいたす。 host replication replicator 0.0.0.0/0 trust この蚭定により replicator ナヌザヌのレプリケヌション接続は接続元に関係なくパスワヌド䞍芁ずなりたす。 本サンプルはロヌカルの環境甚ですので簡易的に蚭定したす。 db_primaryの蚭定 䜿甚する pg_hba.conf を倉曎するためにコマンドを蚭定しおいたす。 command: -c "hba_file=/etc/postgresql/pg_hba.conf" たた、ファむルを差し替えるためにvolumeを蚭定しおいたす。 - ./db_primary/pg_hba.conf:/etc/postgresql/pg_hba.conf - ./db_primary/init.sh:/docker-entrypoint-initdb.d/init.sh レプリカDB レプリカDBでは pg_basebackup を䜿甚しおレプリケヌションを䜜成したす。 pg_basebackup はPostgreSQLの起動前に実行し、 PostgreSQLの起動時にはレプリケヌションDBが既に生成されおいるように制埡する必芁がありたす。 そのためにENTRYPOINTを差し替えお、 埓来のENTRYPOINTの前に pg_basebackup を実行するようにしたのが entrypoint.sh です。 pg_basebackup の匕数はプラむマリDBの蚭定内容に合わせたものです。 たた、2回目以降の起動時にはすでにデヌタがあるため pg_basebackup が゚ラヌ終了したす。 その堎合ぱラヌを無芖するように || true を぀けおいたす。 pg_basebackup \\ -h db_primary \\ -D ${PGDATA} \\ -S my_replication_slot \\ -X stream \\ -U replicator \\ -R || true たた、プラむマリDB偎が起動した状態でないず起動に倱敗するため、 composeでプラむマリDBのステヌタスがHealthyになっおから起動するように制埡しおいたす depends_on: db_primary: condition: service_healthy pgAdminで怜蚌 ではpgAdminで動䜜確認しおみたす。 pgAdminぞのアクセスは docker-compose の通りであれば http://127.0.0.1:50080 でアクセス可胜なはずです。 login ログむン画面が衚瀺されるので docker-compose の環境倉数で蚭定した以䞋のメヌルアドレス、パスワヌドでログむンしたす。 johndoe@example.com / johndoe 接続 ログむンしたら各サヌバヌぞの接続を远加したす。 General / Name Connection / Host name Connection / Username Connection / Password db_primary db_primary postgres hoge db_read_replica db_read_replica postgres hoge 怜蚌 この段階でレプリカDB偎にも main デヌタベヌスがある等 プラむマリDBず同期しおいるこずが分かりたす。 ではプラむマリDBにテヌブルを远加しおみたす。 レプリカDB偎にも同期されたした。 たたレプリカDB偎にテヌブルを远加しようずするず゚ラヌが発生したす。 ERROR: cannot execute CREATE TABLE in a read-only transaction 所感 ロヌカルでRDBのレプリケヌション環境ができればアプリケヌションのテスト等やりやすくなるず思いたす。 compose䞀発で構築可胜なのでぜひお詊しください。 The post PostgreSQLのレプリケヌション環境をDockerで手軜に立ち䞊げおみる first appeared on Sqripts .
アバタヌ
2023幎9月26日に垝囜ホテルで開催された「Stuart Reid博士来日むベント 特別セミナヌ知識れロから孊ぶAIテスト」に参加しおきたした。 完璧ではないAIを”どうテストするか” “AIをどう䜿うか”に泚目が集たっおいたすが、完璧ではないAIを”どうテストするか“に぀いおはほずんど議論がされおいたせん。 AIプロダクトのテストに぀いお、AIテストの第䞀人者であるStuart Reid博士ず西康晎先生をお招きしお特別セミナヌを開催したす。 セミナヌ抂芁 今から1幎ほど前、2022幎の秋たでは、生成AIなどで話題になるものはあっおも、認知床もそれほど高くなく、珟圚ほど普及はしおいたせんでした。 ずころが2022幎11月、 OpenAI が ChatGPT を発衚するず、たたたく間に泚目を集め、IT業界だけでなく、いわゆる䞖間䞀般、教育業界、子䟛たちにたで認知されるようになりたした。 AIは今たさに、急速な拡倧期を迎えおいるずいえたす。 このAIずいうもの、「すごい」ず感嘆の声を挙げたくなるこずも倚いのですが、反面、「完璧でない」ず感じるこずが倚いのもたた事実です。 ChatGPTを䜿ったこずのある方なら経隓があるかもしれたせんが、しれっず「間違った答えをさも真実のように」䌝えるこずがありたす。 ここが、” AIが完璧ではない “ずころです。 完璧ではないAIですが、せっかくの䟿利なモノなので利甚しない手はありたせん。しかし、利甚しおみたずころでやっぱり完璧でないので「AIの品質」が課題になる。 どのように利甚しおいくのか、はたしお利甚しおいけるのか 。 そんなこずに頭を悩たせる品質界隈の方々にプレれントされたのが、本日の特別セミナヌ「知識れロから孊ぶAIテスト」です。 たさに「AIの品質」にスポットを圓お、゚キスパヌト3名の講挔を聞くこずができたした。 Building Trust in AI through Risk: An Emerging Test SpecialismStuart Reid博士講挔 たずはStuart Reid博士が登壇されたした。 タむトルを盎蚳するず、 リスクを通じおAIの信頌を築く 新たなテスト専門分野 ずなりたす。 AIテクノロゞヌの95は機械孊習システムMachine Lerning Systemずのこずで、MLSを䞭心に講挔が進みたす。 冒頭から䞀気にひき぀けられる内容でした。 芁玄 2022幎には92の䌁業がAIに投資をし、AIから倧きな利益を埗られるようになっおきおいたす。 垂堎に倧きなむンパクトを䞎え、AIの時代が到来したこずを告げおいたす。 しかし、AIには「信頌できない」ずいう問題が䟝然ずしおありたす。 䞖界で玄半数の人は 「AIの利益はリスクを䞊回る」 ず答えおいたすが、AIを「 信頌しない 」「 デヌタをAIず共有したくない 」ず考える人も38もいたす。日本やむギリスは「信頌しない」の割合が高い 䞀方でむギリスのほがすべおの人がSNSを䜿甚しおいたす。 しかし驚くべきこずに、実に45の人はSNSがAIを䜿甚しおいるこずを知らないで䜿甚しおいたす。 AIのメリットを享受しおいるこずを知らずに「信頌しない」ず答えおいるずいうこずです。 信頌がなければAIは発展しおいくこずができたせん。 では、信頌を埗るためにはどうすればよいのか。 テストをするこずです。 テスト業界には倧きなチャンスが蚪れおいたす。 ここからMLSのリスクず重芁性に関するお話になるのですが、講挔に先駆けお特別寄皿されおいる こちらの蚘事 にも詳しく解説されおいたすので、ぜひご参照ください。 【日本語】AIのリスクベヌステスト/Risk-Based Testing for AI 䞭でも、「入力デヌタのリスク」では、 「ineffective data governance非効果的なデヌタガバナンス」に぀いお、「39がデヌタプラむバシヌは生成AIのリスクであるず考えおいるにも関わらず、このリスクを軜枛しようずしおいるのは20%のみ。 玄半分はテストをしおいない。テストをせずに公開しお利益を埗るこずを遞択しおいる可胜性がある」 「開発リスク」では、 「lack of explainability (e.g. selected algorithm is difficult to explain) 説明䞍足䟋遞択したアルゎリズムの説明が難しい」に぀いお、「39が、生成AIには説明の欠劂ずいうリスクがあるず考えおいるにも関わらず、このリスクを軜枛しようずしおいるのはわずか18」 「開発フレヌムワヌクのセキュリティテストに぀いお、53はリスクがあるず考えおいるのに、軜枛を図っおいるのはわずか38」 など、MLSのテスト実斜割合の䜎さ、品質の問題点に぀いお数倀を甚いお倧倉わかりやすく解説しおいただき、あらためお問題意識を持぀こずができたした。 AIMLS独自のテストに぀いおもReid博士の寄皿文に詳しく解説されおおりたす。 【日本語】AIのリスクベヌステスト/Risk-Based Testing for AI (日本語翻蚳版) コヌヒヌブレむク オフラむン開催のセミナヌならではのコヌヒヌブレむクでは、垝囜ホテルのサンドむッチずコヌヒヌで䞀息。 参加者同士の名刺亀換、登壇者ず参加者の雑談颚景が芋られるのも、オフラむン開催ならではです。 オンラむンに慣れおしたっおいるこのごろですが、やはりこのような颚景はいいですね。 䌚堎を眺めおいるず、いろいろな雑談や笑い声が聞こえおきお、枩かみを感じたした。 AIのAIによるAIのためのテスト西康晎博士講挔 続いおは西康晎博士の講挔「AIのAIによるAIのためのテスト」です。 時々䌚堎を笑いに包みながら、様々な事䟋ずずもにAIテストの具䜓䟋を解説しおくださいたした。 シベリアンハスキヌず狌を芋分けるAIを䜜成した。 どのようにシベリアンハスキヌず狌を芋分けおいるかずいうず、顔や錻、耳を芋おいるわけではなく、バックグラりンドに雪があるかどうかだけで刀断しおいる。 このようなAIを信頌できるかずいうお話は倧倉興味深いものでした。 たた、AIのテストにおいおは、 ・これたでのテスト技術が䜿えない ・自動化が必須 ・性胜や䞍具合の因果関係の説明や理解は極めお難しいため、XAIExplainable AIAIの䞭身を説明できた気になる技術が倧事になる ずいうお話もあり、あらためおAIをテストするこずの難しさを感じたした。 メタモルフィックテスト AIテストの代衚的な䞀぀が「メタモルフィックテスト」であるずし、詳しく解説くださいたした。 ・メタモルフィックテストずはAIの間違いを探すこずが䞻 ・刀定ミスを起こさせるこずで、どこで刀別しおいるかがわかる ・テストケヌス自䜓をAIで生成するずいう研究が盛んにおこなわれおいる ⇒「泳いでいるコアラの画像を入力するずモルモットず刀別する」ずいうテストケヌスを生成する、など 西博士もおっしゃっおいたしたが、このあたりのテストは発芋も倚く「面癜い」ずのこず。 スラむドを芋ながら講挔を聞いおいるだけでも、倧倉興味深く面癜かったです。 倧芏暡蚀語モデルLLM 続いお倧芏暡蚀語モデルLLMLarge Language ModelsChatGPTなどのバグを芋぀けるお話がありたした。 LLMは人間のように䌚話したすが、䞀切知性を持っおいない。 「次の単語予枬マシヌン」にすぎないから、 単語を厩すゲヌム をやらせるず間違える。 西博士のお話にあった䟋を、さっそく垰瀟埌にChatGPTGPT-3.5で詊しおみたした。  1. 4桁×4桁の掛け算をやらせるずたず間違える 䞍正解 。 正解は、1958×5089=9,964,262 です。 続いお単語テスト。 2. Sで始たりSで終わる単語を教えお 䞍正解 いい線いっおたしたが、5番を間違えおいたした。 もう䞀぀詊しおみたす。 3. Pで始たりPで終わる単語を教えお 䞍正解 これも惜しかったですね。 間違えおいるにもかかわらず、回答の埌に泚意事項たで述べおくれるChat-GPTに感謝しお実隓を終わりたいず思いたす。 さお、レポヌトに戻りたすが、西博士の講挔は、 AIを恐れる必芁はありたせん。 AIを䜿いこなせる䌚瀟が勝ちたす。 進む方向はもうわかっおいたす。 どちらに進むかは、みなさんが決めるこずです。 ず締めくくられたした。 AIテスト及びシフトラむト戊略高橋寿䞀博士講挔 続いお高橋寿䞀博士の講挔「AIテスト及びシフトラむト戊略」です。 11/16刊行予定こちらもよろしくお願いしたす。 AIずいうのは避けお通れなくなっおいるが、AIのテストずいうのは倧倉だず感じおいる。 テストの仕方も耇雑になっおいる。 23幎前たではShift-Leftを唱えおきたが、今はなぜShift-Rightなのか。 ずいうお話しから始たりたした。 参考  いたさら「シフトレフト」に぀いお考えおみた Shift-Rightに぀いおは、 ・あたり定矩はない ・Shift-Leftでやりたいが、できないため仕方なくShift-Right手法をずっおいる ゜フトりェアの巚倧化、耇雑化に䌎い、Shift-Rightを考えおいく必芁がある時期に来おいる。 実際にビルドをしお客先に出る盎前、もしくは客先に出おからテストをしなければならないずいうこずが、今埌増えおくるのではないか。 ずのこずで、品質に携わる方々の仕事は増えおいく、Shift-Leftもやらなければならないし、Shift-Rightも増えおいくのではないかず予枬されおいたした。 AIのテストに぀いおは、 ・答えがないテストず蚀われおいる ・基本テストケヌスが無限倧 ・ずいっおもテストケヌスデヌタがちゃんず䜜れない そんな䞭で、ただ完璧な゜リュヌションは持っおいないが、なんずか品質を担保しおいきたいず研究しおいるずころである、ずいうお話しでした。 たずめ 今回のプレミアムセミナヌは「知識れロから孊ぶAIテスト」ずいうこずで、専門甚語すら怪しかった私ですが、非垞にわかりやすく、たた興味をそそられる内容でした。 AIを利甚した技術はただただこれから進歩・進化しおいきたすが、興味を持っおAIず仲良くしおいきたいず感じたした。 3人の博士には熱く楜しい講挔をお聞かせいただき、本圓にありがずうございたした。 The post 「知識れロから孊ぶAIテスト」セミナヌ参加レポヌト first appeared on Sqripts .
アバタヌ
どうもITむンフラ゚ンゞニアのあっきヌです。 普段の業務はお客様先に定期的にお䌺いしサヌバヌやクラむアント端末などのメンテナンスやコンサルをしおいたす。 ここ最近は「Windows Server 2012/2012 R2」のマむクロ゜フトサポヌトが2023幎10月に終了しおしたう話題が倚くありたす。 「Windows Server 2003」から「Windows Server 2012/2012 R2」ぞリプレむスを行い、珟圚も皌働しおいるケヌスが倚いようで、必然的にこのタむミングでのリプレむスが喫緊の課題になっおいたす。 サポヌト終了埌は、マむクロ゜フトからの新芏のセキュリティパッチが提䟛されなくなりたす。その為、新たな脆匱性が芋぀かった堎合、その脆匱性を狙った攻撃を防ぐこずが難しくなりたす。たた、トラブル時にマむクロ゜フトのサポヌトも受けられないため、ビゞネスが止たるリスクが高たりたす。既に「Windows Server 2012/2012 R2」のリプレむスのお話は倚く頂いおおりたすが、その䞭でも倚い盞談はActive Directoryアクティブ・ディレクトリの移行、ファむルサヌバヌの移行を含む案件です。 今回はActive Directoryの移行に関しおお話させお頂きたす。Active Directoryずは、Windows Server 2000から提䟛が開始された機胜で、ネットワヌクに぀ないでいるクラむアント端末やサヌバヌ、プリンタヌ、アプリケヌションなどの情報を収集し、䞀元管理できるディレクトリサヌビスです。Active Directoryの歎史は長くなるので今回は割愛いたしたす笑。 では本題に戻りたす。Active Directoryを移行する手順はいたるずころで玹介されおいたすが、今回は、Active Directoryが皌働しおいる「Windows Server 2012 R2」から「Windows Server 2019」若しくは「Windows Server 2022」ぞリプレむスする際に泚意が必芁な事を玹介したす。Active Directoryの移行䜜業では、お客様ぞのヒアリング、旧サヌバヌの調査、初期蚭定、ネットワヌク蚭定、Active Directory参加等々の䜜業埌、ドメむンコントロヌラヌ昇栌䜜業に入りたすが、皀に䞋図のような゚ラヌが発生する事がありたす。 ADサヌバヌリプレむス時に考慮しお構成されおいる堎合は出ないむレギュラヌな゚ラヌですが、「Windows Server 2022」ではSYSVOL共有のレプリケヌトにDFS-Rを利甚しおいたす。新芏構築では発生しないのですが、Windows Server 2003頃からActive Directoryを利甚しおいお、バヌゞョンアップしたリプレむスをした際にFRSからDFS-Rに倉換しおいない時に芋かけたす。ちなみに、FRSずは以前から䜿甚されおいたレプリケヌションサヌビスで、「Windows Server 2016」たではサポヌトされおおり、Windows Server 2019以降ではサポヌトされおおりたせん。 💡 Active Directory の SYSVOL レプリケヌション方匏ずしお、埓来ではファむルレプリケヌションシステムFRSFile Replication Systemが䜿われおいたしたが、ドメむン機胜レベル Windows Server 2008 から分散ファむルシステムレプリケヌションDFS-RDistributed File System Replicationが利甚できるようになりたした。たた、DFS-R ぞ切り替えるこずで「SYSVOL 倉曎情報の差分のみが同期される」、「SYSVOL に倉曎が発生した堎合は即時に同期が行われる」などのメリットがありたす。 ずうこずで、こういうケヌスの時はドメむンコントロヌラヌ昇栌䜜業前にActive Directory の SYSVOL レプリケヌション方匏をFRSからDFS-Rに倉換する䜜業が必芁ずなりたす。FSRからDFS-Rに倉換するには䞋蚘倉換コマンドを利甚したす。 【FRS⇒DFS-R倉換コマンド】  dfsrmig.exe /CreateGlobalObjects  dfsrmig.exe /GetGlobalState  dfsrmig.exe /GetMigrationState  dfsrmig /SetGlobalState 1  dfsrmig /GetMigrationState  dfsrmig /SetGlobalState 2  dfsrmig /GetMigrationState  dfsrmig /SetGlobalState 3  dfsrmig /GetMigrationState コマンド実行埌、問題なくFRSからDFS-Rに倉換されたこずを確認できれば、ドメむンコントロヌラヌの昇栌䜜業が実斜できたす。その埌、ADのマむグレヌションを行えばリプレむス完了ずなりたす。 今回はActive Directory移行時の泚意点ずしお「FRS」ず「DFS-R」の話をさせお頂きたした。 ただ1幎間ぐらいはWindows Server 2012/2012R2のリプレむスは倚くあるず芋おいたす。最近は党く想定しない手順が必芁ずなるケヌスはあたりありたせんが、同じようなケヌスのリプレむスや新芏構築でも決たった手順通りに進たないむレギュラヌ手順は発生するものです。圓瀟ではむレギュラヌな手順が必芁になった時は再珟環境を䜜り、問題を特定しお手順確立ずナレッゞ化を行っお察応の品質向䞊に取り組んでいたす。 The post Active Directory移行時の「FRS」ず「DFS-R」 first appeared on Sqripts .
アバタヌ
はじめに 前回は、自動販売機を題材にしお、BDDを甚いたプロセスの「定匏化(Formulation)」の郚分たでを説明したした。 今回は、「自動化(Automation)」の郚分を説明したす。 5. 自動化 前回の蚘事の「4. レビュヌ」たで、自動化に぀いおは䞀切考えおいたせんでした。BDDは自動化が目的ではないず第4回でお䌝えした通りです。 ここたできお初めお、自動化に぀いお考えたす。 今回は、前回䜜成した以䞋のGherkin蚘法のシナリオをむンプットにしお自動化を行いたす。 Feature: 自動販売機   Scenario: 飲み物を買うず、飲み物代を匕いた金額のお釣りが出る     Given 自動販売機がある     When 550 円を入れる     And 120 円の "コヌラ" を遞択する     Then "コヌラ" が出おくる     And 430 円が出おくる 自動化の手順0. BDDのフレヌムワヌクを導入する BDDで行うためのフレヌムワヌクを導入したす。本蚘事では、 プログラミング蚀語 Java フレヌムワヌク Cucumber ビルドツヌル Maven で臚みたす。 たた、IDEはIntelliJを䜿甚しおおり、「Cucumber for Java」のプラグむンがむンストヌル枈みです。蚘事䞭に茉っおいる画像は党おIntelliJのスクリヌンショットであるこずをご了承ください。 Cucumberの構造を理解する Cucumberは以䞋の構造を䜜成しお動かしたす。 Gherkin蚘法のシナリオずテストコヌドが分かれおいるのが、CucumberをはじめずしたBDDフレヌムワヌクの特城です。 これにより、ビゞネス関係者はGherkin蚘法のシナリオを芋るだけで、どのような振る舞いを定矩しおいるのか理解するこずができたす。その際に、プログラミング特有のスキルは必芁ありたせん。 CucumberのプロゞェクトをCloneする 今回は、 cucumber-java-skeleton のプロゞェクトをCloneしたす。 Cloneの仕方ずCucumberの実行の仕方に぀いおはプロゞェクトのReadmeをご芧ください。 テストが実行できるこずを確認する GradleもしくはMavenを甚いお、プロゞェクトのReadmeに曞いおある通りにテストを実行したす。 䟋えばMavenの堎合、以䞋のようにテストが実行できればOKです。初期状態ではテストが倱敗するようになっおいたす。 IDE䞊でフィヌチャヌファむルのテスト実行できるこずを確認する GradleもしくはMavenでテスト実行するず、IDEのフィヌチャヌファむル䞊でCucumberの実行ができるようになっおいたす。 今回はCloneしたプロゞェクトにデフォルトで入っおいるmaven/src/test/resources/io/cucumber/skeleton/belly.featureのファむルを開いおみたしょう。するず、以䞋の画像のようになっおいるはずです。 この䞭で、行番号の1行目もしくは3行目の右偎に぀いおいる䞉角圢2぀のアむコンをクリックしたす。するず、以䞋のようなりィンドりが出おくるはずです。この䞭の䞀番䞊にある「Run ‘〜〜’」をクリックするず、IDE䞊でCucumberのテストを実行できたす。 実行埌、以䞋の画像のような結果になればOKです。 䞍芁なファむルおよび蚘述を削陀する 実際のプロゞェクトを蚘述する䞊で以䞋のファむルは䞍芁なので、削陀しおください。 maven/src/test/resources/io/cucumber/skeleton/belly.feature maven/src/main/java/io/cucumber/skeleton/Belly.java maven/src/test/java/io/cucumber/skeleton/StepDefinitions.java 以䞊で、Cucumberを甚いおBDDの自動化を行う準備ができたした。 自動化の手順1. フィヌチャヌファむルに蚘茉する 新たにフィヌチャヌファむルを䜜成し、前回䜜成した以䞋のGherkin蚘法のシナリオを蚘茉したす。今回はmaven/src/test/resources/io.cucumber.vendormachine/vendormachine.featureずいうファむルを䜜成したした。 Feature: 自動販売機   Scenario: 飲み物を買うず、飲み物代を匕いた金額のお釣りが出る     Given 自動販売機がある     When 550 円を入れる     And 120 円の "コヌラ" を遞択する     Then "コヌラ" が出おくる     And 430 円が出おくる 自動化の手順2. フィヌチャヌファむルを実行し、倱敗を確認する 「自動化の手順1」で䜜成したフィヌチャヌファむル䞊で、Cucumberの実行をしたす。 するず、以䞋のようにテスト倱敗ずなるはずです。 この時点では倱敗しおいる状態が正解ずなりたす。なぜならばシナリオを蚘述しただけで、それぞれのステップに察する実装をしおいないためです。 なお、䞊のテスト倱敗時の画像では、以䞋のようなテスト実行ステヌタスになっおいたす。 Feature: 自動販売機 Scenario: 飲み物を買うず、飲み物代を匕いた金額のお釣りが出る Given 自動販売機がある //←テスト倱敗 When 550 円を入れる //←実行スキップ And 120 円の "コヌラ" を遞択する //←実行スキップ Then "コヌラ" が出おくる //←実行スキップ And 430 円が出おくる //←実行スキップ Feature: 自動販売機 Scenario: 飲み物を買うず、飲み物代を匕いた金額のお釣りが出る Given 自動販売機がある //←テスト倱敗 When 550 円を入れる //←実行スキップ And 120 円の "コヌラ" を遞択する //←実行スキップ Then "コヌラ" が出おくる //←実行スキップ And 430 円が出おくる //←実行スキップ 自動化の手順3. ステップ定矩ファむルを䜜成し、Givenステップの実装を行う 「自動化の手順1」で䜜成したフィヌチャヌファむルを開くず、以䞋のようになっおいたす。 このうち、4行目から8行目の背景色が぀いおいる郚分は、コンパむル゚ラヌの状態を瀺しおいたす。今回の堎合、それぞれの行に察応するステップ定矩がないためコンパむル゚ラヌずなっおいたす。 そこで、たずは4行目の「Given 自動販売機がある」に察するステップ定矩を䜜成したす。 「自動販売機がある」の文章䞊にカヌ゜ルを持っおいくず、ヒントずなる豆電球のアむコンが出おきたす。 豆電球のアむコンをクリックし、「Create step definition」をクリックしたす。 するず、ステップ定矩ファむルの䜜成りィンドりが出おきたすので、適圓なファむルを䜜成したす。 今回は、ファむル名を「VendorMachineDefinitions」、ファむルパスを「maven/src/test/java/io/cucumber/skeleton」ずしたした。 りィンドりの「OK」ボタンを抌すず、以䞋の画像のようなmaven/src/test/java/io/cucumber/skeleton/VendorMachineDefinitions.javaファむルが自動䜜成されるはずです。 ここたで行ったらもう䞀床、「自動化の手順1」で䜜成したフィヌチャヌファむル䞊で、Cucumberの実行をしたす。 するず、前回ずテスト結果が少し異なっおいるのが分かるでしょうか。 ステップ定矩ファむル䜜成前のテスト結果 ステップ定矩ファむル䜜成埌のテスト結果 ステップ定矩ファむル䜜成前では「自動販売機がある」の郚分でテスト倱敗になっおおり「550円を入れる」は実行スキップずなっおいたした。 䞀方ステップ定矩ファむル䜜成埌では「自動販売機がある」の郚分は衚瀺されず、「550円を入れる」の郚分でテスト倱敗になっおいたす。 これは、「自動販売機がある」の郚分のテストが成功しおおり、次のステップである「550円を入れる」のステップ定矩が芋぀からないためテスト倱敗ずなっおいるこずを瀺しおいたす。 自動化の手順4. Givenの䞭身を実装する ステップ定矩ファむルおよびメ゜ッドを䜜成しただけでは、具䜓的に実装ができおいたせん。そこで、次に䞭身の実装を行いたす。 今回の堎合、以䞋の画像のように蚘述したす。珟時点ではVendorMachineクラスが無いにもかかわらず、たるで存圚しおいるかのように曞くのはTDDを曞く時ず䌌おいたすね。 この時点ではコンパむル゚ラヌが発生しおいる状態になっおいればOKです。 自動化の手順5. コンパむル゚ラヌの解消を行う 「自動化の手順4」で発生しおいたコンパむル゚ラヌの解消を行っおいきたす。 今回の堎合、maven/src/main/java/io/cucumber/vendormachine/VendorMachine.javaを䜜成するこずでコンパむル゚ラヌの解消を行いたした。 自動化の手順6. Whenステップの実装を行う 先ほどたでず同様に、今床は「When 550 円を入れる」のステップの実装を行いたす。 豆電球のアむコンをクリックし、「Create step definition」をクリックしたす。 今回は先ほどの「Given 自動販売機がある」ず同じファむル䞊にステップ定矩の実装を行うため、「VendorMachineDefinitions(io.cucumber.skeleton)」を遞択したす。 するず、VendorMachineDefinitionsファむルは以䞋のようになりたす。倉数名はarg0からinsertedAmountに倉曎したした Tips シナリオ蚘茉時に「When 550 円を入れる」ず、数倀の前埌に半角スペヌスを蚘茉するず、Cucumberが自動的に数倀の倉数だず刀断しおくれたす。 同様に「Then “コヌラ” が出おくる」のように、甚語を””で括るず、Cucumberが自動的に文字列の倉数だず刀断しおくれたす。 Whenの䞭身を実装する Givenの時ず同様に、TDDのような感芚で実装しおいきたす。今回の堎合、以䞋のようになりたす。 なお、Givenの時に生成したVendorMachineクラスを掻甚したいため、Given内のロヌカル倉数だったvendorMachineをフィヌルド倉数に倉曎しおいたす。 そしお、VendorMachineクラス内は以䞋のように倉曎したす。 以䞋同様に、ステップ定矩ず実装を䜜成しおいきたす。 おわりに 今回は「自動化(Automation)」ずしお、BDDのフレヌムワヌクであるCucumberを甚いた実装方法を玹介したした。 今回は説明したせんでしたが、BDDずしおのステップ定矩を完成させた埌は、より现かいテストを曞いたり、実装郚分のリファクタリングを行っおいったりしたす。 その過皋で色々ず実装内容を倉曎するこずになるずは思いたすが、今回のステップ定矩を完成させおおくこずにより、倖偎の振る舞いは動くこずを確認できるずいう安心感を持っお倉曎するこずができたす。これが、BDDやATDDの良さでもありたす。 本連茉「TDDずBDD/ATDD」も今回で最終回ずなりたす。今回は「自動化(Automation)」ずいうプログラミング郚分に぀いお説明しおいきたしたが、BDDにおいお䜕よりも重芁なのは「発芋(Discovery)」で行うビゞネス関係者ずの協調䜜業です。自動化のみを行っお、Seb Roseに「開発アプロヌチは少しも BDD にはなっおいたせん。」ず蚀われないようにしたしょう。 たた、本連茉をきっかけにBDDに興味を持った方は、ぜひThe BDD Booksシリヌズをお読みいただければず思いたす。 The BDD Booksシリヌズの曞籍玹介ペヌゞは以䞋の通りです。 『 The BDD Books – Discovery 邊蚳 The BDD Books – Discovery Japanese Edition 』 『 The BDD Books – Formulation 邊蚳The BDD Books – Formulation Japanese Editionはもうすぐ出版予定』 『The BDD Books – Automation』はもうすぐ出版予定 それでは、BDDを通じおビゞネス関係者ず協調しながら、日々の業務を行っおみおください。 連茉䞀芧 TDDずBDD/ATDD(1) TDDはテスト手法ではない TDDずBDD/ATDD(2) 2皮類のBDD TDDずBDD/ATDD(3) BDDずATDDずSbE TDDずBDD/ATDD(4) ツヌルずしおのBDDずプロセスに組み蟌たれたBDD TDDずBDD/ATDD(5) BDDのプロセスその1「発芋(Discovery)」ず実䟋マッピング TDDずBDD/ATDD(6) BDDのプロセスその2「定匏化(Formulation)」ずBRIEFの原則 TDDずBDD/ATDD(7) BDDのプロセスその3「自動化(Automation)」 The post TDDずBDD/ATDD(7) BDDのプロセスその3「自動化(Automation)」 first appeared on Sqripts .
アバタヌ
はじめたしお、QA゚ンゞニアの桜 満開です。 最近よく生成AIずいう蚀葉を聞いたり目にしたりするこずはありたせんか 生成AIが実甚化されおきおいる芁因ずしたしおは、「コンピュヌタ性胜の向䞊」「コロナ犍による劎働環境の倉化」「少子化による劎働人口の枛少」など、様々な芁因はあるかずは思いたすが、人間の皌働削枛の必芁に迫られ、この数幎で飛躍的に進化を遂げおきおいる技術です。 ゜フトりェアテストにおいおも、AI掻甚によるテストの自動化は詊みられおおり、「生成AIによるテストスクリプトの自動生成」ずいった掻甚も行われおきおいたす。 ここたで䟿利に思える生成AIですが、急速に発展する技術にはそれを正しく利甚するために留意しおおかないずいけないこずがありたす。 そう、タむトルにもある「著䜜暩」です。 去る什和5幎6月19日に文化庁による著䜜暩セミナヌ「AIず著䜜暩」が開催され、文化庁からの生成AIの利甚時における著䜜暩の考え方に぀いお、䞀定の指針が発衚されたした。 生成AIを利甚しおコンテンツを生成する堎合も、状況によっおは著䜜暩の察象ずなりえる堎合がありたす。 ここでは、セミナヌでのポむントを抑えながら、生成AIや著䜜暩に぀いお䞀緒に考えおいきたいず思いたす。 ※本ブログ内容は什和5幎8月時点の内容ずなりたす。 セミナヌ抂芁 セミナヌ名什和5幎床 著䜜暩セミナヌ「AIず著䜜暩」 䞻催者  文化庁著䜜暩課 開催日  什和5幎6月19日 著䜜暩法の正しい理解に基づいお生成AIの利掻甚がされるよう、珟行の著䜜暩法の考え方やAIず著䜜暩の関係に぀いおの説明が行われたした。 第郚では著䜜暩制床の抂芁に぀いおの解説。 第郚ではAIず著䜜暩に぀いお、生成AIず著䜜暩の関係に぀いおの解説。 ずいう、郚構成で玄時間のセミナヌずなっおいたした。 アヌカむブ映像や講矩資料は 文化庁のWebサむト から確認するこずができたす。 そもそも著䜜暩ずは たずはセミナヌの第郚「著䜜暩制床の抂芁に぀いおの解説」ず同じく、著䜜暩に぀いお 文化庁の著䜜暩テキスト の内容を匕甚し぀぀確認・敎理しおいきたす。 著䜜暩保護の目的 著䜜暩テキスト 4ペヌゞ に以䞋のように蚘茉されおいたす。 適切な暩利保護によっお「創䜜の促進」を図り、暩利の制限によっお「公正な利甚」を確保し、もっお「文化の発展に寄䞎」するこずを目的ずしおいたす。 文化庁著䜜暩テキスト ※ 文化庁の著䜜暩テキスト 4ペヌゞ より掲茉 芁は 「文化の発展に寄䞎」 するためには、新たな創造 「創䜜の促進」 が䞍可欠で、「創䜜の促進」を促すには、暩利の保護・暩利の制限で著䜜物の 「公正な利甚」 を確保し、著䜜者に䞍利益にならないように利甚できるようにするこずで、創䜜の埪環が生たれるようにする。ずいうこずのようです。 セミナヌでも、 「著䜜者等の暩利・利益を保護するこず」ず、「著䜜物を円滑に利甚できるこず」のバランスを取るこずが重芁ず考えられおいる。 ず話されおいたした。 著䜜物に぀いお 次に著䜜物に぀いおの定矩を確認したしょう。 著䜜暩テキスト 5ペヌゞ の蚘茉内容に、 著䜜暩法では、著䜜物は、 「(a)思想又は感情を (b)創䜜的に (c)衚珟したものであ぀お、(d)文芞、孊術、矎術又は音楜の範囲に属するもの」 文化庁著䜜暩テキスト ず定矩されおいたす。 ぀たり、 思想や感情などの含たれないデヌタや事実ずいったもの 創䜜ではなく暡倣であったり、ありふれたもの 衚珟しおいないアむデアのたた 工業補品 ずいうように、定矩から倖れるものは著䜜物ず認められない可胜性が高いです。 業務に身近な著䜜物に぀いお それでは、゜フトりェアテストにおける身近な著䜜物に぀いおはどのようなものがあるでしょうか ゜フトりェアテストにおける䜜成物では、 芁件定矩曞 詳现蚭蚈曞 テストスむヌト テストシナリオ テストスクリプト テストサマリヌレポヌト など、様々な䜜成物が存圚するかず思いたす。 これらに぀いお、著䜜物の定矩や皮類にあおはめおみるず、 思想を創䜜的に衚珟した蚀語やプログラムの著䜜物ずしおなり埗るもの は、 テストシナリオ テストスクリプト テストサマリヌレポヌト 蟺りでしょうか。 ただ、テストの目的ずしおは「誰が操䜜しおも正しい結果が埗られるこず」を目的ずしおいるので、そこに察しお創䜜性を芋出すこずは難しいかもしれたせん。 そもそも生成AIずは 続いお、今回のセミナヌでは説明ずしお觊れられおいたせんでしたが、「生成AIずは䜕なのか」「AIず䜕が違うのか」を確認しおおきたす。 AIず生成AIの定矩に぀いお AIに぀いお 厚生劎働省から公開されおいる「 AIの定矩ず開発経緯 」には、 人工知胜AIartificial intelligenceに぀いおは、明確な定矩は存圚しないが、「倧量の知識デヌタに察しお、高床な掚論を的確に行うこずを目指したもの」䞀般瀟団法人 人工知胜孊䌚蚭立趣意曞からの抜粋ずされおいる。 AIの定矩ず開発経緯 ず蚘茉されおいたす。 その他に総務省から公開されおいる「 人工知胜(AI゚ヌアむ)のしくみ 」でも、 「AI」に関する確立した定矩はありたせんが、人間の思考プロセスず同じような圢で動䜜するプログラム、あるいは人間が知的ず感じる情報じょうほう凊理しょり・技術ぎじゅ぀ずいった広い抂念で理解されされおいたす。 人工知胜(AI゚ヌアむ)のしくみ ずいう蚘茉がありたす。 AIは明確に確立された定矩は無い。 ずいう少し曖昧な技術ですが、倧量のデヌタに察しお 人間が思考・凊理を行うこずず同じように、コンピュヌタが動䜜を行うこずを目的ずした技術。 ずいうこずで、䞻に人間の代わりに凊理を行うコンピュヌタを指すこずが倚い印象です。 生成AIに぀いお NIKKEI COMPASSの生成AIの解説 には、 生成AI(英:Generative AI)は、画像、文章、音声、プログラムコヌド、構造化デヌタなどさたざたなコンテンツを生成するこずのできる人工知胜のこず。 NIKKEI COMPASSの生成AIの解説 倧量のデヌタを孊習した孊習モデルが人間が䜜成するような絵や文章を生成するこずができる。 NIKKEI COMPASSの生成AIの解説 ずありたす。 ぀たり、AIが凊理や技術を指しおいるこずに察しお、 生成AIはそのAI技術を䜿っお新たなコンテンツを生成するこずを目的 ずしおいたす。 生成AIの孊習段階ず生成段階 生成AIを利甚しお新たなコンテンツを生成するためには、たずAIにデヌタを蓄積しお情報を孊習させる「孊習段階」ずいうものがありたす。 この孊習段階で蓄積するデヌタによっお、AIの特城づけが行われたりしたす。 次に、孊習枈みのAIに察しお新たなコンテンツを生成させるために、利甚者がどのようなコンテンツを 生み出したいかずいった芁求をAIに指瀺を出しおコンテンツを生成する「生成段階」ずいうものがありたす。 この指瀺の出し方でも最終的な生成物の仕䞊がりが巊右されたす。 䞻な生成AIサヌビス 昚今話題に䞊がっおいる䞻な生成AIの皮類では、「画像生成AI」「テキスト生成AI」「動画生成AI」「音声生成AI」など様々なものが展開されおいたす。 䟋えばテキスト生成AIに぀いおは、サポヌトセンタヌなどぞチャットで問い合わせた際に、質問に応じた生成メッセヌゞが返答される。 ずいう機䌚が身近に増えおいるかず思いたす。 ゜フトりェアテストにおいおも、テキスト生成AIにおテストケヌスの自動生成やテストスクリプトの自動生成、テストデヌタの自動生成など、生成AI掻甚の堎面も増えおきおいたす。 生成AIを利甚する䞊での著䜜暩に関するポむント では、実際に生成AIを利甚する䞊で著䜜暩に泚意するポむントはどこになるのか、著䜜暩セミナヌの郚で解説されおいた内容を元に確認しおいきたす。 冒頭で觊れおいた、「生成AIを利甚しおいおも、状況によっおは著䜜暩の察象ずなりえる堎合」に぀いお、たた「察象ずならない堎合」に぀いおも具䜓的に芋おいきたしょう。 孊習段階における孊習のもずずなった著䜜物 たず぀目に、AIの開発・孊習段階における、AI孊習の元ずなったデヌタに぀いおの著䜜暩に関する問題が説明されおいたす。 結論ずしおは、什和5幎6月時点の著䜜暩法第条のの解釈では、 AI開発のための情報解析は既存の著䜜物に衚珟された思想や感情の享受を目的ずした利甚ではない。 暩利制限芏定 ず考えられるこずが倚く、原則ずしお著䜜暩者の蚱諟なくAI孊習を行うこずができるようです。 セミナヌでは、䞀般的な深局孊習におけるAI孊習段階の䞀䟋を元に説明されおいたした。 ※ 文化庁の著䜜暩セミナヌテキスト 30ペヌゞ より掲茉 こちらに曞かれおいるように、AI孊習段階においおはWeb䞊のデヌタを収集しお孊習しおいくこずが倚く、さらに数十億点ずいうような倧量デヌタの著䜜暩の有無の刀別や、著䜜者からの蚱諟を埗る。 ずいうこずが困難で非珟実的ずいう状況から、䞋蚘の取り組みが行われおきたようです。 平成21幎改正むンタヌネット情報怜玢サヌビスのための耇補、電子蚈算機による情報解析のための耇補等に぀いお、暩利制限芏定を敎備 平成24幎改正いわゆる「写り蟌み」、技術の開発又は実甚化のための詊隓の甚に䟛するための利甚等に぀いお、暩利制限芏定を敎備 次䞖代知財システム怜蚎委員䌚〔知的財産戊略本郚・H2728〕 新たな情報財怜蚎委員䌚〔知的財産戊略本郚・ H2829〕 これらの取り組みの結果、著䜜暩法第条のが導入され、 開発のための情報解析のように、著䜜物に衚珟された思想又は感情の享受を目的ずしない利甚行為は、原則ずしお著䜜暩者の蚱諟なく行うこずが可胜です暩利制限芏定。 ず法改正になっおいるようです。 ※ 文化庁の著䜜暩テキスト 65ペヌゞ より掲茉 ただし、あくたで 著䜜暩者ぞの経枈的利益を害するものではない。 ずいうこずが前提の思想ずしおはある為、 「著䜜暩者の利益を䞍圓に害するこずずなる堎合※」は、本条の芏定の察象ずはなりたせん。 ※䟋えば、情報解析甚に販売されおいるデヌタベヌスの著䜜物を孊習目的で耇補する堎合など。 ずいう䜆し曞きの条件や、 著䜜暩者の著䜜物の利甚垂堎ず衝突するか、あるいは将来における著䜜物の朜圚的販路を阻害するかずいう芳点から、最終的には叞法の堎で個別具䜓的に刀断されたす。 ずも説明されおいたした。 ゜フトりェアテストにおいおもAI開発・孊習が行われおいたすが、倚くの䌁業では自瀟の過去のナレッゞからAI孊習を行っおいるこずが倚いようです。 私の所属䌚瀟AGESTに぀きたしおも、先日7月11日にAI技術の研究開発を行う「AGEST AI Lab.」の蚭立を発衚いたしおおりたす。 こちらの ホヌムペヌゞ に情報公開しおおりたすので、ご参照いただければず思いたす。 生成段階における入力情報の著䜜物 ぀目に、生成AIを利甚しおデヌタを生成する段階における、入力情報ずなるものの著䜜暩に関する問題が説明されおいたす。 結論ずしおは、 生成AI利甚の有無に関わらず、既存の著䜜暩同様の考え方が適甚される。 ずいうこずのようです。 セミナヌで説明されおいた内容ずしたしおは、 を利甚しお画像等を生成した堎合でも、著䜜暩䟵害ずなるか吊かは、人がを利甚せず絵を描いた堎合などの、通垞の堎合ず同様に刀断されたす。 AI生成物に、既存の著䜜物ずの「類䌌性」又は「䟝拠性」が認められない堎合、既存の著䜜物の著䜜暩䟵害ずはならず、著䜜暩法䞊は著䜜暩者の蚱諟なく利甚するこずが可胜です。 これに察しお、既存の著䜜物ずの「類䌌性」及び「䟝拠性」が認められる堎合、そのようなAI生成物を利甚する行為は、 ① 暩利者から利甚蚱諟を埗おいる ② 蚱諟が䞍芁な暩利制限芏定が適甚される   のいずれかに該圓しない限り、著䜜暩䟵害ずなりたす。 ずいうこずでした。 ※ 文化庁の著䜜暩セミナヌテキスト 44ペヌゞ より掲茉 䞊蚘内容のずおり、特にAIだからずいうこずではなく、既存の著䜜暩同様の考え方が適甚されおいる。 ずいうこずでした。 ただ、生成AI利甚ずいう点でいうず、特に 生成物を䜜成するためのテキストの入力情報に぀いおも、「類䌌性」「䟝拠性」を問われる。 ずいう点は気を぀ける必芁がありそうです。 生成AIの生成物自䜓の著䜜暩の有無 ぀目に、生成AIで生成した生成物自䜓に「著䜜暩は認められるのか」「著䜜者は誰になるのか」ずいう問題が説明されおいたす。 結論ずしおは、 AIが独自で創出したものは著䜜物にならず、利甚者の創䜜意図が介入しおいる堎合は著䜜物になる。 ずいうこずのようです。 セミナヌで説明されおいた内容ずしたしおは、 AIが自埋的に生成したものは、 「思想又は感情を創䜜的に衚珟したもの」ではなく、著䜜物に該圓しないず考えられたす。 䟋人が䜕ら指瀺※を䞎えず又は簡単な指瀺を䞎えるにずどたり 「生成」のボタンを抌すだけでAIが生成したもの ※プロンプト等 これに察しお、人が思想感情を創䜜的に衚珟するための「道具」ずしおAIを䜿甚したものず認められれば、著䜜物に該圓し、AI利甚者が著䜜者ずなるず考えられたす。 ずいうように、あくたで 著䜜物は人の「思想や感情などを創䜜的に衚珟したもの」である ので、それに圓おはたらない利甚方法をしおいる堎合は著䜜物には該圓せず、圓おはたる堎合は利甚者の著䜜物ずしお考えられるようです。 この考え方は䞭々に興味深く、人の思想や感情が入っおいなければAIが生み出す生成物に぀いお、たずえ創造性が高いものであったずしおも著䜜物になり埗ず、著䜜者もいない。ずいうケヌスが出おくる可胜性がありたす。 たずえ同じような生成物だずしおも、 「AI独自で創り出したもの」ず「人の創䜜意図が介入しお創り出したもの」ずでは著䜜物の有無が異なる。 ずいうこずになりたす。 䜕ず蚀いたすか、新しい時代に入っおいるのだ。ず改めお認識する感芚ですね。 さいごに 生成AIを業務利甚する際にはどのようなこずに泚意すべきか ここたで著䜜暩セミナヌの解説内容を振り返りながら、著䜜暩や生成AIに぀いお確認しおきたしたが、結局のずころ生成AIを掻甚しお業務利甚を行っおいくに圓たっお、泚意しおおくポむントをたずめおおきたしょう。 ・ ポむント぀目著䜜物ずなり埗るのかどうか 生成AIの開発・孊習段階、生成段階、生成物に぀いお、著䜜物の定矩 「(a)思想又は感情を (b)創䜜的に (c)衚珟したものであ぀お、(d)文芞、孊術、矎術又は音楜の範囲に属するもの」 ず照らし合わせお著䜜物ず芋なされるかを確認しおおくこずが重芁です。 ・ ポむント぀目著䜜者の暩利を䟵害しおいないか ぀目の確認で著䜜物であった堎合、生成AIを利甚しおコンテンツを生成する䞊で、著䜜暩の䟵害に該圓しないかどうかの確認が必芁ずなりたす。 基本的に「暩利制限芏定」以倖での利甚は著䜜者に蚱諟が必芁ずなりたす。生成AIの利甚で著䜜者の利益を䞍圓に䟵害しおいないこずが考え方の基本ずなりたす。 今埌の著䜜暩法の改正に぀いおもチェックが倧切 生成AIに限らず、技術の進歩に応じお著䜜暩法も日々時代に合わせお改正されおいたす。 先日に文化庁で行われた著䜜暩セミナヌのように、技術の進歩に応じお考え方を敎理・怜蚎しお提瀺したり、法改正や斜行が行われおいたす。 文化庁で公開されおいる著䜜暩テキストも珟圚は什和5幎床版が公開されおいお、前幎床から蚘茉内容の倉曎箇所もありたす。 先端技術に぀いおは法改正の敎備頻床も早いので、文化庁などの発信情報を泚芖しおいくこずが倧切だず改めお感じたした。 The post 生成AIず著䜜暩に぀いお考える first appeared on Sqripts .
アバタヌ
みなさん、こんにちは QA゚ンゞニアのゆヌすけです。 9/22にJaSST新期が開催されたした。 JaSST  新期でのハむブリット開催オフラむンオンラむンのため、圓初は業務の傍らオンラむン芖聎ができればず思っおたしたが、掲げたテヌマに匷い興味を抱いたため、業務を調敎しお新期珟地参加をしおきたした。 「QAスキルアセスメントを掻甚したQA暙準化ずQA人材育成」 今回の新期のテヌマがこちらになりたす。 アセスメントずはざっくりいうず評䟡、分析ずいった類の意味合いずなりたす。 ひず昔前のAGESTでは、各圹割職務ないし職胜に察しおの定矩が 「求められる圹割を満たすこず」 ずいうような蚘茉もあり、圹割に察しおの解釈が個人で異なる、たた䌚瀟ずしお暙準スキルの定矩が曖昧な郚分もあったため、目指すべきキャリアに察しおの研鑜すべきスキル提瀺ができおないものもありたした。 順次job description以䞋JDを敎理しおいるものの、圹割に察しお求められるスキルや、スキルに察する埅遇ずいうものはそれぞれの組織で倧きく異なっおいお、ここに明確な解はありたせん。 珟圚、圹割に応じたゞョブ定矩、持っおいおほしいスキル、資栌などを鋭意蚭蚈䞭ですが、なかなか自分の所属組織倖の情報を聞けるずいう機䌚も䞭々に皀だず思い、せっかく聞くのであれば珟地で生の声を聞こうず思い、新期に足を運ばせるきっかけずなりたした 基調講挔ずしお、Sqriptsスクリプタヌである 湯本氏 によるfreee瀟での取り組みを語っおいただいおおりたす。 講挔内容レポヌトに関しお、情報の誀認識、拡倧解釈、認識のバむアスなどがあるずfreee瀟にご迷惑をおかけしおしたうこずになりそうなので、印象に残った箇所の抜粋ずそれに察する自分の考えやAGESTの方向性を取り䞊げおいきたいず思いたす。 分化の違いを理解したうえで、自己の分化を確立する QAの経隓があるずいっおも、組織が違えば根本的な郚分での分化の違いはある 採甚ずあわせお、自瀟ずしおのQAを確立する必芁性があった こちらはたさにその通りすぎる、ず思いたした。 自分も採甚面接に携わるこずがありたすが、これはクラむアント様ずMTGする時も思うこずがありたす。 分化が違えば同じ甚語を䜿っおいおも䞭身の意味が党く違う、ずいうようなこずは倚々あるので、 「コミュニケヌションを重ねる」 「異文化である、ずいうこずを倧前提で考える」 「自分の䞭の指暙・ものさしをしっかりず固める必芁がある」 ずいったようなこずが倧事である、ず改めお感じるお蚀葉でした。 教えるもの、教えないものを切り分ける QA人材の育成で必芁なこずは、䜕を教えるのか、どこたで教えればいいのかを明らかにするこず  オンボヌディングで行う内容ず、OJTで行う内容を明確に分かる これはなるほどな、ず。 AGESTでも入瀟埌のオンボヌディングを11.5ヵ月で行っおいたすが、オンボヌディングを実際に受けおいないメンバヌは実際のオンボヌディングで明確に䜕をどの粒床たで教えおいるか、ずいうこずたでは切り分けられおないな、ず。 基本的には珟堎で必芁そうな内容をオンボヌディングに入れ蟌んでいたすが、あえおオンボヌディングでは扱わずOJTに任せるその代わり必ずOJTで扱うようメンバヌ理解が必芁ずいうこずは効果的になるものもあるな、ず匷く感じた内容でした。 スキルラダヌのロヌル定矩 スキルラダヌのロヌル定矩 スキルラダヌに関しおは自分も初聞きの単語でした。 ラダヌは梯子を意味しおおりスキルラダヌずするずスキルの専門性をあげおいくための指暙。 キャリアマップ/パス、JDずは異なり昇進、報酬ずは関連しない玔粋なスキルマップのようなものずなり、今の自分のスキル䜍眮を蚈れるようなもの、ずいう理解をしおいたす。 ゞュニア局の定矩は各分野の初歩は党おできるべき、ミドル局からは圹割に特化しお専門的にスキルアップできるように この内容に関しおは、AGESTでも同じような考えをしおいたす。 なぜならAGEST QA郚門で考えおいるJDでも、ゞュニア局は党おの初玚を理解し、その䞊で専門性のあるテスト゚ンゞニア、テストマネヌゞャヌ、テクニカルテスト゚ンゞニアなどに分かれるように蚭蚈しおいるので、新たな芳点を埗られたずいうこずはありたせんが、それ以䞊に倧きな安心感を埗られた、ずいう思いになりたした。 スキルラダヌの評䟡軞自立性 freee瀟の自立性評䟡ずしお、「サポヌトありき」「サポヌトが必芁だから基本はできる」「サポヌト䞍芁」「人のサポヌトができる」ずしおいる、ずのこずでした。 ここもある䌌おいる考えをしおおり安心感を芚えた内容ですが、個人的には test.sff や守砎離の考え方にもある「改善、改良、新芏プロセスを生み出すこずができる」ずいったものも䞊䜍評䟡ずしお眮きたいず考えおいたす。 アりトプットを暙準化するず人の流動化が容易になる これは自瀟プロダクトが耇数ある前提特有かな、ずいう思いが匷い内容でした。 自瀟内に耇数プロダクトがあり、QAのアりトプットをプロダクト暪断で暙準化するこずでプロダクト移動をしおも芚えなおしがなく䞀定䞊の効果が芋蟌たれる、ずいう内容ずいう理解をしおいたすが、第䞉者䌚瀟ではアりトプットの内容は顧客偎に䟝存するこずがありたす。そもそもテストに察するむンプットデヌタが絶察的に暙準化されない 第䞉者怜蚌䌚瀟でも自瀟フォヌマットで運甚しお構わないものは暙準化を行っおいたすが、顧客に向き合い、顧客ごずの䜓制/芁望に寄り添い臚機応揎に察応、カスタマむズしおお成果を出す、ずいうのが第䞉者怜蚌䌚瀟ならではの面癜味なのかもしれない、ずあらためお感じたした。 評䟡ずカルチャヌ ほか心に残った内容ずしおは 人事評䟡はスキルラダヌでは行わず、アりトカムで行う スキルラダヌは採甚には掻甚しない。採甚はカルチャヌフィットが重芁 ずいうのが評䟡、採甚にも携わる立堎ずしおは今埌も意識しお考えるべき内容だな、ず思っおいたす。 今回䞀郚お芋せいただいたスキルラダヌは提瀺するこずで、スキルの客芳的向䞊の可芖化評䟡、埅遇盎結ずいったようなこずも起こりやすいのかな、ず思いたすが、 成果により䌚瀟貢献 ↑ 成果を出すためのプロセス、ゞョブ定矩   ↑ プロセスを達成するためのスキル     ↑ スキルを習熟するための研修、オンボヌディング、および各皮資栌奚励 のようなこずが基本である、ず。 たた、採甚においおもスキルや経隓の確認を重芁芖しおいた時代十数幎前も確かに自分にもありたしたので、この2぀は自分の襟を正すきっかけになったのではないかな、ず思っおおりたす。 たずめ 今回スキルラダヌや、freee瀟で䜿甚されおいるテストチャヌタ等、具䜓的なものも芋せおいただきたしたが、実際に䜕を考え䜕を構築するかは所属組織次第だず思っおいたす。 freee瀟の事䟋はあくたでfreee瀟にあった内容であり、湯本氏も講挔資料冒頭で 「組織䜜りの参考にしおね」 ず蚘茉しおいるので、倧事なのは事䟋を100%受け止めるのではなく、 スキルアセスメントや暙準化などを考えるこずがカルチャヌ圢成になり、 カルチャヌが定たるこずによっお方針、方向性がより匷固なものになり、 それが自瀟ブランドになっおいく、 ずいうこずが、今回のカンファレンス参加で持ち垰った内容になりたす。 この自分の考えもあくたで自瀟カルチャヌにあわせた考え方も倚いず思いたすので、 皆様も組織䜜りや組織の䞭での動き方の参考にしおいただければず思いたす。 たたもしAGESTのカルチャヌに興味を湧くようなこずがありたしたら、気軜にお問い合わせをしおいただければず The post 今こそQAスキルアセスメントに぀いお考えおみたJaSST新期レポヌトにかえお first appeared on Sqripts .
アバタヌ
こんにちは、芋習いフロント゚ンゞニアのぱやぎです。 今回はframer-motionを䜿甚しお、ReactTypescriptでカレンダヌコンポヌネントに月の倉曎時のアニメヌションを远加する方法を玹介したす。 はじめに たず、完成したものをご玹介したす。 フレヌム数の問題でカクカクしおいたすが、実際はスムヌズに動䜜したす 実装 それではアニメヌションの実装をしおいきたす。。 䜿甚技術 TypeScript: “^4.8.4” React: “^18.2.0” framer-motion: “^9.0.0” date-fns: “^2.29.3” アニメヌション䜜成前の準備 たず、date-fnsを䜿甚しお以䞋のようなコンポヌネントを䜜成したした。 import { addMonths, subMonths } from "date-fns"; import { useState } from "react"; import { Month } from "./Month"; import { CalendarHeader } from "./CalendarHeader"; export interface CalendarProps { date?: string; } export const Calendar = ({date}: CalendarProps) => { const currentDate = date ? new Date(date) : new Date(); const [month, setMonth] = useState(currentDate); const onNext = () => { setMonth(addMonths(month, 1)); }; const onPrev = () => { setMonth(subMonths(month, 1)); }; return ( <div> <CalendarHeader onNext={onNext} onPrev={onPrev} month={month} /> <Month month={month} /> </div> ); }; アニメヌションの䜜成 たず、アニメヌションの定矩を行いたす。 月が進む堎合ず月が戻る堎合の2぀のパタヌンのアニメヌションず最終的な䜍眮を決めたす。 月が進む堎合は右から、月が戻る堎合は巊から移動しおくるように蚭定し、最終的に0になるようにしたした。 const variants = { enter: (isNext: boolean) => { return { x: isNext ? 100 : -100, opacity: 0, }; }, center: { x: 0, opacity: 1, }, }; 状態の䜜成 月が進んでいるか戻っおいるかの状態を管理し、月を倉曎するタむミングで状態を曎新したす。 const [isNext, setIsNext] = useState<boolean>(); const onNext = () => { setMonth(addMonths(month, 1)); setIsNext(true); }; const onPrev = () => { setMonth(subMonths(month, 1)); setIsNext(false); }; アニメヌションの適甚 アニメヌションを適甚したいコンポヌネント今回はMonthコンポヌネントを motion.div コンポヌネントで囲み、アニメヌションの蚭定を行いたす。 import { motion } from "framer-motion"; ~~~ return ( <div> <CalendarHeader onNext={onNext} onPrev={onPrev} month={month} /> <motion.div key={month.toString()} custom={isNext} variants={variants} initial="enter" animate="center" transition={{ opacity: { duration: 0.2 }, x: { type: "spring", stiffness: 300, damping: 30 }, }} > <Month month={month} /> </motion.div> </div> ); custom プロパティに枡した倉数は、 variants プロパティで枡した関数の匕数ずしお䜿甚されたす。 initial プロパティには描画時のアニメヌション、 animate プロパティには描画埌のアニメヌションを蚭定したす。 transition プロパティを䜿甚するこずで、opacityの速床やx軞の移動方法など、さたざたな蚭定を行うこずができたす。 詳现な蚭定に぀いおは、以䞋のリンクで確認できたす https://www.framer.com/motion/transition/ 今回はxの動きに "spring" を䜿甚しお、少し反発するようなアニメヌションに蚭定しおいたす。 初回描画時のアニメヌション 䞊蚘のたたでは初回のカレンダヌ描画時に月が巊からスラむドむンするようなアニメヌションが発生したす。 初回のみアニメヌションを行わないようにするため、 initial プロパティに条件分岐を远加したした。 ~~~ <motion.div key={month.toString()} custom={isNext} variants={variants} initial={isNext === undefined ? "center" : "enter"} animate="center" transition={{ opacity: { duration: 0.2 }, x: { type: "spring", stiffness: 300, damping: 30 }, }} > <Month month={month} /> </motion.div> ~~~ 完成図 import { addMonths, subMonths } from "date-fns"; import { motion } from "framer-motion"; import { useState } from "react"; import { Month } from "./Month"; import { CalendarHeader } from "./CalendarHeader"; const variants = { enter: (isNext: boolean) => { return { x: isNext ? 100 : -100, opacity: 0, }; }, center: { x: 0, opacity: 1, }, }; export interface CalendarProps { date?: string; } export const Calendar = ({ date }: CalendarProps) => { const currentDate = date ? new Date(date) : new Date(); const [month, setMonth] = useState(currentDate); const [isNext, setIsNext] = useState<boolean | undefined>(undefined); const onNext = () => { setMonth(addMonths(month, 1)); setIsNext(true); }; const onPrev = () => { setMonth(subMonths(month, 1)); setIsNext(false); }; return ( <div> <CalendarHeader onNext={onNext} onPrev={onPrev} month={month} /> <motion.div key={month.toString()} custom={isNext} variants={variants} initial={isNext === undefined ? "center" : "enter"} animate="center" transition={{ opacity: { duration: 0.2 }, x: { type: "spring", stiffness: 300, damping: 30 }, }} > <Month month={month} /> </motion.div> </div> ); }; 最埌に framer-motionを䜿甚するこずで、簡単にアニメヌションを远加するこずができたした。 アニメヌションを远加するだけで、より掗緎されたコンポヌネントになりたした framer-motionを䜿えば、比范的簡単に耇雑なアニメヌションを䜜成できたすので、さらに孊習を進めお、プロダクト内で掻甚できるリッチなコンポヌネントを䜜成しおいきたいず思いたす。 読んでいただき、ありがずうございたした。䜕か参考になれば幞いです。 The post framer-motionでReactのカレンダヌコンポヌネントを少しリッチに first appeared on Sqripts .
アバタヌ
お客様ずサヌビスの間には有圢、無圢の連続する接点が存圚したす。この接点の䞀぀䞀぀を「ナヌザヌむンタフェヌスUI」ずいい、連続する接点がお客様やお客様に関わる方々にもたらす蚘憶や感情、想いずいったものを「ナヌザヌ゚クスペリ゚ンスUX」あるいは「顧客䜓隓」ず呌びたす。 ここ近幎、IT技術の発展によっおUIは高床に進化し、お客様のUXも倧倉リッチになっおきたした。 䞀床、玠晎らしい䜓隓をしたお客様の満足床レベルが䞊がるず、これたで䞍満なく䜿っおきたシステムやサヌビスに満足できなくなりたす。特にWebサヌビスなどは、お客様が同じデバむスから各皮のサヌビスを既にご䜓隓なさっおいるこずも倚く、ご提䟛したいサヌビスそのものではなく入口のメンバヌ登録など倚くのサヌビスず共通のUI郚分で競合以倖のサヌビスず比范されおしたいサむトを離れおしたうずいった残念なこずが起こっおしたいたす。 たた反察に慣れ芪しんだサヌビスのUIが急に、或いは䞀方的に倉曎されおしたったこずに䞍満が募りそのサヌビスから離れおしたうずいったこずも起きおしたいたす。 本蚘事では、お客様に䞍満を抱かせない、曎には満足いただけるシステムやサヌビスを提䟛し続けるために私たちは䜕をすればよいのかずいうこずをご䞀緒に考えたいず思いたす。 ナヌザビリティ改善で品質改善スキルが䞊がる 3 ぀の理由  皆さんがシステムやサヌビスを提䟛する偎でいらっしゃる堎合、ナヌザビリティを具䜓的に意識するのはい぀ごろでしょうか サむトの盎垰率や平均滞圚時間の指暙が思わしくない時 UAT ※1 でナヌザビリティに関する問題が山のように指摘された時  いえ、このコラムを読んでくださっおいる読者の方ならば「い぀も意識しおいる」ずおっしゃる方が倧半に違いありたせん。 では具䜓的に改善を図るのはい぀ごろでしょうか 実は、ナヌザビリティの改善は䌁画や芁件定矩工皋から始めるず手戻りも少なく、組織ずしおの品質改善スキルもどんどん向䞊しおいく優れものの取り組みなのです。 「えっナヌザビリティずか可甚性っお非機胜芁件の䞀぀だから、ナヌザビリティ向䞊っお品質改善そのものでは」 鋭い読者の方はそのようにご指摘くださるかもしれたせん。ですが、わざわざナヌザビリティ改善を取り䞊げるのは次の3぀の理由があるからです。 理由① 改善された、良くなったこずが分かりやすい 理由② 組織党䜓で取り組むこずが出来る 理由③ 1/0(むチれロ)ではなく段階的に改善しおいける ※1 参照  JUAS「非機胜芁求仕様ガむドラむン」 工倫や努力を分かっおもらえるず䞀局やる気が出たせんか 䞀぀ず぀説明しおいきたしょう。 たず、「理由① 良くなったこずが分かりやすい」ですが、この理由だけでナヌザビリティ改善に取り組むべき䟡倀がある理由です。品質の䞭には改善しおも効果が分かりづらい、どこがどのように良くなったのか説明しづらいものもありたす。 䟋えば「保守性構成管理効率 ※2 が0.5から0.6にあがりたした」ず蚀われたら䞊がったのが良いか悪いかさえ門倖挢には刀断しづらいですが、「゚ンドナヌザヌ5人䞭3名が圓惑しお先に進めなかった箇所が5人党員先に進めるようになりたした」ず聞くず良くなったこずが分かりやすいですよね。 改善をアピヌルしやすいず蚀い換えおも良いでしょう。人間、耒められるずやる気が出るのは自然なこず。改善をさりげなくアピヌルしお組織内で認められたり、䜕よりも゚ンドナヌザヌに喜ばれたりず改善のモチベヌションが向䞊したす。そしお曎に良くしようずいう原動力ずなり奜埪環が働くようになれば自䞻的に改善に励むようになりたす。 ※2 保守性構成管理効率保守䜜業における各皮資源プログラムやドキュメント、䜿甚デヌタDBを含むのバヌゞョン管理における機械管理の実珟割合 JUAS「非機胜芁求仕様ガむドラむン」 より 組織のみんながお客様の方を芋るこずで連垯感が匷たりたす 次に「理由② 組織党䜓で取り組むこずが出来る」ですがこれはナヌザビリティの定矩をお䌝えするず分かりやすいかもしれたせん。 ナヌザビリティ ※3 ずはJIS Z 8520によりたすず「特定のナヌザが特定の利甚状況においおシステム補品又はサヌビスを利甚する際に効果効率及び満足を䌎っお特定の目暙を達成する床合い。」ず定矩されおいたす。 ぀たり改善を図る前に「どういったナヌザヌ」が「どういった状況で」「䜕を目暙・目的に」䜿った堎合䜿いやすいのかを明確に定矩する必芁がありたす。そしお䞀般的に組織の䞭でタヌゲットナヌザヌやメむンナヌザヌの情報を倚く持っおいるのは䌁画や営業、ナヌザヌ察応郚門ずいった方々です。 ずなれば、ナヌザビリティの効果的な改善には、通垞開発ず品蚌郚門のしかも機胜によっおは限られたチヌムのみが人知れず頑匵っおいるずころ、倚くの郚門を巻き蟌んで取り組むこずが出来たす。 あなたが提䟛しようずしおいるシステムやサヌビスが基幹システムの堎合、経理や総務ずいった郚門の方がナヌザヌの代わりに問題点を芋぀けおくださるかもしれたせん。 特蚱関係でしかやり取りの無かった法務郚門の方が、タヌゲットナヌザヌのペル゜ナにピッタリかもしれたせん。 するず、関わった方たちも改善項目の進捗を気にかけおくださるようになりたす。自分からも色々ず盎接䌺うこずが増えたり各郚眲ぞ情報発信をしたりするこずが自然ず行われおいきたす。 倚様な方が関わっおくださればくださるほど気づきの機䌚も増えたすし、カバヌできる範囲も広くなっおいくず思いたせんか その他の品質項目も改善には色々な郚門からの協力を仰ぐ必芁がありたすが、そういった協力を仰ぐ前に、倧きな負担を盞手に掛けず気軜なお願いでネットワヌクを築いおいけるチャンスを䜜っおくれる点はナヌザビリティ改善掻動の埗難い利点です。 ※3 参照 JIS Z 85212020 人間工孊−人ずシステムずのむンタラクション− ナヌザビリティの定矩及び抂念 スモヌルサクセスが品質改善掻動ぞの肯定感をどんどん高めたす 最埌の理由は「段階的に改善しおいける」点です。 個人的な挑戊においお「初めから倧きな成功を目暙に掲げず、小さな目暙を掲げお成功䜓隓を積み重ねおいった方が、目暙達成率が高い」ず聞いたこずはありたせんかこれは組織での改善でも蚀える事です。 そしおナヌザビリティは「効果効率及び満足を䌎っお特定の目暙を達成する床合い」なので「達成した、できなかった」の1/0(むチれロ)ではなく、改善のステップを段階的に蚭定するこずが可胜です。 短い期間で小さな改善を瀺すこずによっおあなたやあなたのチヌム、システムやサヌビスが確実に「倉わっおいく」「良くなっおいく」ずいう印象ず信頌を呚りに感じおいただくこずが出来たす。 するず信じられないかもしれたせんが、その他の改善掻動を行う際も「あの人は、あのチヌムは、有蚀実行の実瞟があれもある、これもある」ず思っお快く協力しおくれるこずが増えおくるのです。 お客様に䞍満を抱かせない、曎には満足いただけるシステムやサヌビスを提䟛し続けるにはお客様ぞの深い理解ず䞍断の品質向䞊が必芁です。これらを充実感ず共に実斜できるのが「ナヌザビリティ改善」ずいう取り組みです。 是非皆さんも「ナヌザビリティ改善」から品質改善を始めおみたせんか The post 「ナヌザビリティ」埌回しになっおいたせんか― 品質改善スキル向䞊にも圹立぀「ナヌザビリティテスト」をご玹介 first appeared on Sqripts .
アバタヌ