Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ソフトウェアエンジニアと共にテストを作るチームでの、テストエンジニアの関わり方/ques14
Search
i_echiuyan
November 15, 2019
Technology
1
3k
ソフトウェアエンジニアと共にテストを作るチームでの、テストエンジニアの関わり方/ques14
当日の発表資料です!
i_echiuyan
November 15, 2019
Tweet
Share
More Decks by i_echiuyan
See All by i_echiuyan
WACATEWACATE流、セッションのつくりかた/wacate2019winter
i_echiuyan
0
420
SPEEDA開発におけるテストエンジニアのいろはにほへと/SPEEDA-Testing-Day
i_echiuyan
1
580
【WACATE再演】組み込みマニュアルテスターだった私が、Web系自動テストエンジニアに!?💦テストエンジニアに求められるスキルと今後のキャリア💪/Agile QA Night!! 2
i_echiuyan
0
1.4k
組み込みマニュアルテスターだった私が、Web系自動テストエンジニアに!?💦テストエンジニアに求められるスキルと今後のキャリア💪/WACATE2018winter
i_echiuyan
0
1.6k
コミュニケーションで大事なことは「伝わったこと」/wacate2017winter
i_echiuyan
0
48
マインドマップミニ講座のワーク参加報告/2016presentation
i_echiuyan
0
38
テスト設計技法の説明 -思い出してみよう-/wacate2016summer
i_echiuyan
0
200
Other Decks in Technology
See All in Technology
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
440
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
360
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
250
10分で学ぶKubernetesコンテナセキュリティ/10min-k8s-container-sec
mochizuki875
3
320
私なりのAIのご紹介 [2024年版]
qt_luigi
1
120
小学3年生夏休みの自由研究「夏休みに Copilot で遊んでみた」
taichinakamura
0
140
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
470
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
110
ゼロから創る横断SREチーム 挑戦と進化の軌跡
rvirus0817
2
260
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Writing Fast Ruby
sferik
628
61k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Gamification - CAS2011
davidbonilla
80
5.1k
GraphQLとの向き合い方2022年版
quramy
44
13k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
What's in a price? How to price your products and services
michaelherold
243
12k
Building Applications with DynamoDB
mza
91
6.1k
Facilitating Awesome Meetings
lara
50
6.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Transcript
ソフトウェアエンジニアと共に テストを作るチームでの、 テストエンジニアの関わり方 2019/11/15 第14回Ques Agile Testの今 株式会社ユーザベース 越中谷 郁美
もくじ • 自己紹介 • 開発チームの体制 • プロジェクトチーム内での、テストエンジニアの役割 • Product Teamでの、テストエンジニアの役割
• 苦労したこと • 今後やっていきたいこと 2 2019/11/15 第14回Ques
自己紹介 3 2019/11/15 第14回Ques
名前 越中谷 郁美(@i_echiuyan) 所属 株式会社ユーザベース SPEEDA事業 ProductTeam/ProductDevelopmentUnit テストエンジニア コミュニティ活動 JaSST
Tokyo実行委員 WACATE実行委員 Web Service QA Meeting運営 4 2019/11/15 第14回Ques
開発チームの体制 5 2019/11/15 第14回Ques
ユーザベースは、 「経済情報で、世界を変える」をミッションに、 企業・業界情報プラットフォーム「SPEEDA」と、 ソーシャル経済メディア「NewsPicks」などの サービスを運営しています。 6 私はここに所属 2019/11/15 第14回Ques
SPEEDAの開発組織 ProductTeam PD Unit SRE Unit DS Unit Design Unit
7 QAやテストで独立した組織はない 2019/11/15 第14回Ques
SPEEDAの開発組織 ProductTeam PD Unit SRE Unit DS Unit Design Unit
8 では、私(テストエンジニア)はどこに??? 2019/11/15 第14回Ques
SPEEDAの開発組織 ProductTeam PD Unit SRE Unit DS Unit Design Unit
9 2019/11/15 第14回Ques 新規開発のUnitに所属
プロジェクトチーム内 での、 テストエンジニアの 役割 10 2019/11/15 第14回Ques
テストエンジニアは、 プロジェクトのどのタイミングから関わりはじめるのか? 11 2019/11/15 第14回Ques
12 新規プロジェクトが立ち上がり、 チームが動き始める時から参加していく (少人数スタートの場合には入らないことも) チームが発足した直後から インセプション デッキ作成 ストーリ出し 見積もり &
計画 開発 ローンチ (公開) 2019/11/15 第14回Ques
プロジェクトは所属に閉じず、 必要な人(役割)でチームが構成される 13 テストエンジニア SREエンジニア Sales&Marketing ソフトウェアエンジニア CustomerSuccess デザイナー 2019/11/15
第14回Ques
プロジェクトは所属に閉じず、 必要な人(役割)でチームが構成される 14 テストエンジニア SREエンジニア Sales&Marketing ソフトウェアエンジニア CustomerSuccess デザイナー 2019/11/15
第14回Ques ここは日々の業務を共に行う
開発チームの体制 • チームにリーダーは存在しない • 自律的に動くチーム • 日々の業務や打合せの進行は全員が行う ローテーションにするなど特定の人に偏らない工夫 • 5分悩むならわかる人にすぐ聞く
15 2019/11/15 第14回Ques
プロジェクト初期から関ることで • 実装前にバグや抜け漏れを減らせ、仕様を充実させることができる • ストーリー出し(仕様決め)や計画段階で脳内テストする 怪しい所、仕様が足りていない所を洗い出す • 細かいこと言うのでソフトウェアエンジニアには鬱陶しいかもしれない でも気になることは言う •
ただし瞬発力が要るのがちょっとツライ • 一つ一つにかける時間が短く、長考はできない 正直、後から思い出すことも多い 2019/11/15 第14回Ques 16
仕様(ふるまい)= テストケース 「E2E自動テストの自然言語記述が仕様書である」という扱い 仕様が古いまま自動テストを流すとエラーになる ↓ 修正する ↓ 常に更新され最新の状態の仕様書となる 17 2019/11/15
第14回Ques
テストエンジニアも、ソフトウェアエンジニアも テストには関心を持つ 18 2019/11/15 第14回Ques
開発 •1イテレーション1週間ごとのサイクル • プランニング • ストーリーごとの開発 • リリース • 振り返り
19 2019/11/15 第14回Ques
ストーリーごとの開発 1. 着手するストーリーの仕様 (ふるまい)を考える 2. 自動テストを書く 3. 自動テストを実行 4. 実装
5. リリース 20 2019/11/15 第14回Ques
ストーリーごとの開発 1. 着手するストーリーの仕様 (ふるまい)を考える 2. 自動テストを書く 3. 自動テストを実行 4. 実装
5. リリース 21 ソフトウェアエンジニアと ペアまたはモブになって進める ここで実装するストーリーに対する 仕様の認識が合っているか再確認する エラーになるケースはないか? 見落としている条件はないか? 想定したテストケースで本当に充分か? このテストケースでどこまでやるのか? 2019/11/15 第14回Ques
ストーリーごとの開発 1. 着手するストーリーの仕様 (ふるまい)を考える 2. 自動テストを書く 3. 自動テストを実行 4. 実装
5. リリース 22 実装する前にまずはテストケースを書く まずは自然言語で書き、 その後対になるコードを書く 自動テストの自然言語記述が仕様書とい う扱いになるため、 見やすく、かつ的確な内容で書く 2019/11/15 第14回Ques
ストーリーごとの開発 1. 着手するストーリーの仕様 (ふるまい)を考える 2. 自動テストを書く 3. 自動テストを実行 4. 実装
5. リリース 23 作成したテストケースを実行する ここでは、 「期待通りに失敗する」事を確認する 2019/11/15 第14回Ques
ストーリーごとの開発 1. 着手するストーリーの仕様 (ふるまい)を考える 2. 自動テストを書く 3. 自動テストを実行 4. 実装
5. リリース 24 ソフトウェアエンジニアに託す。。。 (と言いつつ、たまーに傍らで見ているときも) 2019/11/15 第14回Ques
ストーリーごとの開発 1. 着手するストーリーの仕様 (ふるまい)を考える 2. 自動テストを書く 3. 自動テストを実行 4. 実装
5. リリース 25 リリースする直前に機能周辺や影響 がありそうな範囲を手動で確認する 探索的にテストする 現状自動テストはブラウザ1種類のみ実装 のため、クロスブラウザでの確認も行う 2019/11/15 第14回Ques
実装より先に自動テストを書けるの??? たとえば・・・ 「Webサイトのトップ画面で お知らせ情報のタイトルから、 詳細情報が見える機能を作ろう」 となった場合 2019/11/15 第14回Ques 26
実装より先に自動テストを書けるの??? たとえば・・・ プロジェクトチームで相談した結果、 「見たいお知らせ情報をクリックすると ポップアップが表示され、 詳細の情報が表示される」ように に実装しようと決めました 2019/11/15 第14回Ques 27
実装より先に自動テストを書けるの??? たとえば・・・ まずは、必要な仕様を考え 日本語で書いていく (Gaugeというツールを Seleniumに連携させて使っている) 2019/11/15 第14回Ques 28
実装より先に自動テストを書けるの??? たとえば・・・ ・トップ画面から ・お知らせ「リリース情報」をクリックすると ・ポップアップが表示される 2019/11/15 第14回Ques 29
実装より先に自動テストを書けるの??? たとえば・・・ 日本語で書いた仕様に対応させて E2Eの自動テストを書いていく (先ほどの例では、 箇条書きごとにStepになる) 「判定する要素を~~の様に実装する」と仮 定してテストケースを実装する 2019/11/15 第14回Ques
30
実装より先に自動テストを書けるの??? たとえば・・・ 実装したテストケースを実行してみて、 エラーが正しく発生する(判定したいと思って いる箇所でエラーが起きる)ことを確認 2019/11/15 第14回Ques 31
自動テストをペアプロ/モブプロで書くこと • レビューが同時に行えている実感がある • 話しているときに抜けに気付くこともある • 意見を聞いてもらえることが嬉しい 2019/11/15 第14回Ques 32
プロジェクトチーム内でのテストエンジニアの役割 ソフトウェアエンジニアが 見えていないところ/把握できていないところを減らすこと、 視界を広げることでサービスの質向上に貢献する事が 一つの役割だと思っている 33 2019/11/15 第14回Ques
Product Teamでの テストエンジニアの 役割 34 2019/11/15 第14回Ques
2つのリリースサイクル 従来機能 • リリースタイミングが週に1回 • ProductTeam全体でリリース 内容を統合して実行する • リリース前のチェックに およそ1.5日
新規機能 • リリースタイミングはいつでも • 各チームごと、自分たちの開発 範囲で1ストーリーごとに実行す ることができる • リリース前チェックは数分から1時 間の間。ストーリーの規模や複 雑性による 35 2019/11/15 第14回Ques
既存機能のリリース • リリースのためのブランチ作成やデプロイはテストエンジニアが実施 • 各チームのリリース内容の把握 36 2019/11/15 第14回Ques
Product チームでのテストエンジニアの役割 • プロジェクトチームを横断した視点を持つ • 他チームの開発に影響しないか? • 他チームの開発が自チームに影響しないか? • テストエンジニアと元QAチーム(新規機能開発以外の第三者検証)
の人達とで情報共有と連携 37 2019/11/15 第14回Ques
苦労したこと 38 2019/11/15 第14回Ques
ロールの掛け持ち テストエンジニアと元QAチーム(新規機能開発以外の第三者検証)の ロールを掛け持ちしていたが、うまくバランスが取れなかった • 直接コミュニケーションを大切にするが故に、その場にいなかった場合に 認知できない・共有されてないという状況があった • 開発チームの業務に集中すると第三者検証のメンバーへのフォローが疎かに • 両方を常に気にしてしまい、集中できない
39 第三者検証をしているメンバーが自己完結できるようになってきたことや テストエンジニアが増えてきているため、一人で抱える必要がなくなった。 現時点ではプロジェクトチームの役割に重点を置き、ある程度集中させて もらう形をとっている。 2019/11/15 第14回Ques
スピード感に追いつけない自分 • 開発経験もなく、プログラミングもほとんど経験なかった自分 • 説明してもらうも、分からない単語多い • ペアプロ・モブプロ時の作業スピード • コード書くペースが違いすぎる。待たせてる…かも…という不安 •
日本語はブラインドタッチで書けるけれど、英語はまだできない 40 分からないことはその場で聞く。 練習&学習 チャレンジする意識を保つ。遠慮しすぎない気持ち。 2019/11/15 第14回Ques
今後 やっていきたいこと 41 2019/11/15 第14回Ques
今後やっていきたいこと • プロジェクトチーム内での関われる範囲をふやす • 今はE2EメインたがAPIの自動テストも理解度を上げる • テスト/実装以外のところ。データの分析など • E2Eテストの拡充 •
クロスブラウザ • 既存機能がまだまだ 42 2019/11/15 第14回Ques
ご清聴ありがとうございましたm(__)m 43 2019/11/15 第14回Ques