人類よ!これがテスト自動化だ!プロの自動化エヴァンジェリストの技術を一緒に学ぼう! 参加報告

JaSST東北で一緒に活動している伊藤さん(ぷっちゃん)がエバンジェリストとして登場するということで途中から参加しました。 いいことが沢山あったので、メモを書き残しておきます。
何か間違ってたら指摘お願いします~

mabl-japan.connpass.com

Q. 自動化で工数削減できますか?

  • 工数削減をメインにすると変な方向に進む。
  • どこをターゲットにするか明確にできれば削減自体はできる。
  • 自動化によってテスト実行を削減できたぶん、メンテに人がかかることがある。
  • テスト実行工数は夜間実施や並列実施で時間が減る。
  • 無駄がいっぱいあるようだと見た目の工数削減はできる。

Q. 自動化で品質が上がりますか?

  • テストで品質が上がりますか?と同じ質問。
  • 現状認識するところが自動テスト。その後で開発が頑張ることで品質が上がっていく。

Q. E2Eの場合、WebDriverとテストSaaSではどちらが強いでしょうか?

  • 最近はSaaS(mabl, Autify, Magic Podなど)が強いと感じている。
  • SaaSの場合、環境構築やメンテで躓かないのが良い。

Q. テストピラミッドから考えて、単体テストが充実している場合はAPIテストを飛ばすのもありでしょうか?

  • 正直ケースバイケース
  • テストピラミッドはたたき台と思っているので、自分達で納得感を持ったピラミッドを作ることが重要。

Q. SaaSが普及した場合は、テスト設計するより、SUTを操作しながら探索する方法が優位になるでしょうか?

  • 優位になるかは必ずしもそうではないと思う。
  • テスト設計をすることで、チームの品質に対する共通認識が得られる。
  • 探索的テストがやりっぱになっている場合は安心感が得られない可能性はある。

Q. mablのオンプレ版のリリース予定はありますか?

  • いまのところなし。[藤原さん]

Q. ツールは手段でしかないと思いますが、ツールを使うことが先行してしまう場合もありませんか?

  • 個人レベルでは手段先行もありかと思う。例えば全く使ったことがない人とかには効果的だと思う。

Q. アジャイル開発と自動テストの関係性についてどう思いますか?

(会場内のアジャイルテスター比率は2/150)

  • 名乗っていないだけではないか?
  • マルチロールで大変なイメージ。
  • 自動化エンジニアもアジャイルテスターの一つではないか。[藤原さん]
  • 海外で一番人気なのはコンサルさんとそれを利用する会社のセッション。[藤原さん]
  • 前職で手動でも早くテストを実施して、開発と一体化していたのはアジャイルテスターだと思った。[藤原さん]

Q. テスト自動化が上手くいくのはどういうケースでしょうか?

  • 時間をしっかりかける。
  • リーダーシップを取る人が少なくとも一人は必要。
  • 運用にのせたらメンテをする。
  • プロジェクトの最初から自動化の算段を立てる。

Q. QAが自動化するのとエンジニアが自動化するのとどちらがいいでしょうか?

  • ユニットはエンジニア、E2EはQAがいいかも。
  • 理想の形が組織ごとにある。
  • 人数比も影響ありそう。

Q. 自動化の比率はどれくらいが適切なのでしょうか?完全自動化はありますか?

  • 操作しやすい比率なので気を付けないと恣意的になる可能性がある。
  • 体感の参考値は既存テストケースの3~4割が自動化すると一段落する感じ。

Q. テスト全体の中のスコープやテスト目標をどう決めていますか?

  • リーン開発の現場より、テストのリスク、手動テストのコスト、自動化のコストを考え、優先順位をつけてどこまでやるかを考える。

Q. 手がけるテスト自動化と手動テストや他の自動テストとの相乗効果を生み出すためには?

  • (技術的なレベルでは)CIパイプラインを構築する。
  • 人のレベルでは、ユニット → E2Eの流れを考えて重複を避け、前のレベルでできていないところをカバーする。

