7payの会見から学ぶソフトウェアテストの7原則

目次

はじめに

話題になっている7payの話を、ソフトウェアテストの知見(ソフトウェアテストの7原則)を使って、反面教師として次に活かせる形にして書いてみます。

ただし、「これを知れば事前に防げる!」と主張したいのではなく、(エンジニアも経営層も)意識して臨まないといけないという意味も込めて書きます。

この記事の元ネタ

教訓の元にした7pay会見の記事はこちら

www.itmedia.co.jp

ソフトウェアテストの7原則の説明はこちら(昨年に改定された版を引用しています)

【リンク】ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2018.J02

教訓1:「脆弱性はなかった」という発言


セブン&アイ清水健執行役員は「あらゆるサービスについて、事前にセキュリティ審査をやっている。7payもきちんと確認したが、脆弱性(ぜいじゃくせい)はなかった」と繰り返し強調した。

この部分から活かせる教訓は2つ。

ソフトウェアテストの7原則の1.テストは欠陥があることは示せるが、欠陥がないことは示せない

テストによって導き出せるのは、欠陥があることのみです。悪魔の証明ってやつですね。

上記の発言が「(セキュリティ審査の中では)脆弱性がなかった」という報告であれば良いです(結果としては良くないけど)。

ただし、「セキュリティ審査はやった。だから脆弱性はない」という主張であれば、明確に「テストは『欠陥があること』しか示せない」という原則を理解していないことが分かります。

ソフトウェアテストの7原則の7.「バグゼロ」の落とし穴

「バグがない=素晴らしいとは限らない」ということです。

特に今回のように、「セキュリティ審査では1件も問題が出なかった」という報告は(特に経営陣は)安心材料になったのかもしれないです。

ただし、そこには落とし穴があり得るという理解が必要です。

教訓2:仕様・設計の段階での指摘


そもそも「明らかに問題がありそうな仕様・設計」について、現場担当者レベルで誰も気付かなかったのかという疑問は残る。

この部分から活かせる教訓はこれ。

ソフトウェアテストの7原則の3.早期テストで時間とコストを節約

テストに関しては初期部分から入ることが重要です。

今回の場合は仕様策定や設計段階で気づくべき内容を、リリース後まで放置していたためにこれだけ大ごとになってしまっています。

仕様レビューの段階で「これってどうなの?」という話し合いがあれば、きっと小1時間で修正できたでしょう。*1

(「現場は修正したかったが、政治的なことがあって…」とかは邪推できますが、一旦その話は置いときます)

教訓3:決済系のサービスに対するテスト


今回の大規模な不正アクセス被害で多くの利用者の信頼を失ったのも事実だろう。「スマートフォン決済全体の信頼を損なう出来事ではないか」と指摘されると、小林社長は「(今回の件は)残念な事象。スマートフォン決済は安心、安全、便利と思ってもらえるよう、早急に立て直したい」と答えた。

この部分から活かせる教訓はこれ。

ソフトウェアテストの7原則の6.テストは状況次第

全ての製品・サービスにおいて同じテストを当てはめれば良いのではなく、状況によって変わっていきます。

生命を扱う製品・機能と、使いやすさを追求するだけの製品・機能では、テストの工数や方法なども変わっていきます。

今回の場合は決済というお金を扱う部分が含まれているにも関わらず、テストがきちんと行われていなかったように思われます。

セブンイレブンの場合、2007年に「お取り寄せ便」というサービスを開始しています。(現在のサービス名は「セブンミール」)

7-11net.omni7.jp

しかし当時のクレジットカード決済はそこまで使われていたとは思いにくく*2、お金を取り扱っているという意識は少なかった(商品をお届けするためのサービスという位置づけだった)のではないでしょうか?

そういう状況であれば、乗っ取りが発生しても各ユーザーに甚大な被害は起きなかった可能性が高いです。(いや、個人情報とかがあれば、それはそれで問題だけど)

決済というお金を扱う部分も含めていることで、もっとその部分に関して重点的に考えるべきではなかったかと思います。*3

おわりに

今回は7payの会見を元に、ソフトウェアテストの7原則に当てはめて書いてみました。

とはいえ今回の記事は、こうやって事象が起きた後ならば、いくらでも書ける内容であることは確かです。

「はじめに」でも書きましたが、あくまでも今回の事象を教訓に自分の製品でもあてはめて考えてみたいです。

そして、実際に開発・テストをするのは現場とはいえ、経営層も含めてソフトウェアテストの7原則を意識すべきだと思います。

【リンク】ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2018.J02

*1:えっ?なんでレビューの話をしてるの?と思われる方もいるかもしれませんが、ISTQBのシラバスでは静的テスト活動の1つとしてレビューが書いてあります。

*2:経済産業省の資料によると、2008年当時クレジットカードの支払額は全支出の12%程度でした。また、支払額での比率のため、セブンイレブンの利用者層はもっとクレジットカード利用率が低かったのではないかと思います。

*3:そもそもオムニ7の時点で…という意見はまさにその通りだと思いますが、先述の「セブンミール」から開発が続いていた場合、お金を扱う意識がそこまで無いまま作っていった可能性があります。あくまで推測ですが。

JJUG CCC 2019 Springで色々な工夫を凝らしつつ、テストについて発表してきました! #jjug_ccc #ccc_e4

5月18日に開催された「JJUG CCC 2019 Spring」で「テストエンジニアが教える JUnitを書き始める前に考えるべきテスト」というタイトルで発表してきました!

www.java-users.jp

発表をするにあたり考えていたことや工夫したことを記事にしておきます。

目次

発表資料

speakerdeck.com

テストエンジニアなのにJJUGに発表しようと思ったきっかけ

主に以下の2点。

  • PHPカンファレンス福岡でQAの知り合いであるリナさんがほぼ毎年登壇しており、「QAでも言語系カンファレンスに登壇してもいいんだー」と思ったから underscore42rina.hatenablog.com

  • XP祭りの運営もされている山口さんが、「アジャイル系のイベントにテストエンジニアが参加してくれて嬉しい」と言っていたので、テスト系以外のイベントでも受け入れられるんだーと思ったから

発表前

CfPが採択されたものの、まさかの一番大きな会場に割り当てられました…!

事前アンケートで「聞きたい!」と言ってくれた方が多くいらっしゃった結果なので、嬉しさ半分、しっかりとしたものを発表しなきゃという想いが半分でした。

めっちゃ緊張してました…w

なにせテスト系のイベントではなく開発系のイベントなので、聴講者はどんな雰囲気・目的で聞きに来ているのか分からなかったからです。

また、「本当にこんなコンテンツを聞きに来てくれるのだろうか…?」と思ってましたが、結局、私の発表は280名の満席に近いセッションとなりました。圧倒的感謝…!

発表時の仕掛け

おそらく聴講者の皆さんが普段聞き慣れていないであろう「テストの話」を、ただ発表するだけではつまらないだろうと思い、2つの仕掛けをしました。

仕掛け1. menti.comでたくさんの回答を貰うための仕掛け

今回の発表では menti.comを利用し、聴講者の皆さんとインタラクティブな発表を目指しました。

www.menti.com

より効果的かつ盛り上がるコンテンツにするためには、何よりもできるだけ多くの聴講者にこのサービスを利用してもらう必要があります。

そのために色々な工夫をしました。

工夫その1. 講演前、講演中にサイトへの誘導を行う

上記のようなツイートを行い、また講演開始前に会場でもアナウンスを行いました。

そして講演が始まってからも、私の自己紹介のスライドの一番上に常にサイトへのアクセス方法を書いておくようにしました。

工夫その2. 最初は簡単な操作を要求することで入りやすい状況を作る

今回、menti.comでは3つのコンテンツを用意しました。

  • コンテンツ1. ハートをクリックする
  • コンテンツ2. 二者択一のアンケートに答える
  • コンテンツ3. 自由記述のアンケートに答える

いきなり自由記述のアンケートに答えるのは難易度が高いです。

そこでまずは「ハートをクリックする」という単純な操作を体験してもらうことで、「自分が手元で操作した行動が、こうやって投影している部分に反映されるのか」と体験してもらいました。

次に「二者択一のアンケートに答える」ことで、「アンケートに答えると投影している部分に反映される=アンケートに答えると何かしらのリアクションが返ってくるんだ」と体験してもらいました。

こうすると「自由記述のアンケートに答える」ときには、参加者の多くが答えやすい状況になっています。

工夫その3. その場で変化の実況を行う

工夫2で書いた「何かしらのリアクションが返ってくるんだ」を増幅させるために、あえて大げさにリアクションをしました。

例えば、以下のように言ってました。

  • 「ああっ!どんどんハートが増えてくる!100名を超える皆さんに参加してもらえてますね!ありがとうございます!」(コンテンツ1の時)
  • 「おっ!圧倒的に開発者の方が多く、テストエンジニアが今回の参加者の5%ぐらいしかいない!つまり私はアウェーの中で発表しているということですね」(コンテンツ2の時)
  • 「おおー!色々書いていますね!『品質保証』なるほどー!『バグを見つけるため』そうですよねー!」(コンテンツ3の時)
結果

実に多くの方にmenti.comを利用していただきました!

それぞれのコンテンツ結果は以下のようになりました。

自由記述の時(コンテンツ3)でも、216名の方に回答いただけており、離脱率が少ない状態を保たれていることが分かります。

f:id:nihonbuson:20190520004655j:plain
二者択一の結果

f:id:nihonbuson:20190520004732j:plain
自由記述の結果

また、menti.comを使うことで、聴講者の皆さんがどんな心持ちで聞きに来たのか把握することができました。

こんなことも一発で聴講者にも分かってもらえますw

仕掛け2. ペアワークで活発な意見を出してもらうための仕掛け

今回はmenti.comの利用だけでなく、講演中にペアワークを入れてみました。

今までもペアワークを取り入れた講演をしたことはあったのですが、以下の2つの条件により、今までのペアワークの講演の中で最難関でした。

  • 参加者数が300名弱と、過去最多
  • 講演時間が45分間しかない

そのため、これに対してもいくつか工夫をしました。

工夫その1. 講演前に隣の人と自己紹介をしてもらう

隣の人がどんな人か全く知らない状態でペアワークを始めても、きっと会話が弾まないでしょう。

そこで、講演開始前に会場でアナウンスを行い、隣の人と自己紹介をしてもらいました。

特に、Javaは様々な現場で使われていることが多い言語ですので、普段の業務は何をやっているのかについても話してもらうことにしました。

工夫その2. 自己紹介しやすい空気を作る

いきなり「普段の業務について話せ」と言われてもなかなか話しづらい人もいるかもしれません。

そこで自己紹介しやすい空気を作るために、「自分の名前と一緒に普段の業務についても話してみてください。あっ、ただ例えば『実はCIAのスパイなんだ』みたいな言えない事情は言わなくて大丈夫ですよー」と言ってみました。

そうすることで、「あんな変なことを言ってもいいんだ」と、自己紹介に変なプレッシャーを感じなくする効果があると思ってます。

結果

