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
テスト自動評価_むかしばなし.pdf
Search
miii22
April 16, 2020
Programming
0
540
テスト自動評価_むかしばなし.pdf
miii22
April 16, 2020
Tweet
Share
More Decks by miii22
See All by miii22
たかがテスト_されどテスト_.pdf
miii22
0
310
もくもく会のススメ.pdf
miii22
0
130
とある商人と小人たちのオブジェクト指向物語.pdf
miii22
1
640
えんじにゃーから見たユニットテストのはなし.pdf
miii22
0
310
おのみ__棚卸するってよ_.pdf
miii22
1
330
Other Decks in Programming
See All in Programming
iOSでSVG画像を扱う
kishikawakatsumi
0
150
CSC509 Lecture 07
javiergs
PRO
0
240
AI Coding Meetup #3 - 導入セッション / ai-coding-meetup-3
izumin5210
0
3.4k
Vueのバリデーション、結局どれを選べばいい? ― 自作バリデーションの限界と、脱却までの道のり ― / Which Vue Validation Library Should We Really Use? The Limits of Self-Made Validation and How I Finally Moved On
neginasu
2
300
CSC305 Lecture 08
javiergs
PRO
0
270
チームの境界をブチ抜いていけ
tokai235
0
210
なぜGoのジェネリクスはこの形なのか? - Featherweight Goが明かす設計の核心
qualiarts
0
240
alien-signals と自作 OSS で実現する フレームワーク非依存な ロジック共通化の探求 / Exploring Framework-Agnostic Logic Sharing with alien-signals and Custom OSS
aoseyuu
2
150
Devvox Belgium - Agentic AI Patterns
kdubois
1
140
TFLintカスタムプラグインで始める Terraformコード品質管理
bells17
2
350
Go言語はstack overflowの夢を見るか?
logica0419
0
520
バッチ処理を「状態の記録」から「事実の記録」へ
panda728
PRO
0
190
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
For a Future-Friendly Web
brad_frost
180
10k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.8k
The Invisible Side of Design
smashingmag
302
51k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Leading Effective Engineering Teams in the AI Era
addyosmani
7
570
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Typedesign – Prime Four
hannesfritz
42
2.8k
Transcript
テスト自動評価 むかしばなし おのみ〜(@miiisa22who)
自己紹介 ▪ Name おのみ〜 ▪ Age 27 ▪ 好きなこと お昼寝
▪ 最近の悩み 福岡人は何故焼き鳥 を食べる時に最初は 豚バラからなのか
1.テスト自動評価との出会い ◎昔むかし、あるところに「おのみ〜」というひとりのエンジニアがいたそうな。 おのみ〜のお仕事はエンジニアです。 お客さんから言われた お願い事(要件)を叶えるお仕事をしています。 ◎ある朝、おのみ〜はお客さんに「テストの品質を上げてよ!」と言われました。 お客さんの話によると、「単体テストで防ぐことができたはずの障害が商用で発生した」とのこと。 商用障害。非常に怖い言葉ですね。 おのみ〜はガクブル震えながら、詳しい話をお客さんから聞くことにしました。 ((((;゚Д゚)))))))ひえええええ…
2.おのみ〜、考える。 ◎お客さんから話を聞く中で出てきた課題。 それは、”対象機能に対する経験・スキル依存=属人性 “という問題でした。 おのみ〜が参画している現場では、テスト設計者と実施者が違います。 もちろんどちらもエンジニアですが、テスト対象機能について知識がない実施者が テストを行うと、試験観点が理解できていない中でテストを進めてしまいます。 テスト設計者が確認をすることでバグが混入することは未然に防げますが、 クロスチェックを行い、テスト結果が不合格の場合は モジュールの改修・試験の再実施
というコ ストがかかります。 さて、これではいくら工数があっても足りません。 おのみ〜は、開発者としてチームに参画していたので単体テストについて身を以て知っていま す。 どうにかして解決できないものか、とおのみ〜は考え始めました。
⒊おのみ〜、考える。Part 2 ◎お客さんよりお願い事を聞いたおのみ〜は、早速仕組みを考えました。 経験・スキルに依存することでより工数がかかっているのであれば 設計者観点で作られた期待値と実データを自動で評価すれば良さそう!ということで どうにか自動化する方法を考えてみました。
イメージこんな感じ テスト実行 テスト ファイル 自動比較 実行結果 テスト レポート 今回のスコープ はココ!
※テストケース実行は自動化済み。
4.おのみ〜、開発する。 ◎おのみ〜は、仕事にくる日もくる日も仕組みを考え取り組みました。 浮かんだ仕組みを形にするべく、実装して「あーでもないこーでもない」と悩み続ける日々。 更に、お客さんからの要望として下記のお願い事が出てきました。 ・DBの値を評価したい!! ・DBにインサートされた可変な値の評価をしたい ・システム日付:フォーマットチェック、あり得ない日付の評価 ・現在1つずつ評価しているため、まとめて評価したい 上記の要望は、既存実装だと難しいことがわかりました。 なので、おのみ〜は上記の観点を踏まえて新しく実装することにしました。
くる日もくる日も、実装とテストに明け暮れます。 帰る頃には日を跨いでいることも多々あり、あまりにも残業が多いと チームリーダーから見張られる日々。
5.(省略)完成しました。 ◎そんな毎日が続く中、おのみ〜はなんとか自動評価機能を完成させました。 詳しいことは業務機密ですので口外することはできませんが、 既存で使用していた仕組みと “DBunit”という単体テストツールを使いました。 また、xmlを使ってごにょごにょしました。 そのためのxml生成ツールもVBAで作りました。 作ったツールでは、 ・登録した値を動的に評価する ・コンソールに期待値と実値を出力させて、テスト実施者と開発者に対してバグ調査の取り掛かりを
楽にする お客さんより評価をいただき、現在プレテストで動いています。 おのみ〜の単体テスト自動評価プロジェクトはこれにて終了です。 めでたし、めでたし。
テスト自動評価の良い部分 ▪ 品質面 ①評価観点が属人化せず、実施担当者によるテストのばらつきを防止できる。 ②テストの妥当性が向上する。 ▪ コスト面 ①テストの実行から比較評価までを自動化することにより、テスト実行の工数を削減できる。 ②テスト自動化によって生まれた時間を使って、妥当性の高いテストシナリオやテストパラメータ を準備することができる。
テスト自動評価の悪い部分 ▪ 運用・保守が大変 仕組みづくりの際に運用について立て付けておいたのでよかったですが、 改修が発生するとなると割とコストがかかる。 ▪ 知識がある程度必要 今回作成した機能には、ある程度何がどんなことしているのか読み解く必要があります。 ある程度の知識やテスティングフレームワークについて知っておくと 機能を改修する場合に楽なのですが、理解していないと難しい。。。
皆さんへ ①自動テストしたければ、まずブレない軸を作る こと。 ②いつでも誰でも簡単に触れる基準の 自動テストを考えるとやさしい世界になる...かも。
テスト オススメ本 《自動テストでのオススメ本》 ・初めての自動テスト Webシステムのための自動テスト基礎 初心者向けの内容が多く含まれますが、自動テスト周辺の考え方が整理されていました。 テストのピラミッドとしてテストのレベルと目的の整理からテストの保守性、モックや TDDなど一通り触 れられています。 《ソフトウェアテストのオススメ本》 ・知識ゼロから学ぶソフトウェアテスト
【改訂版】 開発者はテストの基本は知っておくべきです。 テストの基本を知らないで開発して品質の良いコードは書けないのです。コードが書けるからといってテ ストの概念が常識だけで何とかなるものではない、ということです。そのことが良く理解できました。
ご清聴いただき ありがとうございました!