Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
システムテスト自動化カンファレンス2018.pdf
Search
Koichi Nishide
December 08, 2018
Technology
11k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
システムテスト自動化カンファレンス2018.pdf
Koichi Nishide
December 08, 2018
More Decks by Koichi Nishide
See All by Koichi Nishide
ドメインをスペックにしていく
knishide5
1
11k
Other Decks in Technology
See All in Technology
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
300
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
440
GoCon2026 - Open Source, Open World
sanposhiho
2
1.7k
enechainの内製セルフサービスプラットフォーム
hiyosi
0
150
AIで仕事のやり方を変える
matsu7874
3
1k
module Synths; end
asonas
1
130
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
140
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
340
コーディングエージェントでM5Stack系の開発を少し試した時の話 / M5 Japan Tour 2026 Autumn 東京
you
PRO
0
110
アリアドネの糸と、20年ごとの建て替え ── 長尾真『電子図書館』を、伊勢で読み直す / Rereading Makoto Nagao’s "Electronic Library" in Ise
ykiyota
0
140
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.4k
Featured
See All Featured
Designing for Performance
lara
611
70k
Design in an AI World
tapps
1
310
Docker and Python
trallard
47
4.2k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
sira's awesome portfolio website redesign presentation
elsirapls
0
410
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Embracing the Ebb and Flow
colly
88
5.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Transcript
freee 株式会社 システムテスト自動化カンファレンス2018 前半 freeeの品質トゥギャザー 2018.12.08
2 2 freeeとQAの紹介 01 Section
Koichi Nishide 西出 皓一 3 2015年1月 freeeに入社 最初の2年間は人事労務freeeのエンジニアをし て、今はQAマネージャーをしています
4 創業からIPOまで、中小企業活性化のためのサービスを一気通貫で提供 freee会社概要 ❂ 納税する ↗ 育てる ↻ 運営する ✩
はじめる 会社設立 freee 開業 freee クラウド会計ソフト freee 人事労務 freee (マイナンバー管理 freee 含む) クラウド申告 freee 161億603万円 (資本準備金等含む) 従業員数 事業内容 クラウド型バックオフィスサービスの開発・販売 資本金 設立年月日 2012年7月 465名(2018年6月末時点) 2017年「働きがいのある会社」 ランキング3位
5 会計・給与共に法人シェアNo.1 * BCN調べ * MM総研調べ * 2017年8月より、クラウド給与計算ソフト freeeは、機能を強化し、新たに 「人事労務
freee」というサービス名に変更しました。 クラウド給与ソフト 市場 40% クラウド会計ソフト 市場 35.2%
6 6 利用事業所数累計 100万 2014.3 2015.3 2016.3 2017.3 2018.3 800,000
600,000 300,000 65,000 1,000,000 1,000,000
7 465人 従業員数 豊富な人員で、開発・導入支援・サポートを強化 freee従業員数推移 2013 2014 2015 2016 2018
2017年「働きがいのある会社」 ランキング3位 2017 2018年7月1日時点、アルバイト契約社員インターンを含む 業務委託、派遣、出向を含めると614名
8 QAチーム • ミッション ◦ 品質トゥギャザーでハッピー流出を防ぐ • とにかくトゥギャザーが重要である • ハッピーは不具合のこと
• やっていること ◦ リスクを洗い出してテストする(プロダクトを知る) ◦ テスト自動化 ◦ 品質向上に関する施策・リファクタリング etc
9 言葉では伝わりにくいので トゥギャザー度の高そうな事例をいくつか紹介します
10 10 どういうハッピーが多いのかわからない問 題 02 Section
11 どんなハッピーが起きてるか、が見えずらい • 当時のハッピーの集計にはいくつか課題があった ◦ スプレッドシート上でGAS + 手動操作で集計していて、属人性が高かった ◦ 時間もそれなりにかかる
▪ 約30h / 1month ◦ 集計したい項目を追加しづらい • でも、現状の品質を知るために、起きてるハッピーをいろいろな角度でみたい ◦ 機能別 ◦ ユーザ種別 ◦ 優先度別 ◦ 残ハッピー数 ◦ 作成数 vs 解消数 など
12 集計の自動化 • よし、freee社内のデータ基盤にのせれば属人性なくなるぞ!、ということで下記の構成でいこうかと • ゼロコスト • sqlで集計できる • ハッピー以外の情報もredashでみるのが社内標準だったので、アクセシビリティup
• 集計項目の拡張もコード書けば可能
13 そもそも、チケットの情報が正確とは言い難かった • ハッピーチケットの運用フローが統一されてなかった ◦ どっちがボール持ってるかわからないので、滞留ボトルネックがわからない ◦ 優先度高と中の違いは? ◦ 似たような機能名があって、名寄せが必要、などなど
→ サポート、エンジニアチームとハッピー運用フローをゼロベースで作成 正確な情報得るためには、ハッピー運用フローから変えな いとだめだった
14 最終的に • Google Formで起票情報の品質底上 • チケット運用フローのアップデート • JIRAへ移行 ◦
運用フローのシステム化ができる ◦ サードパティ連携豊富
15 みんながハッピー分析できるようになってハッピー ここから進んだ品質改善プロジェクトもあります
16 16 複雑なドメインは複雑である問題 03 Section
17 複雑なドメインは複雑 給与計算 年末調整 勤怠 所得税徴収高
18 複雑なので専門家にテスト協力依頼した • リスクや法律についてドメインスペシャリストの社労士さんや税理士さんに相談。リスク 洗い出し。 • 具体的なテストケースの認識を合わせて、ドメインスペシャリストに期待値を計算しても らう ◦ Googleスプレッドシート上でやりとり
事前条件、入力パラメータ 期待値
19 複雑で覚えられないので、spec化した 社労士さん csv APIテスト(request spec)で実装。PR 単位で実行。計算はAPIで完結できる ので、E2Eは使わない。 https://martinfowler.com/bliki/TestPyramid.html
20 ドメインスペシャリストのテストがCIで動いてるのは心強い スプレッドシートを見ればどういうケースが動いているかが見えるので、コード読めない人でも確認できるのも嬉し い。ただ、スプレッドシート地獄になりつつあるのが課題。
21 21 弊社のE2Eテストのびしろある問題 04 Section
22 現状のE2Eテスト その1 • PRコミット→PRテストや静的解析がCircle CIでまわる→stagingにデプロイ→E2E(自動 実行)→開発者動作確認→productionデプロイ • ほぼ毎日リリースしているので、E2E自動テストは必須 staging環境
production環境 development環境 (ローカル) 静的解析 Unit・Serviceテスト E2Eテスト integration環境 x N個 QAテスト用 リリース前の長期検証が 必要な場合に使う
23 現状のE2Eテスト その2 • Rspec x SitePrism x Capybara x
Selenium • 構成の理由 ◦ プロダクトがrailsなので、みんなrspecには慣れている ◦ SitePrismはページオブジェクトパターンを簡単に使える ◦ Capybaraはいい感じのDSLがある • その他 ◦ E2Eテストコードは各プロダクトのリポジトリにある ▪ QAだけでなく、エンジニアも気軽に修正できるようにするため(ユニットテスト感覚) ◦ どういう時にシナリオを足しているか ▪ 新機能リリース後が多い ◦ テストデータどうしてる? ▪ 秘伝のテストデータをもったアカウントを使ってるところもある ▪ デモデータ事業所のバリエーションを増やしていくことで対応していきたい
24 課題 • E2Eテストに実行環境の制限や属人性があるため、リリース手前でデグレに気づいた り、シナリオのメンテナンスが大変(自動E2Eテスト視点) • プロジェクト数に対するテスト環境不足(手動E2Eテスト視点) • マイクロサービス化によるテスト環境構築大変(エンジニアのレビュー視点)
25 後半に続く スライド
スモールビジネスを、 世界の主役に。