結果として、ペアワークに価値を感じてくれた方が何名かいらっしゃったようです。

発表後

menti.comの利用、そしてペアワークの実施など、様々な仕掛けを45分間でしてみました。

結果として、このセッションやテストに対してポジティブな感情を抱いてくれたようです。

もしもテストに興味を持った方がいましたら、ぜひWACATEにも参加してくださいね!

wacate.jp

また、明日はWACATEの体験版となる勉強会も開催予定ですので、気になる方はぜひ!

wacate.connpass.com

おわりに

最初は「言語系カンファレンスにテストの話を発表するのはいいのかな…?」と不安でしたが、色々な仕掛けをすることで、概ね良い結果になったと思います。

ただしこのような結果になったのは、wi-fiを設置してmenti.comに繋ぎやすい環境だったり、講演開始前にもかかわらず色々なアナウンスを快く受け入れてくださったJJUGのスタッフの皆さんのおかげだと思っています。本当にありがとうございました!

今回言語系カンファレンスでの発表は初めてでしたが、他の言語系カンファレンスでも発表していきたいと思います!

また、今回は45分という短い時間だったので一部しか話せませんでしたが、「もっと聞きたい!」という方は、お気軽にご相談ください。twitterのDMでOKです!

個別・会社内・勉強会問わず相談に乗りたいなと思ってます。お待ちしております!

「ファシリテーション101」聴講レポート

先日、社内で澤さんによるファシリテーション講座があり、「SNSでの投稿自由」「ブログでの公開自由」という話を頂いたので、ブログに公開します。

目次

発表者

  • 澤 円
  • 日本マイクロソフト テクノロジーセンター センター長
  • インターネットラジオ「Voicy」配信中
    • 現在、379日連続で配信している。
    • 普段は文字起こししてからしゃべる。
    • 喋っている途中でVoicyの収録をしたいと思っている
      • 途中でスマホを取り出すけど気にしないでください。
    • 今回の発表の一部も既にUPされています。

voicy.jp

講演内容について

  • 講義は60〜70分
  • 完全にスクラッチで資料を作成した
    • ある意味ベータ版
  • 質問したい場合は止めてほしい
  • 今回はファシリテーションに関する情報をお伝えしたいと思う

ファシリテーションとは?

  • 議論を整理する人
  • Wikipedia
    • ファシリテーション(英: Facilitation)は、会議、ミーティング等の場で、発言や参加を促したり、話の流れを整理したり、参加者の認識の一致を確認したりする行為で介入し、合意形成や相互理解をサポートすることにより、組織や参加者の活性化、協働を促進させるリーダーの持つ能力の1つ。
  • リーダーとしての振る舞いが求められる
  • ただの司会者ではない

田原総一朗はファシリテータか?

  • 朝まで生テレビ田原総一朗ファシリテーターだと思う人?違う人?
    • 会場の意見…感想を喋っている・自分の意見を喋っているから違う
  • 自分の意見を言うからというより、求められる結果が違うから。
    • テレビ映えするように煽っているだけ。
    • 見ている人がいる時点でちょっと違う
  • やっている行為はファシリテーターに近いが、皆さんに求められているものとは違う

ファシリテーションに必要なこと

  • 私なりに考えたり感じたことを中心に話す
  • まずはゴールの共有が大事

会議が多すぎる国、日本

  • 日本は会議多すぎ
    • 会議をすること自体は悪くないが、ゴールの共有がない会議が多い
  • 報告の会議が多すぎ。起きていることは会議にすることはなく、どこかにまとめれば良い
  • 報告のために集めず、その先のために会議をすべき。

ゴールのために、ビジョンを決める。

  • 北極星を見つけてから出港する。
  • ココで言っているのはゴールではなく、方向性だけ

    • 方向性とゴールの違いの例
      • 方向性…デザインについて決める
      • ゴール…デザインのラフ案について決める
  • ファシリテーションの先にゴールが見える。

    • 最初からゴールが見えているわけではない。
  • マイルストーンを決めるだけで、形まで決めるのはファシリテーターのしごとではない。
  • 方向性を決めるのがファシリテーターのしごと
    • それをしないと、みんなが違う線路に乗ってしまう。

テキトーに線路を敷設させないことが大事。

  • 進んでいったときに、戻してあげるのもファシリテーターのしごと
  • 議論が発散することはよくあることだと思うが、予め決めたビジョンに従って元に戻す
  • なので、ビジョンは言葉に落としておくことが重要
  • 漠然と、ぼんやりと、はダメ。

会議室を出た後に、同じ絵を描けるようにする。

  • 言語化できていないと、再現性がないものになってしまう。
  • 本人の解釈によって、全然違う情報が伝達されてしまう。

「議事録が大事」ではない

  • 議事録を取るのが大事なのではない。
  • 議事録を取るとしても、事細かに取る必要はない
    • そしたら録音すれば良い
  • キーワードを残しておけば良い。

ゴールは未来にあることを確認する

  • エンジニアなど何か作る人達は、「今無いものを作るようにする」「今あるものを良くするようにする」ということが仕事。
  • なので未来の話に時間を使うべき
  • エンジニアの場合、限られた人生の中で最大のものを作る必要がある
  • MTGではAsIsの話はしない
  • 最終的にどういったものがあればよいのか言語化する。
    • これを共通認識にしないといけないし、ファシリテーターはそちらに常に軌道修正しないといけない。

過去の話を議論しがち

  • 議論で話すのは、殆どが過去の話になっている。なぜなら、過去の経験を元に話すから。
  • しかし、「ゴールは未来だよね」ということを示す必要がある。
  • 徹底的に未来の話をしよう。
  • 今までの話で議論している暇は無い
  • みんながなんとなく思っている共通認識を蒸し返す必要はない。

傾聴のマインドセット

  • ふるまいとして必要になるのが、傾聴というマインドセット
  • ファシリテーターはとにかく傾聴する
  • 傾聴とは、音として聞くのではなく、アイディアを探すために聞く
    • アイディアの種を探して、こういうこと?と質問すること
    • 決めつけることではない
  • エンジニアリングにするヒントを聞く
  • そのためには相当集中して聞く必要がある
    • 常に質問をする体勢になる。
    • さり気なく質問をする。
  • ぼんやりと聞くのと集中して聞くのは違う。

決めつけることをしてはいけない。

  • 決めつけるならば、「最初からお前がやれよ」となってしまう。
  • これは本当に意識しないとすぐに忘れる。

参加者が混乱していたら整理する

  • やっているうちに、参加者に理解度の差が出てくることがある。
    • 過去の経験差などが原因。
  • そのために、ファシリテーターは表情を常に確認することが大事。
  • 全体の理解度を常に確認する
  • せっかく集まっているなら、同じ理解度になるようにする
  • 少なくとも、MTG内で語られているのは同じ理解度になっていること
  • 参加者自身が「分かっていないことが分かっている」ようになれば最高
    • そこについて勉強できるから
  • 「分からなかったらこれだけメモっといて」「このURL先を読んどいて」「○○さんに聞いといて」とヒントだけ渡す
    • ここで説明しちゃうと、分かっている人は内職を始める

発言量の調整

  • MTG時間、バッファ時間、参加人数という3つのパラメータがある
  • (MTG時間-バッファ時間)/参加人数=一人あたりの上限持ち時間
    • これが最大値。
  • バッファ時間を抜く人がいるが、ちゃんと考慮する必要がある
    • バッファ時間とは、仲裁や考えをまとめる時間など
  • バッファ時間はどれぐらいの割合か、というのは絶対的なものはない。
    • MTG参加者の経験によって違うから。

MTGを早く終わりにして、時間を返す

  • 早くMTGが終わりそうな場合は、そのまま早めにMTGを終わらせる。
  • 外資系の企業の場合、MTG時間を1時間とって45分で終わったら「15分返すね」という風に言ったりする。
  • MTGはお互いに時間を借りているという認識を持つこと。
    • 物事を借りている場合は、基本的に大事にするし、早めに返しますよね?それと同じ。
  • このマインドが起きると、仕事がどんどん圧縮される。

  • 別に、喋り始めたときにストップウォッチを出す必要はない。

    • あくまでも目安で良いが、それを考えておくことが大事。
  • 20人が出たMTGが30分だった場合、1人あたり1.5分になる。
  • 喋る人と喋らなくなる人が多くなる。
    • 喋らない人は会議室にいる必要がない。大いなる機会損失に繋がるので、あとで共有すれば良い。
    • プロセスを知る場合は必要かもしれない。
  • ただし、「とりあえず参加してもらう」というマインドだったら「とりあえず呼ばない」にしてください。

  • Emailが無い時代と同じMTGをする昭和な会社がまだまだ多い。

  • 時間というパラメータを軽視しているからそうなる。

黙ってもらうのも大事な仕事

  • 「黙れ!」というのは、一発で黙ると思うが、人間関係が悪くなる
  • 黙らせ方も大事。「一人あたり○分だから、気を付けてね」と予め言っておく

「ぼっち」を作らない

  • 本来だったら発言して欲しい人が喋らない状態を作らない

間違って呼んだら帰す

  • また、間違って呼んでしまったら、帰してあげる

    • 自分から「関係ないから退室しますね」というのはなかなか難しい。
    • アメリカでは「なんでこんな会議に呼んだの?」と怒る人がいるぐらい。
  • 最近は会議そのものに出なくなった。

  • チームMTGを定例で設定していない。今の所集まったのが1回だけ。その時は「惑星直列」と表現したぐらい珍しいことだった。
  • 集まったときは楽しい話しかしない。

ファシリテーターはイメージを作る手伝い

  • 言葉に落ちきる前のイメージを脳内に作るもののお手伝いをする

  • そのためには、関連を明らかにする。

  • ホワイトボードにキーワードをピックアップして板書していく。
  • そこに矢印や図形を用いて表現していく
  • イメージができないと原理主義者の戦いになる
    • 「○○理論によると」とか喋りだす人がいる
ポストイット最高!
  • 順番を変えられるから
  • 板書にすると、書き直しが出てくる
  • ポストイットだと復活させることもできる
  • これぐらいだったら総務の人も買ってくれるでしょ

ファシリテーターが目指すべき・調整すべきこと

合意に至ったことを確認する

  • 会議室を出た後が勝負。
  • 出た後に配れるものを復習する
  • 場合によっては、ミッシングピースが明確になることもある。
    • わからないものがわかった時点で価値がある。
  • 所感が入った状態で伝播しないようにする。
    • 事実をまずは伝えられるようにする。その後の所感が違う場合はOK。
  • 良くないのは、出ていった後に不満を言う状態

