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
2.9k
ソフトウェアエンジニアと共にテストを作るチームでの、テストエンジニアの関わり方/ques14
当日の発表資料です!
i_echiuyan
November 15, 2019
Tweet
Share
More Decks by i_echiuyan
See All by i_echiuyan
WACATEWACATE流、セッションのつくりかた/wacate2019winter
i_echiuyan
0
410
SPEEDA開発におけるテストエンジニアのいろはにほへと/SPEEDA-Testing-Day
i_echiuyan
1
570
【WACATE再演】組み込みマニュアルテスターだった私が、Web系自動テストエンジニアに!?💦テストエンジニアに求められるスキルと今後のキャリア💪/Agile QA Night!! 2
i_echiuyan
0
1.4k
組み込みマニュアルテスターだった私が、Web系自動テストエンジニアに!?💦テストエンジニアに求められるスキルと今後のキャリア💪/WACATE2018winter
i_echiuyan
0
1.5k
コミュニケーションで大事なことは「伝わったこと」/wacate2017winter
i_echiuyan
0
48
マインドマップミニ講座のワーク参加報告/2016presentation
i_echiuyan
0
37
テスト設計技法の説明 -思い出してみよう-/wacate2016summer
i_echiuyan
0
200
Other Decks in Technology
See All in Technology
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
170
複雑なState管理からの脱却
sansantech
PRO
1
140
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
670
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
強いチームと開発生産性
onk
PRO
33
11k
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
0
980
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
490
信頼性に挑む中で拡張できる・得られる1人のスキルセットとは?
ken5scal
2
530
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Optimizing for Happiness
mojombo
376
70k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Into the Great Unknown - MozCon
thekraken
32
1.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
What's new in Ruby 2.0
geeforr
343
31k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Six Lessons from altMBA
skipperchong
27
3.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Designing for humans not robots
tammielis
250
25k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
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