探索的テストにおける期待値(基準)の作り方

スクラムフェス新潟2022で話した内容です。
探索的テストは基本的には期待値を自分の中に作ってテストを実施していきます。(もちろん仕様書を見ながらのときもありますが) その期待値はどうやって作るんだろう?という質問が多かったので本や自分の経験からまとめみました。

簡単な説明

探索的テストではバグだけではなく「違和感」にも気を付ける。 通常の状態と違うときに「違和感」を覚える。 通常の状態を形成する基準*1となるモノは以下の6つ。

  1. 以前のソフトウェア(変更前)はどう動いたか?
  2. 同じソフトウェア内の類似の機能はどう動くか?
  3. 社内の別のソフトウェアはどう動くか?
  4. 社外のソフトウェア(競合他社やデファクトスタ ンダード)はどう動くか?
  5. 現在のトレンドはどうか?
  6. 法令やスタンダードに沿っているか?

もちろん上の6つ以外にも会社独自のガイドラインなども入ってくるかもしれません。 また今回は敢えて仕様書というのは抜いています。 仕様書が神という方がいますが、最終的にはユーザーがソフトウェアの価値を評価をするため、バグみたいな仕様でも仕様書に書かれていればバグじゃなくなる訳ではないです。仕様書は紙、ユーザーが神。(個人の意見)

このうちのいくつかはExplore It!の「第5章 Evaluate Results 結果を評価する」にもう少し詳しく書かれています。 特にNever and Alwaysという概念は探索の中で必須になってくると思います。

*1:基準という言葉が気になる人は「標準」とか「法則(ルール)」という言葉でも良いと思います。

JaSST'22東北レポート

9回目となるJaSST東北が無事に終了しました。 2013年にバタバタしながら立ち上げた1回目を思い出しながら、みんなと一緒に少し遠くへ来れたかなぁと思っています。 運営の視点で少し裏側を紹介できたらと思います。

盛岡での初開催

立ち上げ時には東北6県開催という野望がありました。しかし地元にコアとなるメンバーがいないと開催する意義はないという判断があり、仙台以外では開催していませんでした。 立ち上げより約10年、新実行委員長の武田さんが岩手(滝沢)在住ということもあり、今年ついに「盛岡」で初開催することができました!!いやー 名実ともにJaSST"東北"を名乗ることができて嬉しいですね。

武田さんはJaSST'17東北に初めて参加したときに熱気を感じて、『いつか盛岡でやりたい!』って思ってたみたいです。このエピソードは会が終わってから話してくれたんですが、ホントに泣きそうでした。自分は長男だから我慢できました。

松尾さんのインタビュー

松尾さんとは昔から縁があり、2015年のJaSST東北では「改善をより効果的に回すためのレビューへの取り組み」というタイトルで発表してもらっています。松尾さんには「いつか基調講演で発表してね!」というお願いをしていて、数年の時間を経て約束が果たすことができて胸アツでした。事前打ち合わせのときに、松尾さんも覚えててくれたのが嬉しかったです。 基調講演は初めて学ぶ人向けに基本を押さえつつ、DEMOを挟んで分かりやすくお話してくれました。いやー 良かったです。。。

自分はランチタイムセッション担当ということで、松尾さんにインタビューしました。事前に概略は考えていて、以下のようなゴールをイメージをしていました。

  • 松尾さんの人となりを知ってもらう
  • 松尾さんのウエットなソフトウェアの想いや苦労話を知ってもらう
  • アメリカの話を聞いて、アメリカを目指すエンジニアへエールを送る

またインタビューの感じは、一問一答というより、流れるように話すことをイメージしていました。全体的には緩い感じで、でもキャリアの話とかどこに楽しみがあるとか刺激的なインタビューになったと思っています。世界に通じるスキルを持っている人はいると思っていますので、世界を目指してもらいたいなぁと思いました。 石油王にお願いしたmiroのグラレコもとても素敵でしたね。どうもありがとうございました!