ノリだけで終わらせない

  • 本当に欠けているものを忘れている可能性がある。
  • 逆側をやる、違う視点を考えることも大事。
  • 「ウェーイ」となったときこそ気をつける。
  • ノリだけで終わっている場合は、合意に至ったことを確認できていない場合よりも厄介。
    • 肝心なことが考慮されていないことが多い。
    • 後で後悔することが多い。
  • ファシリテーターは場の雰囲気をかわさないようにしつつ、問題点がないかどうかもう一度確認する
  • 基本は傾聴する。
  • 傾聴した上であらを見つける。

  • システムと向き合っているときは問題点にほとんど気付かない。

  • サービスを使うユーザーしか見ていない。
    • サービス外のことを考慮してないことが多い。
    • 世の中、自分たちが提供しているサービスを四六時中使っているわけではない。
  • こういうことをファシリテーターがきっかけを与える存在になると良い
  • ファシリテーターが力不足であれば、ファシリテーターを補佐しても良い。

具体的な言葉・数字にしておく

  • 部屋を出ていった後で共有できる状態にしましょう
  • 抽象的な言葉になると、人によって全然捉え方が違う。
    • 「なるはや」ではなく「1分後」なのか「1週間後」なのか。
  • 期日を決められない場合は、未決定事項として共通認識にしよう。
    • 具体的に落とし込んでいない部分こそ「これは決まってないんだよ」という決定事項にしよう
  • 経営がうまくいっている企業・組織は、それを徹底的にしているから
  • 「頑張っているから」は評価軸ではない。頑張っているがアウトプットが出ていない場合は「向いていない」という評価になる。
  • そこにゴチャゴチャ言う人に対しては、反証を持ってきてもらう

オーナーが誰なのかはっきりさせる

  • もう一つ大事なのはWHO。
  • オーナーシップ。誰がオーナーなのか。
  • 日本の場合は組織に持ってしまう。
  • 外資系の場合、名前が書いていないプロジェクトに承認を出せない。
    • もしうまくいかない場合は、責任はすべてオーナーが持つ。
    • もしうまく言った場合は、オーナーが手柄総取り。
  • オーナーは、できる限り一人の名前で書く。

ファシリテーションべからず集

ファシリテーターが喋りすぎない

  • とっとと議論をはじめて、傾聴し、キーワードを拾うことに徹する

自分の議論に引っ張り込まない

  • ファシリテーターは責任を感じすぎないようにする
  • 予定調和な会議をしがち。
  • 議論の途中で出てくる想定との違いを受け入れる

正誤のジャッジをしない

公開処刑、ダメ、絶対

ファシリテーターに不要なもの→(過去の実績からくる)プライド

  • 一番邪魔。
  • 「俺に言わせりゃ」という人
    • →他所でやってくれ
  • 過去の経験を活かせるなら別だし、情報として提供するのはあり。
    • プライドも一緒に載せると、否定に対して過剰反応してしまうから。

質問

Q.研修講師として、習っている人の理解度のぼんやりや凸凹にも有効か?

  • 超有効になる。
  • 同じ道の上なので、スピードが違うが、時間をかけることで同じところに到着するはず。

Q.過去の話をしないについて。KPTはまさに過去の話をしていると思うが。

  • NGではなく、圧縮すれば良い。
  • シートを事前に共有する。そしてMTGでは理解度をチェックするのみにしたらよい。

Q.過去の話って、自分も良くすると思うが、気付くポイントがあれば教えて欲しい。

  • 全部ファシリテーターが知っておく必要がない。
  • 「それって未来にどう繋がるの?」と聞けば良い。
  • もしも答えられなければ、もっと端的に話してもらうように促せば良い。

Q.参加者が混乱していたら、整理するという話があったが、ファシリテーター自身が理解していない場合は?

  • 「私は分からないけど、皆さん分かる?」と聞いてみる。
  • 「私はここまで理解している」という風に示すことが大事。

  • 料理をする側にとって辛いのは

  • 「何が食べたい?」→「分からない」もしくは「なんでも良い」
  • という会話。

  • 「ここまでは分かる」という話し方をすることで、議論が進む。

  • 「うん、分かった」ではなく、「こういうことですね」と自分で口に出すことが大事。
  • もしもわからない部分が残っている場合は、それが宿題になる

Q.確認をすると思うが、「分かっているつもり」を判別するには?

  • 分かってないことを「分からない」というのは勇気がいる
  • Next Stepを決めておく。
  • 次の時までにできていないと焦る→「助けてくれ」となる。そしたら、その人を責めず導いてあげる。
  • 合間合間でマイルストーンで「進捗どうですか?」と聞いてあげる。

Q.人数について質問したい。チーム全体について決定したいが、全員が集まるのは大変だと思う。

  • 議論したいならMAX6,7人だと思う。多くても10人。
  • 30人で決めるのは難しい。

Q. ゴール設定に対して。最初に決めるだけではなく、議論を進める上でゴールになる場合があると思うが…。

  • First phaseでゴールを決める。
  • なかなかゴールを決まらなくて時間切れになることはあると思う。
  • その時は、Blocking issueを探す。ただし、人を責めない。

Q.人数について。10人を超えているような組織で、少人数で決定をすると、ちゃぶ台返しをする人が出てくる

  • 異論を許す会議を行うこと自体が良くない。
  • 人数が増えると、事前に共有するものが増えていくことを認識する必要がある。
  • 決定事項に対しては、ちゃぶ台返しは禁止。
  • ちゃぶ台返しをするなら、その人がオーナーになれば良い

Q.決定事項のちゃぶ台返し禁止という合意をどうやって取れば良い?

  • エグゼクティブスポンサー(役員)に合意をとっておく

Q.ティール型の場合は?

  • ティール型の場合、他の人が議論を止める必要はない
  • 人数が多いなら、組織を半分に割りましょう。

Q. どこまで脱線を許すのか

  • バッファ時間の計算の範疇で行う

Q. 発散した後に収束するコツはあるか?

  • 合意したビジョンに戻すことが大事

Q. AvsBでお互いを論破し会えない場合は?

  • 今日はそういう日だったんだと思って。
  • また、ディベートでよくやるのは立場を逆にする方法。
    • 自分を信じてない案を持って議論する。

Q. 自分の結論に引っ張り込まないとあるが、MTG準備をしっかり行った結果、MTGの進み方を仮説する際に自分なりの結論ができてしまう。結論を引っ張り込まないようにするにはどうすればよいか?

  • 最初のビジョンとゴールの話で、準備してきた仮説の結論をゴール設定にしてしまえば良い。
    • 「こういう結論になると私は考えたのですが、この結論を聞いてどう考えますか?」
  • 議論の中でひっくり返ることができる

Q. ファシリテーターが不在の場合どうするのか?

Q. 過去に澤さんが経験したファシリテーション不全の話を聞きたいです。

  • 交通系日本企業勤務・28歳の衝撃の言葉
    • 「みんな会議で発言するんですね。会議で何かが決まるのを初めて見ました」

何かを決断するときに、ファシリテーターではない人が多いと思うが、参加者側の立場として注意すべきことは何か?

  • 「参加者はファシリテーターに対峙しているわけではない。戦うわけではない」というマインドを持つことが大事。
  • 日本の国会は最悪なMTGだが、「議長の存在が大事だ」と思っているのは参考になる部分。
  • イギリスの国会は非常に参考になる。「イギリス議会 面白い」とかでググってみると良い。

Q.会議に参加していて、ファシリテーションを機能していない場合、代えるのはありか?

  • それは仕方がないのでピッチャー交代。
  • 今は会議に特化して話しているが、組織がうまく動かすということを考え、「今日は私がピッチャー交代するね」と言ってあげる
  • そのためには、その前に人間関係を作っておく

Q.連絡だけをする会議について。どうすれば良いか。

  • 報告・連絡・相談には時系列がある。
    • 報告…過去のことなので、データ化しておいてあらかじめシェアすれば良い。
    • 連絡…現在のことなので、都度都度ツール(Slackとか)でやれば良い。
    • 相談…未来のこと。なので、相談に時間を使いましょう
  • また、報告・連絡・相談は性質が違う。
    • 報告は不変性。過去の話だから変わるはずがない。
    • 連絡は即時性。だからチャットが良い。
    • 相談は人間性相談するのだから人と人の会話がある。だから時間を割くべき。

Q.澤さんはファシリテーション能力をどうやって獲得したか?

Q.全体朝会をやっている場合もあると思うが、それは必要だと思うか。

  • 例えば、ベンチャー企業ならばカルチャー醸成が大事。それには朝会が大事。
  • 会社は仕組みの中で生きる。
  • 能力が高い人は離職リスクが上がる。
  • カルチャーを育てることで、経営上のメリットがある。
  • もしも朝会が退屈な時間になっているなら、朝会の問題ではなく、コンテンツの問題。
    • ワクワクする話をした方が良い。
  • 社員がみんな集まるなら、直接関わっていないサービスのデモを見せた方が良い。

Q.ファシリテーションするのが怖いがどうすれば良い?やらざるを得ない

  • メンターを一人連れて来たほうが良い。
  • 最初のうちは二人三脚で、だんだんと独り立ちしていく
  • ファシリテーション(パブリックスピーキング)が怖いのは世間一般。
  • 助けを求めるのは、仕事をする上で一番大切なこと

Q.3,4人の会議でファシリテーターは必要か?

Q.目標設定にファシリテーションを入れられない

  • 何を持って成功とみなすか予め決めておく。
  • 例えば、アンケートを配ったり。

Q.定例MTGをやらないという話について。スクラムの中でDaily Scrumが不要に感じてしまう。

  • やることが目的になっていないか?
  • 必要であれば有意義に過ごす。
    • 誰かがお題を持ってくる。
    • デモを見せる。
    • 記事を共有するなど。
  • 一番良くないのは、なんとなく集まって駄弁ること。

Q.例えば、現状を知らないことに対して時間を使いたい場合は?

  • それは会議体にする必要がない。トレーニング枠を作るべき。
  • 世の中のスピードはバカとノロマで決まる。
  • これはバカやノロマになる人がいるのではなく、時と場合に誰でもバカやノロマになる。
  • バカやノロマになるポジションに置かないことが大事。
  • 外資系では、「育てる」という考え方が抜けているので、マッチしてるところしか就職しないし、マッチしなければ切り捨てられる。

Q.ファシリテーターを上手い人に固定すべきか?

  • MTGをうまく動かしたい場合には固定すべきだが、その人がいないときにリスクになる
  • 平穏な世の中である内に経験させる。それもマネージャの役割。

「ジャストーーーク! 転職芸人が語るテスト/QA技術者としてのキャリアパス vol.2」聴講レポート #JaSST19Tokyo #JaSST

目次

転職芸人について

  • レギュレーション…転職5回以上

自己紹介

  • キャリアマップを用いつつ、自己紹介をしていく

司会:鈴木里惇(以下、鈴木)

  • SI系品質管理からWeb系QAエンジニアに転職
  • 転職してから様々な外部勉強会に参加するようになった

ゲスト:越中谷郁美(以下、越中谷)

  • 歯科衛生士からスタート
  • 前職は組み込み系メインの技術者派遣の会社
  • 2年前のジャストーーークの転職芸人セッションを聞いて感銘を受け、Web系の会社に転職

鶴岡洋子(以下、鶴岡)

  • 居酒屋のバイトリーダーからスタート
  • システム系派遣会社の出向先がたまたまQAの現場だった
  • BtoCのWeb系からBtoBのWeb系に転職し、現在はBtoBtoCのWeb/IoTQAを立ち上げに参画

