BizReach QA Meetup というイベントに参加しました

# はじめに
2019/7/18に[【BizReach QA Meetup】](https://d-cube.connpass.com/event/135315/)というイベントに参加しました。
発表資料のリンクとイベントに参加した際の自分のメモとtwitterのつぶやきをまとめてみました。
イベントのページは[こちら](https://d-cube.connpass.com/event/135315/)
twitterはこちら：[#D3QA](https://twitter.com/hashtag/d3qa?f=tweets&vertical=default&src=hash)


# 発表1:〜 孫子に学ぶ 〜　QA組織の立上げカタ
やまもとくにおさんの発表

## 資料の場所
<iframe src="//www.slideshare.net/slideshow/embed_code/key/qGoD41xf56DPN2" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/kunioyamamoto519/biz-reach-qa-meetup-qa-teambuild" title="[Biz reach qa meetup] qa team_build" target="_blank">[Biz reach qa meetup] qa team_build</a> </strong> from <strong><a href="https://www.slideshare.net/kunioyamamoto519" target="_blank">久仁朗 山本(旧姓 村上)</a></strong> </div>


## 発表資料の抜粋とメモ
・ビズリーチQAチーム2018年8月に立ち上げ
　 - 立ち上げ時・・QA：開発の割合＝1:300
　 - 現在・・QA55:開発400
　ほとんどがテストチームだけど、PMO/SEPG、教育もやってる。
・ビズリーチQAチーム開発業務全般の品質向上が目的
・9年間QA無しだったところにQA文化を根付かせた。

・「QA」はテストじゃなくて品質保証
・QAの目的：
品質の可視化と向上を促進させ、サービス価値を向上させる。そうすれば自然と会社の市場価値も上がっていくからコストをかける価値は十分にある。
・Total Quality Management を目指している。
・プロダクトのQAだけではなくプロセスのQAもやっている。

### 基本のカタ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/a81ae3be-ec3c-419f-1af7-3d29061d6db2.png)
[資料](https://www.slideshare.net/kunioyamamoto519/biz-reach-qa-meetup-qa-teambuild)より抜粋

彼を知り己を知る
基本のカタ：彼を知り己を知れば百戦あやうからず。
　⇒いわゆる情報収集とか 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/107274ed-acac-6917-a282-03a3cb4278a8.png)
[資料](https://www.slideshare.net/kunioyamamoto519/biz-reach-qa-meetup-qa-teambuild)より抜粋

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/731be473-5ed2-ac87-6fa4-a3f8cd248752.png)
[資料](https://www.slideshare.net/kunioyamamoto519/biz-reach-qa-meetup-qa-teambuild)より抜粋

事例：QA組織立ち上げ時
・総合テストで組織の20%、結合テスト等も含めると30~40%がQAのコスト。
・QAのコスト感を経営層に伝える。開発の2割が総合テストにかかることはまず説明する。経営層に対してはデータで示すのが効果的。
・「全部はできないよ」と相手に言わせたら、どこまでやるかを聞いていく。入り込みやすい。
・[アジャイルサムライ](https://www.amazon.co.jp/dp/4274068560)でも1つのロールがQAとなっている。スクラムでも、つまり最新の開発手法でもそれぐらい必要。

### プロジェクト毎の入りカタ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/1c8953c2-8748-73eb-3bc4-6257131b08e3.png)
[資料](https://www.slideshare.net/kunioyamamoto519/biz-reach-qa-meetup-qa-teambuild)より抜粋

・斥候、遊撃、工兵
分析と調査、探索的テスト、スモークテスト

・共に戦う
QAがいる＝開発と並行してできる。
人それぞれのベロシティを考慮した計画を立てる。
テスト計画で忘れがちなことは個人のベロシティ。これをミスってアサインするとミスる
最初に緻密すぎる計画をたてない。変動を見越して随時見直す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/086f432c-e57f-129b-507d-0616f615e5b8.png)
[資料](https://www.slideshare.net/kunioyamamoto519/biz-reach-qa-meetup-qa-teambuild)より抜粋

・時間こそが最強のリソース
遅くなってうまくいったことはない。
「あの時だったらあの手が打てたのに。」ってなりがち。
⇒できるだけ早く入って共に戦う姿勢を見せる。
Quality Cost Delivery でDだけは取り返しがつかない、最重要のリソース。良いと思っても期限が過ぎたら使われない。条件にマッチしなければ使われない。早め早めに動いた方が良い。
とりあえず、やれるところからやる。共に戦う姿勢を見せて現場の信頼を得る。
・一方で、勝算無きは戦わず。
ムリはしない。勝てないなら撤退も考える。何を諦めるのか決める。
勝てない＝ビジョンに合わない。工数、予算などの都合がつかない場合のこと。勝ち目が見えない場合は無理しない 。

### プロジェクト毎の捌きカタ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/d44b2686-c6e8-474f-e451-c3243f8cd1d6.png)
[資料](https://www.slideshare.net/kunioyamamoto519/biz-reach-qa-meetup-qa-teambuild)より抜粋

・最初の握りが大事。
変動要因があることは最初に伝える。とか。

・勝ち方、勝筋、落とし穴。
リソースの判定。
リソース期限を延ばす。
⇒プロジェクトについての勝ち方、落とし所を決めておく。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/b9a31ddc-d33e-46c9-9119-f5bb04f8bf2b.png)
[資料](https://www.slideshare.net/kunioyamamoto519/biz-reach-qa-meetup-qa-teambuild)より抜粋

割と当たり前のことが書いてあるが、書いてあること、本当に普段考えている？

### QA・テスト組織の育てカタ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/fd68dff2-9a2a-9429-6f1c-f13a4a2d113b.png)
[資料](https://www.slideshare.net/kunioyamamoto519/biz-reach-qa-meetup-qa-teambuild)より抜粋

・テストチームはやり方によっては簡単に開発チームの生産性を下げてしまう。どうしたら会社の生産性を高めることができるか？をちゃんと考え抜く。最善の手を選ぶ。お互いに納得感があることが大事。

### 終わらせカタ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/f2082e22-6327-1dfe-a120-a98b63799237.png)
[資料](https://www.slideshare.net/kunioyamamoto519/biz-reach-qa-meetup-qa-teambuild)より抜粋

これは終わりカタ（終わらせカタではない）
・メテオ
テストがQA組織がなくなる。
・ハルマゲドン
親会社の判断で消える。
・ラグナロク
組織長同士の戦いで負けた方が消える。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/583d21ab-5fb6-eeba-557d-215a19441359.png)
[資料](https://www.slideshare.net/kunioyamamoto519/biz-reach-qa-meetup-qa-teambuild)より抜粋

これが終わらせカタ。
自分で終わらせる方法

### まとめ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/a42c5116-1bad-6eb3-a437-67635b2e87b2.png)
[資料](https://www.slideshare.net/kunioyamamoto519/biz-reach-qa-meetup-qa-teambuild)より抜粋

# 発表2:とあるQAチームの立ち上げから半年〜1年のお仕事
井芹久美子さんの発表

## 資料の場所
https://speakerdeck.com/isekumi/bizreach-qa-meetup20190718

## 発表資料の抜粋とメモ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/61a0e5fd-5537-9aa1-0f83-21cde9f7fb5f.png)
[資料](https://speakerdeck.com/isekumi/bizreach-qa-meetup20190718?slide=3)より抜粋

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/422a797c-1fd0-3e2b-9606-d4204af16e12.png)
[資料](https://speakerdeck.com/isekumi/bizreach-qa-meetup20190718?slide=5)より抜粋

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/7c8f2121-dab1-54bb-2217-1e3c6b2e38cc.png)
[資料](https://speakerdeck.com/isekumi/bizreach-qa-meetup20190718?slide=8)より抜粋

・2週間単位でテストしている。
テスト分析、設計＝1週間
テスト実行＝1週間
開発とQAが1週間ずつずれて、2週間に1度のリリースを行っている。協調×柔軟な関係性。
QAと開発がずれて動くことで無駄なく開発が進められる

・その間開発チーム何している？
　⇒次の設計に向けた設計、PGM

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/16bfe5cd-cfa4-78d1-0e29-07c320cbc9b6.png)
[資料](https://speakerdeck.com/isekumi/bizreach-qa-meetup20190718?slide=9)より抜粋

・QAと開発の関係
一緒にテストを考えたり、テスト結果を元に開発に聞きに行くことはある。
⇒基本的にQAは独立しているが、完全に単独で存在しているわけではない。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/c7064774-6450-8bbc-fe03-28e5af2dd158.png)
[資料](https://speakerdeck.com/isekumi/bizreach-qa-meetup20190718?slide=11)より抜粋

・QAはテストだけではない。
過去と比べて気になる変化
このプロセスは何の目的でだれがやっているのか？

勉強会：30分とか1時間とか。できるだけ早くやっていく。

大きい課題
現場の状況を見ながらやっていく。
コミュニケーションミスが発生していそうな用語とか。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/9f2d11eb-b83e-5dec-806b-bb80422c5df7.png)
[資料](https://speakerdeck.com/isekumi/bizreach-qa-meetup20190718?slide=14)より抜粋

対応には緩急をつける 小さいものを軽く始める、影響が大きいなら情報収集しつつ少しずつ準備

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/4202ae46-5dbd-f7eb-8940-f0cf7b450bbf.png)
[資料](https://speakerdeck.com/isekumi/bizreach-qa-meetup20190718?slide=15)より抜粋

プロダクトのテストプロセス改善だけがQAの仕事ではない。もっと広い

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/a09ec57c-1ce1-aaec-421c-673bce8998b8.png)
[資料](https://speakerdeck.com/isekumi/bizreach-qa-meetup20190718?slide=18)より抜粋

テストだけでない、周辺技術やプロセスへの関心もQAには必要。
視野を広げる、テスト以外の改善策も提案したい。
QAがやりたいこと
品質の安定化、向上
⇒開発プロセスのそこかしこにある。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/b3f4acc2-5bad-3202-ba8b-71418797e9b4.png)
[資料](https://speakerdeck.com/isekumi/bizreach-qa-meetup20190718?slide=19)より抜粋

・QA経験が少ない/ない人へ
品質に関して自分の考えを持つこと、考える癖をつけること、自分の考えをもつことが大事
やりたいこと、その実現に必要なこと、具体的に考えることが大事

# 発表3:新卒入社の人達にテストの大切さを伝えた話
ブロッコリーさんの発表

## 資料の場所
今回の発表資料：https://speakerdeck.com/nihonbuson/bizreach-qa-meetup

・ブロッコリーさんの[過去の発表資料](https://speakerdeck.com/nihonbuson)っぽいもの

## 発表資料の抜粋とメモ
ここでの新卒社員は開発の人。QAではない。

### 新卒研修の内容
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/1a82be73-4c03-d815-1d12-085945284202.png)
[資料](https://speakerdeck.com/nihonbuson/bizreach-qa-meetup?slide=7)より抜粋

研修監修者からはTDDのやり方のレクチャーを1日でとオーダーを受けたが、テストについての考え方から2日使うように変更した。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/68847c48-06b5-d347-af64-097db2991328.png)
[資料](https://speakerdeck.com/nihonbuson/bizreach-qa-meetup?slide=8)より抜粋


・2日間で研修
テストに対しての考え方
　⇒TDD以前に必要。TDD以前に知るべきことがある。
テスト設計
自動テストについて
TDD

### 実際のカリキュラム
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/6ab20bec-0a0f-fadd-346e-374f11f81fcc.png)
[資料](https://speakerdeck.com/nihonbuson/bizreach-qa-meetup?slide=10)より抜粋

・JJUGでの資料は[これ](https://speakerdeck.com/nihonbuson/jjug-ccc-2019-spring)


**テストの7原則**
このあたりが参考になりそうな気がした。
・[テスト担当者なら絶対に覚えておきたい『ソフトウェアテストの7原則』](https://webrage.jp/techblog/7_principles_of_software_testing/)
・[ソフトウェアテストの7原則について経験と照らし合わせて考えてみる](https://qiita.com/NagaokaKenichi/items/b5d5d0b141e816991133)
・[システムテストの観点と七原則](https://www.digitalhearts.com/dh-blog/system_test/)
・[ソフトウェアテストの基礎：ソフトウェアテストの7原則](https://appkitbox.com/knowledge/test/20121112-8)
・[7payの会見から学ぶソフトウェアテストの7原則](http://nihonbuson.hatenadiary.jp/entry/2019/07/07/123000)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/5f8c118d-1491-4e40-8274-0642c535fc38.png)
[資料](https://speakerdeck.com/nihonbuson/bizreach-qa-meetup?slide=11)より抜粋

1日目1限目＝1日目の午前
1日目2限目＝1日目の午後一

テスト設計の目的：なぜテスト設計が必要か

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/c793c8c2-8b15-2f35-0e16-2dc6239fd78c.png)
[資料](https://speakerdeck.com/nihonbuson/bizreach-qa-meetup?slide=12)より抜粋

**CFD**
この辺かな・・・。
・[ソフトウェアテストの本質を振り返る](http://jasst.jp/symposium/jasst12kansai/pdf/A2-3.pdf)
・[テスト技法「CFD」実践ワークショップ ワークショップの取り組み～ 現場での実践を目指して ～](http://jasst.jp/archives/jasst04/pdf/B1ch.pdf)

高位テストケース＝ハイレベルテストケース
低位テストケース＝ローレベルテストケース
これらの考えは開発者の視点で大事なこと。開発者が適切なテストケースを作れるようにするために必要。

**ハイレベルテストケース／ローレベルテストケース**
・[テストケースの表現と粒度（マニアック編～ISTQB（JSTQB）の情報から考える）](http://blog.amateur-factory.jp/?eid=1444288)
・[ハイレベルテストケースとローレベルテストケース](http://specwrite.co.jp/2018/04/24/1-ハイレベルテストケースとローレベルテストケー/)
・[テスト条件とは何かの解説ぽい記事](http://mhlyc.hatenablog.com/entry/2018/10/14/122952)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/6fa1ef93-ceb1-6003-0c7b-ee820790c99f.png)
[資料](https://speakerdeck.com/nihonbuson/bizreach-qa-meetup?slide=13)より抜粋

**テスト自動化の8原則**
・[テスト自動化研究会](https://sites.google.com/site/testautomationresearch/test_automation_principle)
・[テスト自動化の8原則について](https://ma-garin.hatenablog.jp/entry/2019/02/27/202839)

E2E：自動テストのE2E

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/8ff809a9-2682-e4ef-7f71-b5539aafa442.png)
[資料](https://speakerdeck.com/nihonbuson/bizreach-qa-meetup?slide=14)より抜粋

TDD：ライブコーディングを動画として撮ってそれを見せた。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/ce2ae639-05d4-ade8-0ac3-5aaa17052c9b.png)
[資料](https://speakerdeck.com/nihonbuson/bizreach-qa-meetup?slide=16)より抜粋

・ソフトスキル
モブプロすることで、ついて来れない人に合わせてチームで協業することを学ばせた。
モブワーク&TDDでfizzbuzzをやる。レベルの高低差があるチーム内での協業を学んでもらう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/9d09bf1a-1a19-26ed-c28f-f445b02fa417.png)
[資料](https://speakerdeck.com/nihonbuson/bizreach-qa-meetup?slide=18)より抜粋

[Code smell](https://so-zou.jp/software/tech/programming/tech/refactoring/code-smell.htm)：どういうコードが汚いのか

・Tennis-Refactoring-Kata
わざと汚いコードがGitHubにあがっている。
⇒これかな？
https://github.com/emilybache/Tennis-Refactoring-Kata

・TDDサイクルが短い
Tennis-Refactoring-Kataで「汚いコードだな・・・」とか言ってた人が自分でレガシーコードを書いていたりする。
このテストコードがなぜ必要なのかを考える。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/ce723279-4e25-f98b-a550-74b2f05714a1.png)
[資料](https://speakerdeck.com/nihonbuson/bizreach-qa-meetup?slide=19)より抜粋

・[cyber‑dojo](https://cyber-dojo.org/)
何時何分にテストを回してその結果がグリーンだったのかレッドだったのかがわかる。
TDDのサイクルを長くすると、20時にグリーンだったのが20時5分でコンパイルエラーになったりする。それを直すのに5分かかったりする。
⇒TDDのサイクルを長くするとエラーの状態から回復するのに時間がかかる。長時間テストを通さないことが負債になる。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254168/cf6f8956-ed0b-61d3-8868-86ef9bf625de.png)
[資料](https://speakerdeck.com/nihonbuson/bizreach-qa-meetup?slide=22)より抜粋

モブプログラミングにおける交代のタイミング：http://nihonbuson.hatenadiary.jp/entry/2018/12/25/193000

・詰め込み研修なので、全部理解されなくとも、聞いたことはないよりかは、知っていた方がよいだろう、と思ってやった。

### 研修を受けた新卒の感想

TDDの話がないに注目。
テストの考え方に関する感想が多かったのが良かった点だと思っている。

# 懇親会
私は不参加でした。twitterのつぶやきだけピックアップしておきます。

【質問】
ビズリーチさんのQAってバッググラウンドが様々でかつ経験値高い人の集まりですが、QAとして意見や方向性が違ったりした時どうやってまとまってますか？
【頂いた回答】
確かにバッググラウンドややってきたことは違うけど、皆、外の勉強会やイベントに出て「色んなやり方がある」と分かってる人たちだから、自分のやり方や意見に固執する、って感じはない。むしろ「こんな記事あったよ」とかどんどん情報を発信共有する雰囲気。

・モブワークの効果。
例えばプログラミングが得意な人は、意外と自分が説明できないことに気づく。メンバー同士、思うように進まずもどかしい思いをするのことで、チームとして意識を合わせていくことの大切さを学ぶ。

・ハイレベルテストケースの効果。
テストの意図を残す。ローレベルテストケースだけでは意図が残らない。座学を初日に実施して、2日目のワークで身をもって体感してもらう。

・実装に追われているとHowに囚われてしまい、テストのことを考えることができなくなる。それを後悔する様子が研修後の新卒チームに見られた。

・新卒でない社員(開発メンバー)には、初日の研修(テストの目的や考え方)の研修のみ実施した。こちらも好評だった。