Q. 大きなソフトウェアに対し、自動テストがすでに構築されているとき、変更にはどうやって対応しますか?絞るのも自動でやっていますか?

  • どこかの会社で自動で絞るのもやっているのを見た *1
  • 手動で影響範囲を出すか機能的に重要なところか。
  • 実行を効率化して、変更ごとにすべてのテストをやるという方向もある。

Q. 自動化の上手くいっている評価基準は?

  • 自分達で決めるのが一番大事
  • 自動化の上位目標が守られているかどうかで確認する

Q. 自動化テストチームと手動テストチームを繋げるのもエバンジェリストの仕事ですか?

  • あまり意識したことはないけど、仕事の過程でつながったことはあると思う

Q. 新規開発のときは動くものが後ろになるため、E2Eの自動化が難しいと思います。

  • SaaSを使って、書き捨てでもいいから対応してしまうというのは一つの手だと思う。
  • 1回目は手動、2回目は自動。[藤原さん]
  • 自動化をする過程のときに、探索的な手動テストをやってしまう。

Q. 自動化エバンジェリストになるために必要なスキルは?

  • 色々な対象の自動化を知るのが第一歩。事例としてもっておくだけでも良い。
  • エバンジェリストは実装技術でトップである必要はない。

感想

タイトルからハンズオンみたいなイメージかと思って参加しまいたが全然違いました(笑 でもとっても勉強になりました。どうもありがとうございました!

*1:たぶんGoogleの話。JaSST’18東京でJohn Micco氏が回帰テストの自動選択の話していました。 http://jasst.jp/symposium/jasst18tokyo/pdf/A1.pdf

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

2020年はCovid-19で生活が一変した年でしたね。。。
遅ればせながらふりかえりを書いておきます。 今年もソフトウェア系の活動とアジャイル系の活動に分けてみます。

アジャイル系の活動

前半のアジャイルジャパンの札幌サテライトが中止になったのがちょっと悔しかったです。 もう少し早くやっていれば。。。
4月に予定して延期したスクラムフェス札幌2020は何とか11月に実施しました。初回ということでやっぱり大変でしたが、スクフェス大阪などでの一部運営したノウハウが生きていて、バタバタしながらも走り抜けたと思います。参加者からはたくさんの嬉しい言葉をもらったのを覚えています。
コミュニティの運営メンバーも自分の現場を大切にしながらも、どんどん外に出ている感じがして嬉しい限りです。

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

今年は探索的テストの声掛けを多くもらえるようになりました。 もう少し深く勉強して、探索的テストのコンサルができるくらいになりたいですね。
また「ソフトウェアテスト技法練習帳」のサポートとか、それ関係で声をかけてもらえることが多くなって本を出すことの重要性をヒシヒシと感じています。 社外勉強会をやる予定だったのですが、やらないといけないことが多く、まだできていない状況です。

来年に向けて

やりたいこと多いけど手が回っていないので、時間を作る、体調管理するを中心に粛々とやっていきたいです。
特に来年は大きい翻訳があるので毎日の時間を上手く使いながらやっていこうと思います。 コミュニティ的にはアジャイル系xテスト系を少し増やしていきたいです。

イベント一覧

  • 2019-01-08 スクラムギャザリング東京[参加]
  • 2020-01-22 ゆるWeb x TEF道 探索的テスト勉強会[Speaker]
  • 2020-01-23 第1回『Design It!』読書会
  • 2020-02-12 RSGTの参加報告会【札幌スクラムナイト】[Speaker]
  • 2020-05-28 探索的テスト勉強会[Speaker]
  • 2020-06-20 JaSST Online Anemone[参加]
  • 2020-06-26 スクラムフェス大阪[Speaker]
  • 2020-07-03 JaSST北海道オンライン[参加]
  • 2020-07-09 QA合同勉強会 探索的テスト[Speaker]
  • 2020-07-30 CCSR勉強会[参加]
  • 2020-08-06 チームを上手く回すプラクティス【ふくおかスクラム x アジャイル札幌合同イベント】
  • 2020-09-10 SQiPシンポジウム[参加]
  • 2020-09-15 バックホーホイールローダー講習[資格取得]
  • 2020-09-19 XP祭り[参加]
  • 2020-09-26 スクフェス三河[Speaker]
  • 2020-10-03 JaSST Online Belgamot[参加]
  • 2020-10-31 やさしいスクラム(初心者向け)[Speaker]
  • 2020-11-05 スクラムフェス札幌 2020[Speaker]
  • 2020-12-05 やさしいふりかえり(初心者向け)[Speaker]
  • 2020-12-11 【ふくおかスクラム x アジャイル札幌】スクラムガイド2020について語り合う会[参加]
  • 2020-12-19 やさしいテスト(初心者向け)[Speaker]

※上記以外にも社内でかなりの数の鑑賞会を実施しました。

OUTPUT等

State of testing 2020 日本語版翻訳 https://www.practitest.com/resource/state-of-testing-report-2020-jp/

2020年は自分にとっては素晴らしい一年になりました。

地域コミュニティとしては考えないといけないこと

このエントリは「ScrumFestSapporo2020 Advent Calendar 2020」の24日目のエントリになります。

コロナ禍の中でオンラインイベントが全盛になって参加者としては嬉しい反面、地域コミュニティとしては考えないといけないことが増えてきていると思っています。

問題:地域イベントの特色の欠如

これまではその土地に集まって、登壇者の話を聞き、美味しいお酒や料理を食べることで成り立っていた特色が、オンラインになると一気になくなってしまいます。特に有名な人を呼んで話を聞くだけであれば、どこの地域のオンラインイベントに参加しても良いですよね。

これを何とかするために少し考えてみました。

  • 地域コミュニティのつながりを強めておく
  • そこでしか聞けない話を用意する
  • 新しいことに挑戦する

地域コミュニティのつながりを強めておく

オンラインイベントでは『誰の話を聞くか』に加えて、『誰と一緒に参加するか』が重要になってくると思います。そこに行くと、知り合いがいて、話が弾む。行きつけの居酒屋みたいなイメージでしょうか。大きなイベントを年に1回実施するよりは、年間を通して小さなイベントを継続的に実施することで、地域の中でのつながりが強まっていくと思います。 アジャイル札幌では、読書会やスクラムナイトみたいなゆるいイベントを継続的に実施しています。

そこでしか聞けない話を用意する

どうしても東京の人凄いなーって思うことが多いと思いますが、自分はスクラムフェス札幌のオープニングでもお伝えしたとおり「地域に解はある」と思っています。話を聞くと本当にすごいことやってたり、めちゃくちゃ面白い人がたくさんいるんですよね~ そういう人達に登壇してもらうことで、同じ地域の人へは仲間意識やライバル心を刺激し、他地域の人には、「へー この地域には面白い人いるんだなぁ」と思ってもらいたいです。 スクラムフェス札幌2020では、登壇者を北海道、北海道外で色分けすると半々くらいになっています。

新しいことに挑戦する

コミュニティが大きくなったり、長く続いたりすると「やらされ感」みたいなものが出てきます。 もちろん時間は有限なのですが、面白い!とかやってみたい!と思うことはどんどん挑戦していくことで、やらされ感から脱却できると思います。 自分の大きな軸は「自分が楽しい」のと、「人を楽しませる」なので、まだ誰もやってなくて、面白そうなことはドンドン行くタイプです。 スクラムフェス2020での新しいことへのチャレンジは「北海道ギフト」でしたね。

来年も新しいことにチャレンジしながら、全力で楽しんでいこうと思っています!!

ちゃぶ台効果

このエントリは「ScrumFestSapporo2020 Advent Calendar 2020」の17日目のエントリになります。

スクラムフェス札幌で「ちゃぶ台効果」という言葉が生まれました。

ちゃぶ台効果:ちゃぶ台から配信することで、オンラインの垣根をなくし、ギャザりやすくする。

f:id:nemorine:20201217210547p:plain
ちゃぶ台のある風景

Day0のセッション、そしてDay1のネットワーキングで使いました。 元々イベントを作っていくうえで意識したのは、「皆さんと同じエンジニアが、企画運営しています。聞きたいことは何でも聞きましょう、話したい事は何でも話しましょう」という雰囲気を作ることです。そのイメージとちゃぶ台があるお茶の間が絶妙にマッチしました!

きょん君の感想がとても嬉しいです。

「札幌会場の配信が、家庭とちかいかんじがよかった。現状のオンライン参加者は自宅から参加している人達がおおいとおもうし、わたしもそうで、そうなると画面の中が別世界すぎると没入感がたかまるまで時間がかかる。でも家庭の風景とちかいと、すっと没入できていくので、ホーム画面的な配信においては視聴者の環境にあわせていくっていうのはすごくいいとおもった。 」

しかしほとんどの人はちゃぶ台を使ったことがないはずなのに、なぜこんなに人を惹きつけるのか。 その謎を解くため我々はAmazonへ向かった。

# ザキさん ありがと!!

爆発しがちなデシジョンテーブルを抑え込むちょっとしたコツ

今回はテストの小ネタということで、爆発しがちなデシジョンテーブルを抑え込むちょっとしたコツです。 ソフトウェアテストの小ネタの12/14担当です。

ソフトウェアテストの小ネタ Advent Calendar 2020 - Qiita

爆発しがちな例

Aサーバー(以下A)からBサーバー(以下B)にデータをコピーする機能の例を考えます。 コピーボタンが押下可能な条件は下記とします。

  • Aにデータが存在する
  • Bにデータが存在しない
  • Aのコピー可能設定がtrueである
  • Bのコピー可能設定がtrueである
  • Aサーバーの状態がノーマル状態、またはメンテナンス状態である
  • Bサーバーの状態がノーマル状態、またはメンテナンス状態である

※状態はノーマル、メンテナンス、セーフモードの3つ

さて、これをデシジョンテーブルにすると2×2×2×2×3×3で144パターンになります。 デシジョンテーブルはちょっとパラメータが増えると、すぐ爆発してしまいます。

小さくする

じゃ どういう風に小さくしていくかというと、条件のうち独立したもの(=他に影響がない)と仮定して扱っていきます。

例えば、以下のようにデータが存在すること、コピー可能性設定、状態の確認をそれぞれ一つのカタマリとして考えます。

1つ目(2×2)

  • Aにデータが存在する
  • Bにデータが存在しない

2つ目(2×2)

  • Aのコピー可能設定がtrueである
  • Bのコピー可能設定がtrueである

3つ目(3×3)

  • Aサーバーの状態がノーマル状態である
  • Bサーバーの状態がノーマル状態である

こう考えることで、掛け算が足し算になります。2×2+2×2+3×3=17パターン!!
いきなり現実的な数字になりましたね。

f:id:nemorine:20201214173149p:plain
掛け算から足し算へ

工夫する

もう少し考えてみましょう。 2つ目と3つ目の分け方がちょっと気になります。 コピー可能設定と状態の確認はサーバーに関わらない共通処理なのでここを一緒にしたほうがいいかもしれません。
プログラマの人も共通処理にしている可能性が高いです。コードを確認できてこの通りになっているとベストですね。

1つ目(2×2)

  • Aにデータが存在する
  • Bにデータが存在しない

2つ目(2×3)

  • Aのコピー可能設定がtrueである
  • Aサーバーの状態がノーマル状態である

3つ目(2×3)

  • Bのコピー可能設定がtrueである
  • Bサーバーの状態がノーマル状態である

こうすると2×2+2×3+2×3=16パターンです。

まとめ

最初に説明したとおり、"他に影響がないとしたモデリング"をすることで、テストケース数を減らしています。 重要なのはどのパラメータの結びつきが強いかを考えることです。強いと思ったところは同じカタマリにして、弱いと思ったところは別のカタマリにしましょう。
もちろん落としたテストケースでバグが出ることはあるかもしれません。
そうならないようにモデリングの確からしさを担当者に確認したり、コードを見たり、不安な場合は高めに網羅するようにしましょう。 影響ないはず!というところのテストには組合せテスト(オールペア法など)で網羅していくことで安心することができます。

※2020/12/15 秋山さんのコメントを受けて組合せテストの話を追記しました。

北海道ギフトの話

さて今回はスクラムフェス札幌で話題になった北海道ギフトの話をします。

北海道ギフトは自分がどうしてもやりたかった企画で半ば強引に押し切りました(笑
今回は地元の美味しい食べ物を楽しめないぶん、北海道ギフトで少しでも北海道を身近に感じてもらいたいと思いました。 結果、オンラインだけども味覚、嗅覚、触覚も使った美味しいフェスになったと思います。

元々、北海道の美味しいスイーツをちょっとずつ楽しめるセットがあるといいのになーと思っていたのですが、今回の北海道ギフトで個人的な夢が実現できて良かったです。

とはいっても実行までにはクリアすべきハードルはいくつかありました。

  1. 個人情報の問題
  2. いつまで受け付けるか問題
  3. 誰が買うのか問題
  4. 誰が包むのか問題

個人情報の問題

これは実行委員でかなり揉めました。そこまで頑張る必要あるか、リスクが高いのではないか。住所や名前が分からなくても送れる方法がないか色々探したのですが、最終的には申し込み時に個人情報の取り扱いに同意してもらうことにしました。 発送が終わるまでは厳重に管理して、発送が終わり次第、データと控えの用紙を速やかに破棄しました。

いつまで受け付けるのか問題

なるべく多くの人に届けたいという想いはあったのですが、発送の手間があるので申し込み期間を決めました。その前に告知を多めにしてなるべくたくさんの人に届けるようにしたつもりです。その結果、70名の方に申し込んでもらいました。本当にありがとうございました! 申し込めなかった人ごめんなさい ><

誰が買うのか問題

これは最初は一人でいけると踏んでたのですが、自分の見積もりが甘かったです。お菓子だけに。
両手に持ったお菓子が袋にパンパンで通りすぎる人の目が痛かったです。「あっ これは自分で食べるわけではないです」と心の中で呟いていました。 お菓子をフィニッシュしたあと、北海道名物のガラナジュースを買いに行ったのですが、これがお店で売っているところがなくて、すべて札幌駅周辺の自販機で購入しました。おっさんがガラナを買いだめしている姿もまたシュールだったと思います。

誰が包むのか問題

これも見積もりが甘かったです。おかしいですね。。。
当初は二人でやろうと思いましたが、実行委員の上戸鎖チームが手伝ってくれました。本当に感謝です。包むときはスクラムの話とかをしながら、時折立ち止まりカイゼンをかけながら詰めました。また出来上がった北海道ギフトがイイ感じ過ぎて、プロダクト愛が止まりませんでした。本当に良いプロダクトって毎回うっとりするんですね(笑

反応

ギフトが届いたときの皆さんのTweetが嬉しさに溢れていて、企画した自分もとても嬉しかったのを覚えています。 届いた瞬間に家族に取られてしまって、おかきしか残っていない人もいたようですが、家族サービスだと思っていただければ幸いです。

アジャイル札幌の初期メンバーでもあり、今回スピーカーとしても登壇してくれた前鼻さんがとても喜んでくれました!
東京で頑張っている仲間にも届けることができて良かったです!!

本会のときにはもうやらないと宣言したのですが、「銀の弾丸ラジオ」で及部さんがめちゃ良かったと言ってくれて、そんなに言ってくれるならと心がグラっと揺らぎました。もしかしたら、次回も、、、

内容

自分で北海道ギフトを作りたい人のために、内容を書いておきます。

◆お菓子

  • 白い恋人石屋製菓
  • バターサンド(六花亭
  • 三方六 白小割(柳月)
  • あんバタサン(柳月)
  • 太陽いっぱいのトマトゼリー(もりもと)
  • ナッティ―バー(ロイズ)
  • 北海道おかき(北菓楼)

◆アルコールセット

◆ジュースセット

  • コアップガラナ
  • トマトジュース / リンゴジュース