松谷峰生(以下、松谷)

  • 副業芸人
  • スーパーマーケットからスタート
  • 2度めの大学入学&卒業
  • 中国でQA立ち上げに関わる
  • BotやAIの新規立ち上げのQAに転職した後、上流工程のテスト活動ができる職場に転職

柿崎憲(以下、柿崎)

  • X-Techベンチャー芸人
  • QAの前にも5回ほど転職している
  • 2003年にQAに出会う
  • 2009年のJaSSTに参加して感銘を受ける
  • 組織の課題が同じようなものだったため、「同じパズルを解き続けたくない」「テスト業界を盛り上げたい」と思い転職

山本健(以下、番長)

  • 美大出身
    • 筆より重いものは持ちたくない
  • 給料がなかなか支払われなくてSIに転職
  • 色々な会社でQAをやった
  • 最近は、前に働いていた人に呼ばれて転職することが多い

山本久仁朗(以下、くにお)

  • ずっとITで仕事した
  • 40歳を超えてから6回転職した
  • 色々なところで現場改善の依頼があったら転職する日々
  • 一人で組織を変えるのが難しいと感じてきたので、業界全体を変えたいと思ったので現職に転職した

転職するときの動機、きっかけ

  • 仕事をやり尽くしたから?
  • 飽きたから?
  • 新しくやりたいことが見つかったから?

柿崎さんの場合

  • 柿崎

    • ヘッドハンターからお声がけをいただいた
      • ある日突然女性からメールが来た
        • 会ってみたら女性じゃなかった
      • 怪しい日本語ではなく、読める日本語のヘッドハンターだったので、会いに行ったら意気投合したから
        • よりワクワクするような、不動産をテクノロジーで変える会社だった
  • 越中

    • ヘッドハンターはどうやって知ったのか?
  • 柿崎

    • 会社のブログなどで知ったらしい

松谷さんの場合

  • 松谷
    • 他にやりたいことができたら!
    • 直近でいえば、上流からの入り方を体系だって学べると聞いて
    • 自分自身の売り時だと感じたから

鶴岡さんの場合

  • 鶴岡
    • 今までずっとQAとして働いていて、上流から入るQAがやりたいと思って転職した
    • あくまでも新しいことを見つけたから、という想いが強い

番長の場合

  • 番長

    • チャレンジが制限されて伸び悩まざる得なくなったら
    • 元々、給料のベースラインが低い
    • そんな中で、毎日同じことをやって…というのは嫌だと思っている
    • この仕組み、変わらないんだ…と思ったら
  • 鈴木

    • 同じ所属なんで、なんとか飽きさせないように働かせないと…
  • 越中

    • どういうときに仕組みが変わらないと感じる?
      • 規模の問題?人の雰囲気?
  • 番長

    • いる人の雰囲気によって考える
    • 「この人が言わないと動かないんだ…」と感じた時

くにおさんの場合

  • くにお

    • リリースが年1回だと、年1回しか改善できないので、短いサイクルでリリース・改善できる職場を選ぶ
    • 求められるフレームや人の成長ができたら転職を考える
    • 基本的なスキルができるのは1年ぐらいかかると思っている
  • 越中

    • もう、ここ大丈夫、と思ってから転職するまでの期間は?
  • くにお

    • 定常的にヘッドハンターからオファーが来たり、個別にメッセージもらったり
    • 1年ぐらい経って目処が付くと、なぜか嗅ぎつける人がいる
  • 越中

    • 転職することに迷わない?
  • くにお

    • 次のステップがきついと感じたら、新しいところに移りたい
    • しっかりしている人がいると、すぐに抜ける傾向にある

転職のモチベーションはやりがいかお金か、その動機が変わったのはいつか?

  • 2年前の転職芸人は綺麗な話しかしなかったので…

お金とやりがいはトレードオフの関係ではない

  • 松谷

    • 月の半分がQA、半分が開発をやる場合に給料が上がった。
      • それでもQA専任の仕事を選んだ。
    • ただし、綺麗事を除いて話すと、お金寄り。
    • ゲーム開発したければ家で作れば良いのでは?と思い、開発には転職しなかった。
    • やりたいことを会社に求めるんだっけ?と思ってる。
  • 越中

    • お金は最低ラインなのか、最高ラインを見ているのか?
  • 松谷

    • 最低ラインは常に上がってくる。
    • 僕はあるだけ欲しい。
  • 越中

    • 会社に迷惑かかると心配しないか?
  • 松谷

    • 考える前に、まずやって、事後報告している。

最初はお金だが、だんだん貢献度はモチベーションに変化する

  • くにお

    • 会社にお金を取られている、評価と釣り合ってないと思い、転職した。
    • 海外の場合、年収が700万を超えると「お金じゃない」と言い出す。日本だと600〜650万ぐらい。
  • 鶴岡

    • 最初はお金だったけど、バランスが大事
    • 自分なりのお金の基準は低くて、達成したので、今はやりがいが大事。

手っ取り早く年収を上げるには、転職するというのはどう思うか?

  • くにお

    • 売れる武器があれば良いが、そうでない場合は幻想
  • 鈴木

    • 人事に50万円乗せてふっかけたりするか?
  • くにお

    • 状況による
    • 対象の会社や世の中の状況を見る
    • 大体の会社は現年収を聞くので意味がない
  • 鈴木

    • 現在の待遇は良くなって来ている?
  • 番長

    • QAの認知度が上がってきているので、どんどん良くなっているイメージはある

転職活動して、失敗した経験や教訓

常に職務経歴書を用意する

  • 柿崎
    • 武器を持って、事前に値付けしておくのが大事。

現場の状況を聞いておく

  • くにお
    • リアルな給与、品質の関心含めた組織の文化など、聞けることは聞いた方が良い

前職の経験をそのまま引きずらない

  • 松谷
    • 前の会社だとかなりの権力があって踏ん反り返ってしまった。
    • 変えるとき、前の良いところを引きずるのは良くない

転職に繋がった、前職でチャレンジしたことアレコレ

勉強会に参加してアウトプットする

  • 松谷

    • 勉強会によく出ていたこと
      • 最初は社内展開、その後は社外展開した
    • Webに残ってくるので、オファーする人はどんな人なのか分かってくれる。
  • 越中

    • どんな風にアウトプットするのか?
    • 自分の場合は一生懸命作っちゃう
  • 松谷

    • 1時間ぐらいでブログにアウトプットしていた
    • 社内はもっと簡単に

日々の業務が転職に繋がる

  • 柿崎

    • 活動そのものがチャレンジだった。
    • やってることは「会議体を整える」というような小さなこと。
    • それを記録しておくことで、積み重なる。
    • 転職時の面談で、前職でやったことを自分の価値で素早く話せる。
  • 番長

    • 目の前のことを真摯にやる。
    • この年になると普通の転職が難しい。
    • なので呼んでもらえるためにも、日々の仕事をやる。
  • 越中

    • 人を育てることをやっていると思うが、難しいと感じている。教育面はどうやっている?
  • 番長

    • 肩に力を入れてマネージメントしようと考えてはいない

前回開催からの2年間のQAエンジニア市場の変化について

需要は高まっているが、供給が追いついていない

  • くにお

    • 市場要求は高まっているが、供給が追いついていない
    • 2年前だとWantedlyでも募集が集まっていない
      • 職種自体がないことが多い
    • メガベンチャーから独立した人たちが、QAチームがあることが前提で考えていることが多い
    • Agileで開発速度は上がったが、QAがいないのでリリース速度は上がってない
    • Linkedinの検索ランキングでは開発よりもQAのほうが検索される傾向がある
  • 柿崎

    • 求人数はとても増えたと感じている
    • 募集をかけるとQAから応募が来ない
    • QAがよく分かってないけど、社長のコネクションの中にQAがあるから募集している企業もある
    • 求められているQAって、品質のグランドデザインを考えられる人
    • テスト技術って、既にコモディティ化している
      • その技術を使ってどのようにサービスの品質を上げるのか伝えられる人が求められている
  • 番長

    • 自動化が流行って、そっち方面のQA募集も増えている
    • 2年前より需要が増えて幸せに思っている

負けない武器を持っている人は重宝される

  • くにお

    • 単純労働者としてのQAはシュリンクしていく
    • これだったら誰にも負けないという武器が必要。そういう需要がある
  • 柿崎

    • Testingのサーベイの中だと、スクリプティングの需要が戻ってきている
      • Agileの中で必要になってきている
    • X-Techだと、リアルの方に出てきている。IoTとか。
    • テスト自動化にタッチできていない人も重要性が残っていると思っている
  • くにお

    • 柿崎さんの内容は、単なるオペレーターではなくリーダーになりかけの人、自分に責任を持って仕事をデキる人の話

あなたが考える、企業が欲しがるQAエンジニア像とは?

最高のプロダクトを作るという熱意

  • 鶴岡

    • 最高のプロダクトを作りたいという熱意がある人
  • 越中

    • 今までのQAを超えて、上流から入ることも求めている?
  • 鶴岡

    • 無駄な手戻りを無くして…と考えるのも大事なのではと思っている

自分の考えがある人

  • 松谷

    • 自分の考えを持っている人
    • 自分の柱を持っているのが大事
  • 越中

    • 若干の欠点があっても、良い点があれば良い?
  • 松谷

    • 欠点は入ってから育てます。
  • 鶴岡

    • 相方のミスマッチを無くすのも大事

保守的ではない人

  • 番長

    • 保守的でない人と働きたいです。
  • 越中

    • 「変えたい」と思っているけど、結果的に保守的になってしまうことも
  • 番長

    • そうならないように、社内でも社外でも同じような考えを持っている人と話すことが大事

アウトプットする人

  • 柿崎

    • アウトプットの多い人
    • まだまだ何もないことが多い会社に今いる。
    • ちゃんと会社全体のビジネスに対してジタバタしてくれる人が良い
    • 9割ぐらいゴミのアウトプットであっても、残り1割が会社の役に立てば良い
  • 越中

    • テストや品質を考えるときに、ビジネスのことも考える必要があると感じている
  • くにお

    • QAに閉じずに全部に当てはまることだと思っている

ちゃんとスキルアップに取り組んでいる人

  • くにお
    • とあるシェフが「『同じ味』と思っているものは、常に変わっている。」という言葉を言っている。
    • 「強く大きいものが生き残るのではなく、常に変化しているものが生き残る」という言葉もある。
    • 「誰に何を届けたいか」と考えれば、もう1ランク上にブレークする/できるかも

クロージング(最後に一言)

  • くにお

    • 自分なりの武器を持つと、50歳でも転職できる
  • 番長

    • 人材の流動性ができると良い業界に繋がる
  • 柿崎

    • 自分は個人事業主だと思っている。
    • 自分が価値を提供できないとクビになる覚悟を持っている。
  • 松谷

    • 「自分は何をしたいんだろう?」をまず考えるべき。
  • 鶴岡

    • 今回の話で何か持ち帰れるものがあれば良いと思う。
  • 越中

    • 私は2年前からのジャストーーークをきっかけに転職したが、それも結果でしかない。
    • 転職よりもライブデザインを考えるようになったことが大事。
  • 鈴木

    • 同じ所属でも、やりたいことがあれば続けられる。
    • 転職も1つの手段でしかない。
    • これからのキャリアを考えるきっかけにしてもらえば。

