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
550
0
Share
テスト自動評価_むかしばなし.pdf
miii22
April 16, 2020
More Decks by miii22
See All by miii22
たかがテスト_されどテスト_.pdf
miii22
0
340
もくもく会のススメ.pdf
miii22
0
130
とある商人と小人たちのオブジェクト指向物語.pdf
miii22
1
670
えんじにゃーから見たユニットテストのはなし.pdf
miii22
0
330
おのみ__棚卸するってよ_.pdf
miii22
1
330
Other Decks in Programming
See All in Programming
UIの境界線をデザインする | React Tokyo #15 メイントーク
sasagar
2
420
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
0
730
Running Swift without an OS
kishikawakatsumi
0
880
Oxlintとeslint-plugin-react-hooks 明日から始められそう?
t6adev
0
320
2026_04_15_量子計算をパズルとして解く
hideakitakechi
0
130
Symfony AI in Action - SymfonyLive Berlin 2026
chr_hertel
1
110
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
26
18k
「Linuxサーバー構築標準教科書」を読んでみた #ツナギメオフライン.7
akase244
0
1.4k
t *testing.T は どこからやってくるの?
otakakot
1
880
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
460
Claude Code × Gemini × Ebitengine ゲーム制作素人WebエンジニアがGoでゲームを作った話
webzawa
0
210
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
2.6k
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
410
Building AI with AI
inesmontani
PRO
1
960
Google's AI Overviews - The New Search
badams
0
1k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
530
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
120
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
170
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
30 Presentation Tips
portentint
PRO
1
290
Transcript
テスト自動評価 むかしばなし おのみ〜(@miiisa22who)
自己紹介 ▪ Name おのみ〜 ▪ Age 27 ▪ 好きなこと お昼寝
▪ 最近の悩み 福岡人は何故焼き鳥 を食べる時に最初は 豚バラからなのか
1.テスト自動評価との出会い ◎昔むかし、あるところに「おのみ〜」というひとりのエンジニアがいたそうな。 おのみ〜のお仕事はエンジニアです。 お客さんから言われた お願い事(要件)を叶えるお仕事をしています。 ◎ある朝、おのみ〜はお客さんに「テストの品質を上げてよ!」と言われました。 お客さんの話によると、「単体テストで防ぐことができたはずの障害が商用で発生した」とのこと。 商用障害。非常に怖い言葉ですね。 おのみ〜はガクブル震えながら、詳しい話をお客さんから聞くことにしました。 ((((;゚Д゚)))))))ひえええええ…
2.おのみ〜、考える。 ◎お客さんから話を聞く中で出てきた課題。 それは、”対象機能に対する経験・スキル依存=属人性 “という問題でした。 おのみ〜が参画している現場では、テスト設計者と実施者が違います。 もちろんどちらもエンジニアですが、テスト対象機能について知識がない実施者が テストを行うと、試験観点が理解できていない中でテストを進めてしまいます。 テスト設計者が確認をすることでバグが混入することは未然に防げますが、 クロスチェックを行い、テスト結果が不合格の場合は モジュールの改修・試験の再実施
というコ ストがかかります。 さて、これではいくら工数があっても足りません。 おのみ〜は、開発者としてチームに参画していたので単体テストについて身を以て知っていま す。 どうにかして解決できないものか、とおのみ〜は考え始めました。
⒊おのみ〜、考える。Part 2 ◎お客さんよりお願い事を聞いたおのみ〜は、早速仕組みを考えました。 経験・スキルに依存することでより工数がかかっているのであれば 設計者観点で作られた期待値と実データを自動で評価すれば良さそう!ということで どうにか自動化する方法を考えてみました。
イメージこんな感じ テスト実行 テスト ファイル 自動比較 実行結果 テスト レポート 今回のスコープ はココ!
※テストケース実行は自動化済み。
4.おのみ〜、開発する。 ◎おのみ〜は、仕事にくる日もくる日も仕組みを考え取り組みました。 浮かんだ仕組みを形にするべく、実装して「あーでもないこーでもない」と悩み続ける日々。 更に、お客さんからの要望として下記のお願い事が出てきました。 ・DBの値を評価したい!! ・DBにインサートされた可変な値の評価をしたい ・システム日付:フォーマットチェック、あり得ない日付の評価 ・現在1つずつ評価しているため、まとめて評価したい 上記の要望は、既存実装だと難しいことがわかりました。 なので、おのみ〜は上記の観点を踏まえて新しく実装することにしました。
くる日もくる日も、実装とテストに明け暮れます。 帰る頃には日を跨いでいることも多々あり、あまりにも残業が多いと チームリーダーから見張られる日々。
5.(省略)完成しました。 ◎そんな毎日が続く中、おのみ〜はなんとか自動評価機能を完成させました。 詳しいことは業務機密ですので口外することはできませんが、 既存で使用していた仕組みと “DBunit”という単体テストツールを使いました。 また、xmlを使ってごにょごにょしました。 そのためのxml生成ツールもVBAで作りました。 作ったツールでは、 ・登録した値を動的に評価する ・コンソールに期待値と実値を出力させて、テスト実施者と開発者に対してバグ調査の取り掛かりを
楽にする お客さんより評価をいただき、現在プレテストで動いています。 おのみ〜の単体テスト自動評価プロジェクトはこれにて終了です。 めでたし、めでたし。
テスト自動評価の良い部分 ▪ 品質面 ①評価観点が属人化せず、実施担当者によるテストのばらつきを防止できる。 ②テストの妥当性が向上する。 ▪ コスト面 ①テストの実行から比較評価までを自動化することにより、テスト実行の工数を削減できる。 ②テスト自動化によって生まれた時間を使って、妥当性の高いテストシナリオやテストパラメータ を準備することができる。
テスト自動評価の悪い部分 ▪ 運用・保守が大変 仕組みづくりの際に運用について立て付けておいたのでよかったですが、 改修が発生するとなると割とコストがかかる。 ▪ 知識がある程度必要 今回作成した機能には、ある程度何がどんなことしているのか読み解く必要があります。 ある程度の知識やテスティングフレームワークについて知っておくと 機能を改修する場合に楽なのですが、理解していないと難しい。。。
皆さんへ ①自動テストしたければ、まずブレない軸を作る こと。 ②いつでも誰でも簡単に触れる基準の 自動テストを考えるとやさしい世界になる...かも。
テスト オススメ本 《自動テストでのオススメ本》 ・初めての自動テスト Webシステムのための自動テスト基礎 初心者向けの内容が多く含まれますが、自動テスト周辺の考え方が整理されていました。 テストのピラミッドとしてテストのレベルと目的の整理からテストの保守性、モックや TDDなど一通り触 れられています。 《ソフトウェアテストのオススメ本》 ・知識ゼロから学ぶソフトウェアテスト
【改訂版】 開発者はテストの基本は知っておくべきです。 テストの基本を知らないで開発して品質の良いコードは書けないのです。コードが書けるからといってテ ストの概念が常識だけで何とかなるものではない、ということです。そのことが良く理解できました。
ご清聴いただき ありがとうございました!