インタビュー

構成

JaSST東北は1年目から毎年テーマを決めています。今年も自動化のテーマにしましたが、基調講演~事例~ワーク~招待講演と最初からこういうデザインにしてたのかな?というくらい良い構成になりました。本当にありがたいことです。 また久々のシングルトラックで、オンサイトもオンラインもどちらも同じ講演を聞き、その体験を共有するというのはとても良いデザインだったと思います。 オンラインの配信周りはスクフェス系で培ったものが強かったです。また機材もRSGTの川口さんよりお貸しいただきました。地方のコミュニティ支援は本当に助かります。

ワークショップ

今年もワークショップ担当はかなり気合いが入ってやってました。 ゲームブック風のワークでテスト自動化を学んでいきます。 ギリギリまで本当に受け入れられるか実行委員で悩んでましたが、皆さんに楽しんでもらって良かったです。 ワーク担当の真鍋調べによると本会の消化率はなんと26%!!残りの74%を含め、どこかで再演や違う形で楽しめるようにしたいと思っています。

盛り上がるワーク

まとめ

色々な縁がつながったJaSST東北の盛岡開催だったなぁと思います。また直前のスクフェス新潟~JaSST東北まで移動しながらでしたが、特に有給を使うことなく、仕事ができました。リモートワークの知見も少し溜まりました。 いやー ソフトウェアエンジニアで良かった!

Twitterのまとめもあります。

togetter.com

みんなで!

皆さんの参加ブログ

参加ブログを貼っていきます。

toshimana.hatenablog.com

toshimana.hatenablog.com

goyoki.hatenablog.com

qiita.com

yuki-shiro.hatenablog.com

mokky14.hatenablog.com

tunamagro58795.hateblo.jp

note.com

engineers-blog.agest.co.jp

スクラムフェス新潟参加レポート

今年初開催となったスクラムフェス新潟についてレポートしようと思います。

スクフェス新潟はオーガナイザーのじゅんぺーさんがAgile Testing Daysみたいなイベントを日本でもやりたい!とアツい想いで立ち上げました。自分はスタッフ兼発表者として参加することになりました。 昔はテスト系とアジャイル系両方で見たのはきょんくん、鉄平さん、永田さんくらいだったのにこんなイベントができるなんて!と感慨深く参加しました。ちなみに上記の3人は今回も参加してます。さすがの鉄板です。

Niigata

オーガナイザーじゅんぺーさんの凄いところ

人となりは色々な人が書いているのでそちらを見てもらうとして、自分は宣伝力が凄いと感じました。 SNSはもちろん、アジャイル系、テスト系の色々なメディアで話しまくってました。

個人的にローカルの人不足を少し心配してましたが、終わった後に新潟の人や新潟出身の人の心に火をつけた感じはあったので、次回以降はさらにパワーアップしそうです。

肩甲骨剥がし

ソフトウェアに関係ない特技を持っているのですが、モーニングセッションでは特技の1つである肩甲骨剥がしをしました。 たぶん技術系のイベントに併設された肩甲骨剥がしは日本初だと思いますw いつもお世話になってる笹さんの肩甲骨も剥がしました。

19名のコリを剥がしましたが、最終的には自分の腕が攣りそうになってました。来年はもう少し鍛えて出直そうと思います。ダニエルの肩甲骨も剥がしましたが、事故で痛めた肩の動きが良くなった!と喜んでもらったのも嬉しい思い出です。

トラックオーナー

のりっくさんと一緒にトラックオーナーを担当しました。オンライン参加ののりっくさんはトラックの雰囲気を作るのがとても上手で、最後に質問の時間も作り、参加者の理解を深めていたのが印象的です。 自分もそれに倣い、良い雰囲気を作るようにつとめました。テレビの電源が入らない問題などがありましたが、こばせさんの協力によって解決できました。テレビのスイッチはマジで見つけにくいw 改善点としては、同じ部屋に司会と複数の発表者がいるとハウリングしてしまうことですね。次回はリベンジします。