関連記事

前回の転職芸人の聴講レポート

nihonbuson.hatenadiary.jp

「クロージングパネル:⼈⼯知能の未来~その未来をどうテストし、どうテストに活⽤するのか~」聴講レポート #JaSST19Tokyo #JaSST

目次

自己紹介

榊原彰(以下、榊原)

TariqKing(以下、Tariq)

  • Ultimate Software Senior Director

石川冬樹(以下、石川)

松原仁(以下、松原)

  • はこだて未来大学 副理事長
  • 人工知能学会 前会長

現在のチャレンジについて

  • 榊原

    • TariqがやっているAI-Driven-Testingが現状どこまで進んでいるのか、今やっているチャレンジングなことは何か?
  • Tariq

    • これまでのところ、自動テストの生成をやっていた。
      • テスト結果の確認をハイレベルまで行っている
      • 自律的で独立型のAIを行っている
      • 自動的にサイトを探索してモデリングすることができる
      • アプリケーション用のユーザーフローを生成するようにしている
        • 抽象的なテストから学ぶことで実現している
    • テクノロジーとしては、long short-term memoryを使っている
    • マニュアルでは順番通りに入力している、AIはユーザーフローを使うことでテスト手法を補完する
    • 結果の確認も成功している
    • 予測の問題が現時点でのチャレンジ
      • AIが完全に理解できていないから
      • 「そのシステムのゴールはこれ」というものを教えようとしている
  • 榊原

    • 石川先生の今行っていることとBigチャレンジを教えて欲しい
  • 石川

    • 機械学習もAIも使って自動運転を研究している
    • AIも10回に2回外す
    • 今まではバグがあるとしていた
      • では、テストって何か?バグって何か?
    • 機械学習ではルールを生成し、データから学ばせている。エンジニアは知らないものである。これをテストする。
      • この話は大違い。
    • テストオラクルは何が正しいのか、そもそも分からない。一意の基準がない。
    • 今までのやり方が通じない。
      • けど、AIブームでみんな作り始めちゃった。
    • 4割ぐらいは新しいやり方でやらないといけないぐらい難しいと回答している。
    • 「どうあるべきか」を問われていると思う

AIとドメインナレッジについて

  • 榊原

    • 自動化を助けるところにAIを用いているが、そこにドメインナレッジが入ってくる余地があるか
  • Tariq

    • アルティメットソフトウェアにおいても様々なドメインがある。
      • 例えば、税法通りかどうかは、どれだけそこに関わってきたかが重要。
      • 税額を計算するために、理解する必要があり、そこは人間に頼る必要がある
    • 色々なパラメータを考える必要がある。
    • また、人間の専門家であっても正しいことを確認するには人間同士で対話する必要がある。
      • エンジニアチームが開発するときに、お客様が本当に欲しいものを作るために対話することが多くなっている。
    • 専門家に質問している内容をAIが学習することで、できるのではと思っている。
    • そのためにはドメイン知識が必要になってくる
    • レーニングをシステムに教え、システムを人間が評価するように我々は行っている
      • これを実現するまでには時間がかかると思ってます。
  • 榊原

    • 例えば、ボナンザのように、人間の指し手をAIが学習することから、逆転してAIの指し手を人間が学ぶ、そんな世界が来るか?
  • 松原

    • あり得ると思う。
    • 今のディープラーニングでは身につけているので、それを形式化すれば、それを利用できることがあるはず。
    • ただし、それには時間がかかる
  • 榊原

    • 学び方を抽象化して学ぶようになれば良いということか。
  • 松原

    • 学習したAIのディープラーニングの数値を明示化できれば、学ぶようにできると思う。
    • コンピュータを学習する手法から、人間も学習できるようになる

品質の担保の仕方について

  • 榊原

    • ヒューリスティックになって、確率論的な近似解が当たり前の世界になったとき、品質はどうやって担保すればよいのか。品質の定義はどう考えるべきか
  • 石川

    • 正解のラインがしっかり決まっていれば、統計の知識があれば良い
    • 正解のラインがぼやけている場合、擬似的に正解を近似して、点数をつける手段を行う。
      • 人が良いと思うことをチェックするなど。
    • 作ってみるまでどれだけの精度が出るのか分からない。
    • データの中から規則性を見つける。
    • まずはアドホックに作ってみて、規模を広げて作ってみる。
    • 文化がぜんぜん違う。すべてが試行錯誤。研究に近い開発。
    • 今は本当に知見がない。
  • 榊原

    • AIで作るシステムをテストするのにAIを使うことが今後出てくると思うが、指針についてアドバイスをくれ、と言われたりするか
  • Tariq

    • これから先起こる一番大きな変化の1つは、今日行っているオフラインのバリデーションではできなくなるかもしれない。
    • AIはオラクルが膨大で、YesかNoか言えなくなるものになっている。
    • こういうAIのシステムは常に環境に適用しようとする。事前に基準を設けることができるが、本番稼働後に変化が起き続けるので、常にモニタリングして変化に追従する必要がある。
    • これまでのエンジニアリングの方法を再考する必要がある。
    • 学術的な問題だったものを、これまでのやりかたでできないと理解して、私が提供できるガイドは、
      • AIや機械学習のそれぞれの違いを理解すること
      • 適用型のシステムを理解すること
      • マシンラーニングの精度、誤り率は今使っているものと比較して評価すること
    • 私達自身がそういうガイドラインを作ってくる必要がある
  • 榊原

    • こういう推論だけでなく、本番環境でラーニングしていく例はあるのか
  • 石川

    • 大規模な例はまだないが、やってみている例は噂として聞いている
      • うまく言ってからじゃないと公開しないと思う。
    • 解が見つかるか分からないものを対象にしているのがAI。
    • 走りながら書き換えていっているのがAI。
    • それがシステムとして完成していて、それを方法論としてまでには言っていない

AIの学習過程の可視化について

  • 榊原

    • AI、特にディープラーニングでよく言われる問題で、複雑過ぎてブラックボックスで分からないということがある
    • 学習過程をどう可視化するか、というのはQAをやっている人にとって重要だと感じている。
    • この点についてのご意見を欲しい
  • 石川

    • 規則性を学んで、規則性に従って処理する
    • どういうルールなのかはいくつか例を出せるが、汎化して表現できていない
      • 「雪が写っている時の写真であれば、この動物は狼だ」という例は報告されている
    • こういう規則性は何かというのを説明できるのがexplaineble AI
      • 例えば、ローンとかの場合、いくらAIが導き出したとしても説明できないと信用できないですよね。
    • ただ、それって本当にいつでもいるのか?
      • 天気予報を見ていて、気圧線を使って説明しているが、あれって無かったら信用できなくなるんですかね?
      • お客さんが納得するって何なんでしょうね?
  • 松原

    • 将棋の解説は説明しているが、頭の中をそのまま解説しているわけではない。
    • 説明を聞く人のレベルに合わせて説明しないと意味がないので、再構築している。
      • 実験で羽生さんに独り言をしながら指してもらうことがある。
        • 聞き相手が素人かプロかによって変わってきた。
    • 説明とは何か、わかった気になるとは何か?
  • Tariq

    • 非常に哲学的な問題
      • 私の場合も、5歳の娘と奥さんと上司に対してでは説明の仕方が違う
    • データの総量と複雑さが問題だから。
    • 我々の能力に限界があり、我々の知識に限界があるから
    • AIに説明して欲しいと依頼しても、きっと理解できないでしょう。
    • 時には、人間以上に機械には高いレベルの説明を期待してしまう
      • 人間が「でもうまくいくんだよ」で納得する話も、機械が説明すると納得しないだろう。
    • 許容できる分野に対しては説明が必要なくなる

AIによるデータのバイアスの指摘について

  • 榊原

    • 説明に関してはそうだと思う
    • データのバイアスに関してはAIが使えるのでは。
    • システムで、顔写真をUpしようとしたら、「目を開けた写真をUpしろ」と言われた
    • 白人男性だったらうまくシステムが出来上がっていた。学習データが白人男性
    • 学習したデータの網羅性を示唆してくれることはできないのだろうか?
    • データの信頼性にフォーカスして話したい。
  • 石川

    • テストデータの信頼性を担保して、と依頼されるかもしれないが、相当難しい問題。
    • 東洋人の問題が起きた後に、東洋人の割合が正確かどうかを見るのは簡単だが、問題が起きる前にチェックできるようにするのは難しい。洗い出しが網羅的かをチェックするのは難しい。
    • 社会の中でどうだ?という話は難しい。
      • 自動運転で、「雪の日は?」「霧の日は?」ときりがない。
    • なので、やってみて出てきたら直すというアプローチをとっている
  • Tariq

    • レーニングの課題はご存知だと思う。
    • テストするときに組み合わせが多くなってきていると思う。
    • ペアワイズや同値分割など、様々なことを使おうとしている。
    • 例えば、ミューテーションテストのような分野がある。実際に使っているアプローチはAIのようなものにも応用できるのではないかと思っている。
    • 私はこれらの課題を解決する担い手だと思っている。
    • 皆さんも経験を共有することで貢献をすることができる

過学習について

  • 榊原

    • 事前にパネラーの皆さんに「過学習をシステマティックに解決できる方法があるか?」と聞いたところ、「難しいが気をつけるようにしている」という回答が来た
    • 信頼度成長曲線はノウハウとして溜まってきた
    • 体験したことからメソッドを作るというアプローチをQAでできると思うが、QA4AIではできるか?
  • 石川

    • 経験的に積み上がってきたノウハウが大事なのはそう。
    • 逆に突き詰めるとキリがない。
    • All Pairを崇めている人は多いと思うが、そういう人は「3種類以上はしょうがない」としたりしている。
    • 機械学習周りでは、曖昧なことが増えるので、特にそういうものに頼ることが多くなる
  • 松原

    • 最初、Deepラーニングは世界で200人ぐらいしか使えなくて、「Deepラーニングは黒魔術」と言われたことがある。
    • Deepラーニングは少しずつシステム化されてきた。
    • ただし、完全にはされていない、発展途上のもの。
  • Tariq

    • このフォーラムにおいては、過学習は適切な問題です。
    • 過学習はどういうものか。特定の答えをあまりに覚えさせるというもの。
    • 理解しようではなく、ただ単に覚えさせること。
    • 子供にストーリーを一言一句覚えさせることはできる。
    • でも、その物語について質問すると、理解できていないことがわかる。
    • 機械学習に対して過学習と言うと、まるで正答率がすごい良くなっているように見えるが、テストすると、一般化して理解しているかどうかがわかる。
    • ということは、どういう風にテストすれば一般化して理解しているか考える必要がある。