発表

印象に残っている発表を書いておきます。

ソフトウェアテストなんて他人事!だと思ってた私が始めた小さな取り組み / izumi ito

https://confengine.com/conferences/scrum-fest-niigata-2022/proposal/16456 アジャイル札幌で一緒に活動しているいづの発表でした。 テストは他人事だった状態から向き合うようになるまでの赤裸々な感じが良かったです。自分も相談にのったり、探索的テストの勉強会に講師として呼んでもらったりしたので胸アツな発表でした。

テストが嫌いでIT業界を離れるはずだったのに〜テスト嫌いが現場で品質改善を実践するまでの物語〜 / Aki Matsuno

https://confengine.com/conferences/scrum-fest-niigata-2022/proposal/16483/it テスト嫌いで会社やめようと思ったのに、コミュニティ、書籍、そして自身の現場での実際の改善を通してついには会社横断の品質改善改革に入ったという発表。後日談ですが、ついにQAになったとのこと!!


あとはMoneyForwordさんの2つの発表です。

開発エンジニアに聞いてみよう!QAが開発チームへに潜入し、一緒に品質活動をしているが、ぶっちゃけどう?

https://confengine.com/conferences/scrum-fest-niigata-2022/proposal/16455/qa

0→1 フェーズで E2E 自動テストを導入した私たちの、これまでとこれから

https://confengine.com/conferences/scrum-fest-niigata-2022/proposal/16447/01-e2e

MoneyForwordさんの2つの発表は両方ともとても良い発表だったのですが、それにも増して開発とQAのお互いのリスペクトを感じました。アジャイルQAとはこうでありたいという思いが強まる発表でした。どうしてリスペクトするようになったのか、キッカケを聞いたところ、「開発にはない観点やスキルがあり、QAもエンジニアなんだ!と相手を理解したところ」ということでした。いやー いい話でした。

探索的テストにおける期待値(基準)の作り方 / nemorine

https://confengine.com/conferences/scrum-fest-niigata-2022/proposal/16465

自分は「探索的テストにおける期待値(基準)の作り方」というところで発表してきました。 毎回思いますが、文献を読んだり、自分の経験だったりを言語化できるのはとてもいいですよね。 詳しくは別のエントリで書こうと思います。

www.docswell.com

ギャザリングとしての場

表情、声、ちょっとした雑談。しばらく忘れていたものが2日間溢れていたように思います。実際に合うことは人間にとって重要な活動なんだって改めて思いました。とにかく現地の熱狂度合いが凄かったです。オンサイトとオンラインをつなぐ役割として品川アジャイルの配信はかなり強い武器だな~と思いました! 札幌も今年はハイブリッドでやりたいという想いがギュンと高まりました。

少し調子に乗って余計なことを話しすぎたところもあり、次回は反省していこうと思います。

新潟美味しかった!!初日に見つけた「松崎」は来年も行きたいお店です。完全にフリーの探索的テスト(街ぶら編)でしたね。ただタバコOKのお店が多かった印象があります。

スクフェス新潟の食は地元の居酒屋「しまや」さんと酒屋「都屋」さんの強力バックアップにより完全にケータリングの域を超えていました。

最高のおもてなし

芸術

日曜日は新潟の十日町まで足を延ばしていってみました。ここは町を挙げて「大地の芸術祭」っていうのをやっています。たまたま知った。今年たまたま開催している。たまたまスクフェス新潟に行く予定があった。ということで、乗るしかない!このビッグウェーブに!ってことで行ってきました。

www.echigo-tsumari.jp

移動が車になりますが、かなり感性が揺さぶられる作品が多く、もう一回来たいと思わせる祭りでした。 20年やってるって本当に頭が下がります。

シリコンの液体なんです!

古民家に発生した特異点

風景を切り取る窓

美しいトンネルの出口

まとめ

いやーーー 新潟アツかった!!札幌も負けないように頑張ろうと思ったし、また来年も来たいと思うイベントでしたね。 少しリモートワークのノウハウも溜まったので少し長めに楽しめそうな気がしています。

JaSST東京2022 参加レポート①

今年もJaSST東京に参加しています。 Day1が終わったのですが、Jonathanの話は本当に良かったなぁとシミジミ感じています。 2013年にアジャイルサムライの読書会を仙台でしていたのを思い出しました。 忘れないうちにDay1のJonathanの講演の感想をアップしておきます。

【基調講演】「Competing with Unicorns」 Jonathan Rasmusson

感想

アジャイルサムライ」の著者であり、最近だと「ユニコーン企業の秘密」でも有名なJonathan Rasmusson氏の講演。 Spotifyの企業の話と品質についての話をしてくれました。Spotifyのテスト自動化の話もUIから始めて、文化を醸成していったというところが聞けて良かったです。また技術と同様に人にも焦点をあて、エンパワーしているというところが印象的でした。

自分は最近は社内でアジャイルに興味がある人を繋げるコミュニティを作っているところで、そこがSpotifyのGuildに近いかなと思って聞いていました。

グッと来たところ

  • 学び続ける組織 最初に正しいかどうかは関係ない。それだけ実験が多いということであり、実験が多いということは失敗が多いということ 探索→発見につながるようにしていく
  • テック会社はミッション中心 チームにミッションを与えるとチームが変わっていく
  • Spotifyの組織の分け方 squad / tribe / guild
  • チームの生産性が上がるためには何でもするし、ツールでもなんでも買う。「開発者が言い訳できない」状態にして責任をもって仕事をしてもらう。
  • Spotifyのテスティングの歴史 マニュアルテストのみ ⇒ 自動化を始める(UIから) ⇒ 逆ピラミッド ⇒ 自動化の修正 ⇒ トレーニング・コース ⇒ テスト文化の醸成 ⇒ Spotifyは成熟 ⇒テストしないといけないことが多い ⇒ Panda(テスト認証制度)の登場

f:id:nemorine:20220310200426p:plain

ぜひもう一度聞きたい講演ですので、公開を頑張ってほしいと思いました。 実行委員長、並びに運営の皆様、ありがとうございました!!

まとめ

togetterでまとめられてます。

togetter.com

探索的テストの「奥に続く道なき道の見つけ方」

前回のエントリ "探索的テストの「オポチュニティ」を意識する" で書いた「奥に続く道なき道」の見つけ方を書いていきたいと思います。

突然ですが、もし皆さんがハンターだとしたらどうやって鹿を探しますか?
街中にいれば鹿そのものを見つけられるかもしれませんね。森の中だとどうでしょうか?見つけやすそうなツノを探しますか?

層雲峡の鹿

いえいえ、鹿の痕跡を見つけるんですよ。

木が齧られている、フンがある、笹が倒れた後がある、雪の上に足跡がある、これらは重要な手掛かりになります。フンや雪の上の足跡をさらに詳細に観察すると、いつ頃居たのかという情報を得ることもできます。

探索的テストもこのハンティングと同様です。探索的テストは探索的ハント。もちろんバグそのものも探しますが、バグに繋がる手掛かりになるものも同時に探します。自分はそれを"違和感"と呼んでいます。この違和感が奥に続く道の手がかりになります。

違和感という言葉ですが、トリプルハンタークラスの探索的テスターであるmiwaさんも使っているので問題ないでしょう。

miwaさんの「違和感のつかまえかた」は年に数回は見返すブログです。探索的テストをする人は是非読んでください。

miwa719.hatenablog.com

実際にソフトウェアを探索しているときに受ける違和感とは何でしょうか? これは色々あると思いますが、例えば、、、

  • 同じアプリのA画面とB画面でダイアログの出方が違う…
  • 変更されていないはずなのに、画面のレイアウトが変わっている…
  • いつもよりアイテム一覧が出るのが遅い…