データの調達について

  • 榊原

    • データの調達とかも品質の保証範囲内に入ると思うが、それに対して研究のアプローチはあったりするか?
  • 石川

    • まずは現場単位でデータを集めないといけない
    • QAが後から確認するだけでは済まない。
    • 例えば、データをバージョン管理するということは今まで無かった。
    • アカデミックでは、足りなかったときにどういう訓練データを足すのか、は難しい。
    • 苦手なデータを教えてあげるというのは大切。
  • 榊原

    • データの来歴について。バージョン管理という話があったが、自分で集めたデータやちゃんとした業者が集めたデータは管理できるが、信頼性に書けるデータしか集まらない場合はどういうアプローチをすればよいか
  • 石川

    • それはまさに難しい部分。
    • 学び続けているものが対象だとさらに難しい。
    • データの自動収集はかなり難しい。常にチェックし続けないといけない。
    • 信頼があるところであろうが、全てチェックをかける、というようなノウハウや手法の確立が必要。
  • 榊原

    • IoTの分野でのオンラインバリデーションで、ウイルスなどによって、例えば農業の温度データが2度ずつ高かった、ということもあり得る。
    • セキュリティについても難しいと思うが、AIの分野ではどういうアプローチをしているか
  • 松原

    • AI分野の単独研究では難しい。セキュリティ分野と共同して研究する必要がある。
    • 一番気にしている分野として、自動運転がある。
    • AIとセキュリティは結びついて行っている。
    • ウォッチするプログラムをリアルタイムで動かしているが、最終的には人間の専門家が本当かチェックしている
    • チェックしているAIが乗っ取られたら…とかになるので。
  • 榊原

    • もっと強靭なシステムを作るためにAIを使ったりしていることがあるか?
  • Tariq

    • セキュリティに関して、私自身が担当はしていないが、セキュリティに対する取り組みは会社として続けている。
    • 現在はセキュリティエンジニアが存在して、会社・組織として何をするかというと、倫理的ハッカーに対処してもらっている。
    • 倫理的ハッカーには、知識を持ってもらわないといけない(敵のやりそうなことの理解、セキュリティの理解、システムの理解など…)
    • データが第一級市民だ、という認識が広がってきた
    • データに対して攻撃は仕掛けられる。なので、データセキュリティは今後伸びていく。
    • 投資していく必要がある
    • それを優先課題として取り上げなければ、すべてが無駄になってしまう

会場からの質問

  • 榊原
    • ここからは会場からの質問を受けたいと思う

質問1:QAはAIを育てる立場になるか?

  • 会場

    • ECOシステムを作れないのか?
    • QAがAIを育てる未来が来るのではないかと予想している。
    • データを入れてトレーニングしていると考えると、お客さんにフィードバックかけた内容をQAが投入する未来になるのではないかと考えている。
    • この考えについてどう思うか?
  • 石川

    • それはそのとおりだが、今までもそうではなかったのか?
    • 今までもQAがそうやっているようになる。
    • AIの話でいうと、ただ文句を言っていても難しい。
      • だめな例はいくらでも出てくる。
    • 育てる側に回らないといけなくなると思う。
      • 「あいつら、文句言ってるだけだぜ」となる。
  • Tariq

    • サイクルの話はそうだと思う。
    • Qualityを一番に考えている人にとって、私達はガイダンスを提供することが大事だと思っている。
    • 開発において無くてはならないことの一つだと思う。
    • システムのゴール、目的は何かを考えて、そういった問題を解決するために、どういうシステムが必要なのか考える必要がある
    • AIを使っているかマシーンラーニングを使っているか関係なく、顧客の要求を満たさなければいけない。
    • 一般的に、新しいことに恐れを抱くことがある。
      • QAのしごとがなくなるのではないか?と思ったりする。
    • けど実は我々のやり方が改善されるだけである。

質問2:学習データのシェアについての課題

  • 会場

    • AIの学習したデータをシェアすることについて。
    • 一企業が学習に使ったデータやシステムを公開するのはためらうことがある。
    • 共有することに対する課題はあるか
  • Tariq

    • コミュニティとして重要なのはナレッジを共有すること。
    • ただしデータを共有することに対して気を付けなければならない。セキュリティの問題とバイアスの問題がある。
    • そういった問題を解決してから出ないと、広範囲で共有することにはならない。
    • 同時にやらなければならないのは、ツールを開発しなければならない。確認ができるようにしないといけない。
    • データに関しては、個人的にはセキュリティが一番重要だと思う
  • 石川

    • 相当、品質に気を使わないといけない。
    • 運転の分野では、一般性の高いデータ
      • 衝突事故時などのデータはシェアが難しい
      • ただし、一般的な運転データはシェアできる。
    • また、AIの動きを外から見て、似たようなAIを作ってしまう問題が出ている。
    • 電子透かしみたいなものができないか考えている。
  • 松原

    • アメリカにはOpen AIの協会があったりする。
    • Deepラーニングがこれだけ普及したのは、一般公開したからではある。
    • そういう動きがあることはある

質問3:評価データの省略について

  • 会場

    • 訓練データの話があったと思うが、評価データについて聞きたい。
    • テストの人たちはデータを少なくしたいと思っている。
  • 石川

    • 小さい方が楽なのは確か。
    • ただし、Deepラーニングに同値クラスのような概念がない。
    • また、テストデータを用意しても無駄打ちしている可能性がある。
    • なので、いっぱい入れたくなる。
    • そこは難しいところである。
    • 効果的なテストについては、要求から決まるところも実装から決まることがあるので、自分たちが作ったものを理解して、テストを考えなくてはいけない。
    • また、なぜそのテストをするのかも考えていかないといけない。
    • 近似的に多様なデータを入れたりすることを考えたりする。

「テストの未来、品質の未来~⾃動化はテスター撲滅の夢を⾒るか?~」 聴講レポート #JaSST19Tokyo #JaSST

目次

発表スライド

speakerdeck.com

当日のツイートまとめ

togetter.com

自己紹介

今回は自己紹介と働いている組織の形を紹介してもらう

山口鉄平(以下、山口)

  • Yahoo! Japan
  • システム統括本部 技術支援本部(元)
  • 元々は組み込みのソフトウェア開発をしていた
  • Yahooは多種多様なサービスが色々な作り方をしている
  • Unitテストの導入だけでなく、E2EやAPIも行っていた
  • Yahooはプロダクト単位で行っており、その範囲でテストも行っている
  • それを我々の間接支援部門が支えている
  • QAというプロセスは存在しない

大園博昭(以下、大園)

  • LINE Fukuoka
  • UI Test Automationチーム
  • プロダクト単位で行っている。
  • テスト自動化チーム、SETチーム、QAチームが別にあり、それぞれのプロダクトチームに入っている

木住野奈夫人(以下、木住野)

  • LIFULL
  • 開発志向を持っていたがQAチームへ
  • 半年前にQAチームから分離される形でSETチームが誕生
  • 4,5名/チーム、週4回のリリース
  • リリースパッケージに対するE2Eのテストを実施
  • 不安になっている自動テストの相談に対して対応している

根本征(以下、根本)

  • メルカリ
  • 新卒からWebバックエンド→SETチーム→Automation and Engineeringチーム
  • E2EテストやCI/CDを実施
  • テストがメインではなく、開発者の生産性向上のための動きをしている
  • これまではQAチームと協業して自動化をしていたが、それだけでなくリリースを早めるためのE2Eテストの自動化を直接プロダクトチームに入って行っている

松尾和昭(以下、松尾)

  • HeadSpin
  • 今回はクックパッド在籍時代の話を中心に話す
  • UnitテストからE2Eテスト、プロセス改善を経験
  • クックパッドでは国内外の開発に携わっていた

  • 1つのプロダクトに対して、機能ごとにチームができていた

  • QA(QITチーム)は横断的に見る形で
  • テストの破綻を見越してテストチームを行っているのが特徴的(by 藤原さん)

モデレータ:藤原大(以下、藤原)

  • メルカリ

本セッションのコンセプト

  • 自動化を中心に、今後の未来について話す

    • 自動化の課題
    • どういう組織になっていくのか
  • ここで言うのはあくまで一例なので、ご自身の自動化推進に参考にしてほしい

テスト自動化への期待とその結果

期待

  • 素早いフィードバック
  • テストの効率化
  • コスト削減
  • すばやいデリバリ
  • バグの早期発見
  • 心の不安

結果

  • 素早いフィードバック
  • テストの効率化
  • すばやいデリバリ
  • バグの早期発見
  • 心の不安

なぜコスト削減が消えた?

  • 藤原

    • 期待と実際の結果を見比べると、コスト削減の期待が消えているのが特徴的に感じた。
    • ここについて実際の経験を元に話してもらいたい
  • 大園

    • 最初はすべて手動テストをしていた
      • QAチームが行っていた
    • 品質も担保したいし、コストを削減したいという目的で自動テストを実施した
      • 大失敗だった
    • 教訓を元に、「まずは品質を担保しよう」ということになった
    • あるサービスでは90%は担保している状態になった
    • テスト実施のコストは減ったが、自動テストスクリプトの作成コストが増えたので、結局は人的コストがトントン
  • 根本

    • 2年前にテスト自動化を立ち上げた
    • 始めた当時は目に見える効果が大事
      • コスト削減は見えやすい
    • ただ、メンテナンスコストや、自動スクリプトの作成スキルがあるエンジニアの採用活動コストなどを考えるとトントン

テスト自動化の課題とその対策

テストが失敗したわけではないが、別の要因(データ作成とか)でテストに失敗してしまう

  • 松尾

    • 時間帯によってネットワークの遅延で失敗したりする
    • モバイルアプリのテスト自動化に対しては、テストの実行基盤がどれだけ保全できるか、どれだけ安定しているかが特に大事
    • 現職では、安定した環境や実環境に近い環境でテストが成功するものを提供できるようにしようとしている
  • 山口

    • まず、このことがどうして課題かと言うと、安定しないと「テストをやらない」という判断をプロダクトがするようになってしまうから
    • そのような場合は、先にインフォメーションを与えて、回避することを先に行う
    • もちろん安定させていくことも同時に行っていく
    • そこじゃなくても自動テストのメリットを享受できる部分があるはず

自動化チームがいない、または立ち上げが難しい、人材がいない、または少ない

  • 大園

    • 立ち上げに難しいというのはあまり感じていない
    • むしろ拡大フェーズにおいて、なかなか採用が難しい
    • システムを作るに置いてエンジニア力が必要
    • エンジニアの採用と同じ感じ
  • 山口

    • 3000人いると、SETチームに頼るのは難しい
    • 各現場で書けるようになるのが大事
    • その人達ができるようになるにしていく
    • サービスに伝える、教える人を増やしていくようにする
  • 藤原

    • 作れる人のポイントは?
  • 山口

    • システムを作ることができる人
    • テストをなるべく無駄なく効果的にできるようになる人
    • 一夜でできる話ではないので、学び続けられる人

何を自動化の対象とするか?どのテストを自動化するか?のスコープや計画や準備がきちんとできていない

  • 木住野

    • 当時、常識が無かった
      • まずはテストカバレッジを増やすようにした
        • 1000ケースほど作ったが、何を守りたいのかが不明確なままだった
      • 当時、週2回のリリースを行っていたが、リリース前に自動化エンジニア4人が1日がかりでテスト結果を確認するようになっていた
    • テスト対象が明確になっていなかったので、テスト計画を作るようにした。
      • テスト対象を絞った
    • 手動テストと自動テストのカバーする範囲を明確化した
    • その中で、どういったテスト対象にするかは、以下のいずれかを満たすものにした
      • ビジネス上絶対に守らないといけないもの
        • 明確に定義した(Google Analyticsより)
          • ページビュー数
          • ページの価値
      • 過去に不具合が起きたもの
    • 現在は、テストエンジニア3人で長くて4時間、だいたい1時間で完了するようになった
  • 大薗

    • 何も考えずにどんどんスクリプトを作った
      • プロセスを抜かして、自動化した
        • 「すごいでしょ」と一人で思っているようになった
    • 失敗した数はかなり多い。それだけ何をやればよいか学んだ
  • 根本

    • テストケースの問題が多かった
      • 新しい機能のときに更新されていなかった
      • どういう意図でこれを作ったのか誰も分かっていなかった
    • テストケースを作り直すことになったので、さらに自動テストも直すようにした

手動のテストケースをそのまま自動化してしまってテスト効率が悪い

  • 藤原

    • 手動テストは手動のためのケースだと思っている
  • 松尾

    • アプリのUIのテストだと、いくつものシステムをまたいだ設定があったりする
      • 自動テストすると無駄が多く、非常にもったいない
    • 自動テストでは裏側の設定をスクリプトで行ったりできるはず
  • 木住野

    • いきなり自動テストケースから作り始めたが、困った
      • 自動テストを実行して失敗したときに、手動で実行することができない

テスターが自動化用テストケースをかけない

  • 藤原

    • 自動化エンジニアになっての苦労は?
  • 木住野

    • プログラミングスキルによる苦労は無かった
    • 逆に、テストスキルが元々なかったのですごい苦労した
    • 「ブラウザを自動的に動かすことが楽しい!」と自動化ハイになってしまった
  • 大園

    • 多分、苦労は無かった
    • テストに精通していたわけではない
    • ソフトウェアには明るかったので、実装に対しての苦労はあまりない

テスト自動化チームがマネジメント層やテスター、他の関係者から十分なサポートを貰えない

  • 根本

    • メルカリでは現在、それぞれの品質や生産性に責任を持っている人とは働きやすい状態になっている
    • 一方で、佳境の中でテスト自動化の大切さを伝えるのは難しい
      • 砂漠の中で「森は大事ですよ」と言っても、彼らが欲しいのは水なので伝わりづらい
  • 山口

    • Yahooの中において、明確に「これをやらなくてはいけない」という仕事の仕方をしていない
    • 実際にテストして困っている人のところに行く
      • その人が「自動テストいいな」と思えれば、その人のマネージャに伝わっていく
    • 個人的には「サポートをもらう」という形をしていない
    • 逆にトップダウンで入れたほうが良いときもあるので、その時の効果を示さないといけない
      • こっちから仕掛けていくことになる
  • 藤原

    • だいたい失敗する時は「カバレッジを正確に求めてくる」という人が現れた時だと思う

テスト自動化のための理想の体制とロール

質問1:自動化チームは必要か?

  • 必要
    • 大園
    • 根本
  • 不要
    • 山口
    • 木住野
    • 松尾
「必要」派
  • 根本
    • メルカリだと、技術の変化を非常に感じる
      • マイクロサービス化など
    • モノリシックであれば現場が書けるが、ついていってキャッチアップするのは、チームではなくとも人への投資が大切なのでは?
「不要」派
  • 木住野

    • 開発が行えるのが理想
    • 開発プロセスを理解している人がやれば良い
    • 実施できるスキルを持っている、投資できるのが大前提
  • 松尾

    • 「自動化チーム」という組織は不要
    • あるサービス開発チームにおいて、自動化のロールを持って動く人がいれば良い。
      • 自動化チームとして存在している必要がない
    • 全社の基盤を作るチームは必要だが…
    • 独立したチームが確固たる地位を持つ必要はない

質問2:QAエンジニアは必要か?

  • 必要
    • 大園
    • 根本
    • 松尾
  • 必要ない
    • 木住野
  • サービスによる
    • 山口
「必要ない」派
  • 木住野
    • 開発チームやPOが決める
    • どうテストに対して納得感を作るのかができれば、QAエンジニアは必要ない
    • ただし、そのための教育としてQAエンジニアは必要になってくるかも
「サービスによる」派
  • 山口
    • YahooのサービスにおいてはQAエンジニアが必要なサービスが特に無い
    • 開発チームが改善や品質について見れる状況にある
      • 修正してリリースできる範囲にある
    • 1回リリースしてからバグが起きたり、人が死ぬようなプロダクトでは必要だと思う

テスターは必要か?

  • 部分的に置き換わる
    • 山口
    • 根本
    • 木住野
    • 松尾
  • 完全に置き換わる
    • 大園
「完全に置き換わる」派
  • 大園
    • テスターが多様化してきている印象がある
      • 単にテスト実行するだけでなく、プランナー的に企画段階から入っていったり、UXの部分も入り込んだりしている
    • 自動化エンジニアがもてはやされている感がある
「部分的に置き換わる」派
  • 山口

    • 実行作業をするテスターは無くなっていくだろうし、なくしていきたい
    • 探索的に見つけてくれる人は残るだろうし、その人の価値は高い
  • 木住野

    • 「テスターの仕事=手動テストを実施する人」と考えていると不要になる
    • 技術的にトレンドを追い、開発に取り込んでいく人は価値がある
    • リーン開発においては探索的テストをまずテスターにやってもらって、自動化は後追いでやっていくことはありそう
  • 根本

    • リグレッションテストは置き換えていきたい
    • スクリプトを書くのと手で書くのがどっちが早いかわからない場合は、力を割いてもらいたい
      • 新機能の部分とか
  • 松尾

    • 「現地に行って人の生活をする」というようなテスト実施はすぐに置き換わらない
    • 人に対してのサービスを作る上では、切れない
    • 特定の国で、実際の地域の通信を使ってテストするようなものは自動化に置き換えられる
置き換わる条件について
  • 大園

    • 前提条件をいくつかつければ、完全に置き換われると思う
      • 開発体制などを見直すなど
    • まずは直近のサービスで、そういう環境を作ることをやろうとしている
  • 山口

    • 何を外の環境にするかによる
    • 外にすればするほど現場との距離ができる
    • 「なぜ開発の人たちができないのか」という阻害要因を取り除いていくのが役目
  • 木住野

    • すぐは達成できるか分からないが、それを目指してやっている
      • 誰でもメンテナンスできるように
      • どんな環境でもメンテナンスできるように

質問:Agile、DevOpsがあたりまえの時代に求められる人材とは?

  • 藤原
    • テストフェーズを作ると、その部分がボトルネックになりがちだと思っている
プログラマが出せない価値を出せる人
  • 山口

    • 皆さんが語っていたように、テスターが多様性しており、QAエンジニアが見る範囲が広がっている
    • ものづくりをするにおいて、プログラマがパフォーマンスを出せる領域がある
    • 一方で、領域を広げることはプログラマが苦手な部分
      • そういう領域で価値を出せる人が求められると思う
  • 藤原

    • プログラミングスキルはいる?
  • 山口

    • 何を作っているのか分からないレベルだと厳しい
    • 何が必要なんだっけ?と伝えられる人
誰もやったことないことに果敢にチャレンジする人
  • 大園
    • 今まで「めんどくさいな」と思っているところを、我々が拾い上げる。
    • Developerが開発に集中できるようにする環境を提供できるようにチャレンジできる人が求められている
技術スキルを持ち、継続的な改善を推進する人
  • 木住野
    • 技術スキルを持って、その中で最適な価値を選択する必要がある
    • 最初から正解を選ぶことは難しい
      • 低確率で最初に正解が出たとしても、時間の経過で最適解にならなくなることもある
越境する人
  • 根本
    • スクリプトを書くだけの人は、なくなっていくと思う
    • 一つの専門性を持ちながら、他の分野にも貢献を持つためにキャッチアップできることが大事
    • 技術力だけではない
学びを続けられる人
  • 松尾

    • 自分たちが活動しているチームで足りないものは何か
    • 自分たちはどういうふうに動けばよいか
    • これらを常に考え続けている人は生き残っている人が多い
  • 藤原

    • モバイル業界だとツールがどんどん出ているが、そういうのもキャッチアップすべき?
  • 松尾

    • 使ってみるのも大事だと思う
    • それだけでなく、例えば、機能を見るのは自動化しているが性能評価はモニタリングを手動で行っていたら、そこをどうすれば自動化できるのか?とかを考えている

まとめ

  • 自動化はテスター撲滅の夢を見るか?は実はテスターだけの話ではない

テスターの仕事は自動化によってどうなるか?

  • 全部ではなく部分的に置き換わる(92%)
  • 完全に置き換わる(8%)
  • 置き換わらない(0%)

「テスターの仕事は自動化によって置き換わらない」は0%だった。

  • テスターはメルカリにはいない
    • そこに価値を感じていないから
  • テストだけ極めるのは難しいと感じている
    • 極端に言うと、給料が上がらない

テストの未来、品質の未来

  • 超高速な環境によってテスト実行スピードも超高速になったら?Dockerでできるよ!
  • AIやMLの力で自然なシナリオを自動生成できるようになったら?それOSSでできるよ!
  • これらを提供できるテストサービスが登場したら?それたくさんあるよ!
  • テストピラミッドがひっくりかえり
  • 探索テストやテスト設計手法すら必要なくなり
  • テスター、QAエンジニア、テストエンジニアが必要なくなり
  • 完全自動で全ケース網羅すればよくなる

かもね?

会場からの質問

  • 現場への改善と新しい技術を試すバランスが難しいと感じているが、どういうふうに気を付けているor工夫があれば?

回答

  • 大園
    • 会社の風土として、完全に独立部隊を作ってもらった。コストも度外視で
    • 失敗を学びにして変えて欲しい
    • QA環境もある程度固まっている状態だった

関連記事

昨年のJaSST Tokyoでのテスト自動化セッション

nihonbuson.hatenadiary.jp

nihonbuson.hatenadiary.jp

パネルディスカッション「QAの過去から現在・現在から未来」(後編) #DeNA_QA_Night

前編はこちら

nihonbuson.hatenadiary.jp

目次

登壇者

奈良 隆正(以下、奈良さん)

西 康晴(以下、にしさん)

河野 哲也(以下、河野さん)

講演資料

www.slideshare.net

※p8以降

昔からあるツールで今でも使い物になりそうなものについて