さて、次回はここらへんの違和感を含めた探索的テストのモデルを紹介します。
最近やっと自分の中でモデル化することが出来ました。

RSGT2022参加報告

1/5-7まで3日間久々のRSGT現地参加でギャザりました。 いやー 良かったですね。 ザワザワ感はこんなだったと感慨に浸りました。 スクラムフェス札幌のおかげもあり、声を掛けられることも多くなりました。 今年はアジャイル札幌のメンバーで発表もありましたが、さらにスタッフとして2名、他にも所属している会社の演劇に参加したりするメンバーがいたりと本当に楽しそうにしててコミュニティの力強さを感じました。 https://speakerdeck.com/izumii19/aziyairuzha-huang-falsehimitu

今回は久々に雪が降りました。 降り始めのときは、「札幌から連れてきましたー」みたいなネタにしたんですが、時間が経つにつれてガチすぎてネタにできなくなりました。 鉄平さんはパウダーを見てニコニコしてましたね。

大雪

個人的にグッときたセッションを挙げておきます。

非ITの宿泊業なのに、なぜDXを推進できるのか?

星野リゾートの藤井さんの話。個人的にはいつか宿をやりたいという野望もありつつ、星野さんの本とかも昔から読んでいたので絶対に聞きたいセッションでした。 ホテルの運営自体の話も面白くて、苔ガールステイなんて絶対に経営者は思いつかないだろうなーという思いで聞いていました。 DX推進の聞いた話を自分なりに整理するとこんな感じです。

  • 星野リゾートさんでは昔から現場を大事にしている文化があった。
  • 現場を大事にする文化はDX化でも変わらない。外に任せっぱなしにしない。
  • 星野代表自体がITやシステムの重要性を理解してきた。

現場の重要性とそれを認めてくれるTOPの判断の凄さを感じました。 そして藤井さんとギャザったんですが、とてもいい人なんですよねぇ。

https://www.slideshare.net/ssuser91c7c7/itdx-250944800

あなたのSprint Goalは、機能してますか?

アジャイルコーチの稲野さんのセッション。 自分のチームでスプリントゴールがイマイチしっくり来ていないので、イメージしながら考えさせてもらいました。そもそもプロダクトゴールもアレなんじゃ…みたいな仮説も浮かびましたw

終わった後に稲野さんに挨拶させてもらって、紙粘土スクラムのワークショップの話とかで盛りギャザりました。

https://speakerdeck.com/kazuhideinano/anatafalsesprint-goalha-ji-neng-sitemasuka

(スクラムアジャイルを)よく学びよく試行錯誤する~継続して学び現場に持ち帰るために~

アジャイル札幌とつながりが深いaki.mさんの発表です。 2021年アジャイル/スクラム界隈のコミュニティが生み出した怪物級のエースと言っていいと思います。

何と1年間のオンラインイベント439回参加、400本以上のセッションを視聴、技術書は214冊、365日のコード、365日のブログです。 カイジのザワザワが会場で本当に起こりました。すげーっす。 圧倒的な物量で攻める雰囲気は昔仙台で聞いたきょんくんの話を思い出しました。

懇親会でも話したのですが、aki.mさんは理解していないところが明確なんですよね。「前はちょっと分からなかったのですが今つながりました!」を頂いて、また怪物級のエースのパワーアップに貢献しました。

https://speakerdeck.com/aki_moon/to-learn-better-and-try-better

アメリカの超巨大クラウドの「中の人」に転生したガチ三流プログラマが米国システム開発の現実をリークする話

牛尾さんの招待講演。リアルな話が聞けて最高でした。 最近はスクラムでもなんでもチーム開発の前提として「信頼できる組織」が必要だと思っていて、その想いを強くしました。 とくにMSのマネージャーの話がリアルかつ圧巻でした。部下をモノ扱いせずに、一人の人間としてエンジニアとして接するって本当に大事だなと。 全ての管理職に聞いてほしい内容でした。