f:id:nihonbuson:20190310002908p:plain
今回の講演資料8ページより

  • 河野さん

    • 奈良さんはなぜすべて○を?
  • 奈良さん

    • みんな口が悪いね?
    • どれも参考にはなると思う
      • ただし、具体的なプラクティスを教える人がいない
      • なので、本を読んでほしい
  • 河野さん

    • 基礎知識として知っておけということですね

品質管理手法

  • 河野さん

    • にしさんは◎/×という付け方になっていますが、どういう意味ですか?
  • にしさん

    • 何も考えずにランダムにつけたんですけど(笑)
    • 考え方は知っておいたほうが良いが、実際に使う機会に出くわさない
      • 大量生産をする、統計を使う場合のみ有効
        • 本当の統計を使ってないので機械学習で役に立たない
  • 河野さん

    • コンサルが来たときにだまされないようにするため○にした
  • 奈良さん

    • すごい納得

品質管理図

f:id:nihonbuson:20190307110514p:plain
奈良さんの講演資料24ページより

  • 河野さん

    • にしさんは×にしてますが、その理由は?
  • にしさん

    • いつ何がリリースされて、いつ何がテストされていて…みたいなのもわからない状況で使っても意味がないのでは?
  • 河野さん

    • 10日間とか、リリースごとで使うと良い
    • 3日間とかだと意味がない
  • にしさん

    • スプリントの性質による
    • 他のサービスと横並びして比較するのは意味がない
  • 奈良さん

    • Microsoftのツール(Microsoft Project)を使えば簡単に作れるのでは?
    • 会場の皆さんは、この絵を見て、瞬間的に見てテストがどこまでできているのか答えられるの?
  • 河野さん

    • 普段書いている人?少ないですね。
  • 奈良さん

    • テストが終わりそうかという質問にどこまで答えられるのか?
    • 明日デートいけないですよ?
  • にしさん

    • どんな場合でもデートできる状況を作るのが大切じゃないの?
  • 奈良さん

    • 説明できる状況ならどんな方法を使っても良いと思う

V&V

  • 河野さん

    • にしさんはV&Vが◎の理由は?
  • にしさん

    • これが仕事ですから
    • 「V&Vが大事なんです!」というだけの人は信用できない
    • 全体を考えてやっているならすごい大事
  • 河野さん

    • 実際の状況、具体論で考えられるのが大事
  • 奈良さん

    • レビューはなんでやるの?と言ったときに、V&Vの考え方が分からなければ上手くできない
    • 似たような考え方でV字モデルがあるが、開発でもちゃんと知るべき。
    • 開発者にとっておまけではなく、コードを書くのと同じように知るべき。
  • にしさん

    • 自動化できてるところ、自動化できてないところ、これからしたいところ、人間が考えるべきところをちゃんと区分けするため
    • そうしないとSETがTDDからCIで組み込んだあとに、SETが孤立するかQAが孤立する

探針と信頼度成長モデル

f:id:nihonbuson:20190307110635p:plain
奈良さんの講演資料27ページより

  • 河野さん

    • 探針と信頼度成長モデルは知っておいた方が良い?
  • 奈良さん

    • 今だと、こういう管理をしなくて良いのですか?
    • 私の場合は「テストがいつ終わるのか」を知るために使っていた
    • 組織の特性などによって適用する曲線は使い分けた
    • 最近のテストってこうなってるのかな?
  • 河野さん

    • なってないですね
  • 奈良さん

    • 期間が短いからできない感じ?
  • 河野さん

    • 期間が3ヶ月とかだと役立つかもしれないが、今だとブレブレになる
    • 探針もそう
    • 私が○にしている理由は、これもコンサルに騙されやすいものだから
    • にしさんは、信頼度成長曲線について言いたいことは?
  • にしさん

    • 信頼度成長曲線の言葉を少しでも言うぐらいなら今日の質問の投稿をするべき

LOC・FPベースの品質マネジメント

  • 奈良さん

    • ソフトウェアの目方をどうやって測るかで必要なのでは?
  • 河野さん

    • 計測してる組織が少ない
    • 開発者が嫌がるのでは
    • コード行数をマネジメントで使っている人?一部いますね
  • にしさん

    • 自分の書いたコードを行数で測るのはちょっと…
  • 奈良さん

    • 今そういうことをやるのではないのかもしれないが、必要だと思う
  • にしさん

    • 他のプロジェクトと比べたいんですよね?
  • 奈良さん

    • 上司から求められているから
  • にしさん

    • どんなテストするかによって出方は変わるはず
    • LOCとかではなく、「うん、うちらはちゃんとテストできてるね」とみんなで納得できるようにするほうが大事
  • 奈良さん

    • いや、上司との説得で使う必要がある
  • 河野さん

    • 他プロジェクトではなく、自分のプロジェクトの比較で使うことはあるか?
  • 奈良さん

    • この結果のみを使って信じるのは間違い
  • にしさん

    • 他に測る指標があるのでは?
      • Unitテストがあるかどうか
      • Unitテストはあるけどコードをなぞっているだけ
    • コードの規模ではないと思う
  • 奈良さん

    • 皆さんCMMをご存知ですよね?
  • 河野さん

    • いや、知らない人が多いですよ
  • 奈良さん

    • CMMIの中でも、未だに「必要だ。これがないと管理できない」と書いてある
  • 河野さん

    • なんか測ったほうが良いということですかね

メトリクス

  • 河野さん

    • メトリクスはどうですか?
  • にしさん

    • 「ISOをそのまま使えば良い」という捉え方だとまずいけど…
    • GQMにおける測り方のデザイン、把握のデザインは役に立つ
  • 河野さん

    • データに基づく議論が少ないと思う
    • もっと知ろうよ、という意味で○
    • やたらめったら取ろうよ、ではない
    • GQMはフレームワークとして美しいが、非常に難しい
  • にしさん

    • 開発者よりもっと頭を使わないと品質は良くならないよね
  • 河野さん

    • 大学の先生が言うと説得力がありそうですね
  • 奈良さん

    • 上司が取っているから○にした
    • 取っている理由が分かってない人が多い
      • だったら自分でメトリクスを取れば良いじゃない
      • その参考になるのがメトリクス
    • 作業でメトリクスを取っている仕事は辞めちゃえば良いのでは?
  • 河野さん

    • 日々の業務で、意味がない、ちゃんと考えたほうが良いと気付く機会が無いのでは
  • 奈良さん

    • みんな物理的根拠がない状態で働いている
    • 文句を言うなら自分で考えれば?
      • なんかにしさんの隣に座ると口が悪くなるな…

ソフトウェア工学

  • にしさん

  • 河野さん

    • QAの人が業務ですぐに使えるのか怪しいので◎ではなく○にした
  • 奈良さん

    • 私はソフトウェアを開発して飯を食っている
    • どんな仕事をしたら飯が食える?コードを書いたら?
    • コードを書く以外にいろいろある。
      • 見積もり、テストの管理などのその1つ
    • そういうことができない人がソフトウェア開発をしていると言ってほしくない
    • そのためには、ソフトウェア工学を勉強してほしい
  • 河野さん

    • やり始めると噛みごたえのある勉強にはなる
    • 進めるなら輪読でやればよいのでは
  • にしさん

    • 本当は大学でやるべきですよね
      • 自動車工学知らない人がつくった自動車
      • 航空工学知らない人がつくった飛行機
      • 機械学習知らない人がつくった自動運転
      • 乗りたくないよね?
    • だからソフトウェアを開発しているならソフトウェア工学を勉強しよう
  • 河野さん

    • 電通大で夜間に有料講義でやらないの?
  • にしさん

    • 夜働きたくないじゃん
    • トップエスイーという選択肢もある
    • あとは自社内で勉強するのが良い
  • 奈良さん

    • PSP(Personal Software Process)をやると良い
    • …なんか意見が合わないね

会場からの質問(1)

  • クソCHAPDコントロールな感じで仕事が面白くないのですが、ここから抜け出すために何を初めにするべきか。
  • またマネジメント層に「クソCHAPDコントロール」にはあまり意味がないことを分かってもらうためにはどういえばいいでしょうか。

  • にしさん

    • 「スキルを付けて会社を辞めろ」が正解です
    • 「会社に残ってここから抜け出す」は結構な難問
    • 自分の周りのチームで「自分のやり方まずいよね」と言って、こっそりやって、上の人には「ウォーターフォールやってます!」と言いつつおこなって、品質が良くなったら隣のチームに広げていくやり方が良い
  • 河野さん

    • 組織を変えるのは難しいですよね?
  • にしさん

    • QAは横断組織であることが多いので、一人の開発者が変えるよりは楽
    • 今どきのクラウドな会社の場合、創業者で技術理解のある経営陣がいる時は変えやすいはず
  • 河野さん

    • 社内政治をするということですよね?
    • ちなみに、こういう努力をすることで転職アピールにも繋がる
  • にしさん

    • なんか、辞めそうですよ?大丈夫?
  • 河野さん

    • 転職アピールは置いといたとしても、こういう話をできない(仲間を作っていけない)人は一緒に働けない
  • 奈良さん

    • こういうイベントを一人で来ても意味がない
      • 「来るんだったら3人でおいで」と言ったりしている
    • どうやって聞いた話を実現するの?
    • 複数で来て、裏で組んでこっそりやる
  • にしさん

    • 1人でしか来れない人は割り切って、自分の会社の中で帰ることとして割り切って、自分のチームで試してみて「見てみて!楽しいよ!」と伝える
      • 会社内でアピールし、社外にもアピールする
    • だんだん分かってきてくれる人がいる
    • 絶対「このクソ会社!」と思っている人がいる
      • その人を探すためにもやる
    • 「そんなことやっても意味ないよ」という人が実は理解者になる可能性のある人
      • その人の愚痴を聞いてみる
      • 愚痴をずっと聞いて、「そんなことばっかり言ってもしょうがないよね」という発言があったら、「こんなことをしようと思っているんですけど」と話す
    • 押し付けないこと、傾聴することが大事

会場からの質問(2)

  • 次の時代のQAが身につけるべきスキルとはなんですか?

  • 奈良さん

    • 質問を見た瞬間に頭をかかえた
  • にしさん

    • 個々で話しているQAはソフトウェアのQA
    • 実現しているのはサービス
    • じゃあ、「サービスの品質とは?」を考える
      • 自動運転の制度ではなく、自動運転が及ぼす影響とか
      • 高齢化、過疎化対策としてサービスを提供しようとしている会社もある
      • 自分のサービスは社会の解決をできているのか評価する必要がある
    • 身につけるべき範囲が広がっていっている
    • 開発者よりも先取りして学んで、もしも自分が適用するなら…を考え続ける必要がある
  • 奈良さん

    • 技術を磨くときに、世の中に通用する技術を磨いてほしい
      • 自分の会社だけで役立つ技術は、なんの意味もない
    • グローバルなり、スタンダードと比較して通用する技術を学ぶべき
  • にしさん

    • 外部のMeetupで話をするのも大事
  • 河野さん

    • 議論するのは大事ですよね
    • SSでも議論をするので興味がある人は来てください
    • 旅行するついでに参加してみてください