https://www.slideshare.net/TsuyoshiUshio/ss-250956167

新年の抱負

気力十分で現場に戻って頑張っていきたいと思います。 他にも沢山の人と話してアイディアや宿題をもらいました。 コミュニティの運営やスクフェス札幌のイベントに活かしていきたいと思います。

2022年もよろしくお願いします!!

2021年ソフトウェア系のふりかえり

2021年は会社の仕事でもアジャイル開発に関わることができました。入った時点ではチームメンバーのメンタルが最悪の状態だったので、できるところをちまちまやっていきました。正直スクラムとかの前に「信頼のある共同体」という前提が必要だと心の底から思いました。

今年は実践ソフトウェアエンジニアリングの翻訳に関われたことが印象に残ってます。分かりやすい日本語を再考するキッカケになりましたし、すごいメンバーに混ぜてもらえたのはとても嬉しかったです。

これとは別に地域ブランディング講座というのにも参加していました。毎週基調講演を聞いているようでめちゃくちゃ楽しみでした。この講座を運営している龍崎さんにスクフェス札幌の招待講演をしてもらったのもめちゃくちゃ嬉しかったです。

今回もアジャイル系とテスト系の話を分けて書いてみます。最近はほぼ混ざってきているので一緒でもいいかなと思ってるけど。

アジャイル系の活動

アジャイル札幌では、Agile Japan 2020(年度) 札幌サテライトにはじまり、大人気だったプロダクトマネジメントのすべての全て、スクフェス札幌で締めという感じです。スクフェス札幌は今年も学びの深いものになりました。 RSGTからスクラムフェス大阪、三河、札幌で全部登壇することができました。いやーよくネタあったよね。。。

ソフトウェアテスト系の活動

JaSST東北のゆもつよメソッドは数年越しで大変でしたが、社内にも一部取り入れれたので勉強した甲斐がありました。9月にはJaSST東北の新実行委員長である武田さんと一緒にSQiPでチュートリアルを実施しました。こちらは全編テス政宗問題新作で臨みました。 とある会社さんから探索的テスト導入相談の声掛けいただいたのも嬉しかったです。

来年に向けて

来年はベーシックなテスト系の勉強会を増やしていきたいなーと思っています。

イベント

  • 2021-01-06 スクラムギャザリング東京[Speaker]
  • 2021-01-28 スクラムナイト[運営]
  • 2021-02-18 デブサミ[参加]
  • 2021-03-01 アジャイルテスティング研修[参加]
  • 2021-03-15 JaSST東京[参加]
  • 2021-04-07 プライベート紙粘土スクラム[運営]
  • 2021-04-15 DevOpsDays Tokyo 2021[Speaker]
  • 2021-04-17 プロダクトマネジメントのすべての全て[運営]
  • 2021-04-24 アスパラ狩り
  • 2021-05-28 JaSST東北[Speaker/運営]
  • 2021-06-02 ソフトウェアシンポジウム[Speaker/運営]
  • 2021-06-23 freee x メルペイイベント[参加]
  • 2021-07-07 七夕-本と出合うイベント[Speaker]
  • 2021-07-09 JaSST北海道[Speaker/運営]
  • 2021-06-26 スクラムフェス大阪[Speaker]
  • 2021-08-31 AgileTechMini[参加]
  • 2021-09-10 SQiPシンポジウム[Speaker]
  • 2021-10-02 スクラムフェス三河[Speaker]
  • 2021-11-05 スクラムフェス札幌[Speaker/運営]

アウトプット

State of testing 2021
https://qablog.practitest.com/wp-content/uploads/2021/06/State_of_Testing_2021_Japanese.pdf

実践ソフトウェアエンジニアリング
https://www.amazon.co.jp/dp/4274227944

プロダクトを強化する探索的テスト戦略

www.slideshare.net

来年もよろしくお願いします♪