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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
AIエージェントで業務改善してみた
taku271
0
500
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
570
3分でわかるatama plusのQA/about atama plus QA
atamaplus
0
130
アーキテクチャモダナイゼーションとは何か
nwiizo
17
4.6k
Offline should be the norm: building local-first apps with CRDTs & Kotlin Multiplatform
renaudmathieu
0
170
AI活用のコスパを最大化する方法
ochtum
0
380
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
190
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
0
210
Java 21/25 Virtual Threads 소개
debop
0
340
感情を設計する
ichimichi
5
1.3k
ふりがな Deep Dive try! Swift Tokyo 2026
watura
0
160
CursorとClaudeCodeとCodexとOpenCodeを実際に比較してみた
terisuke
0
200
Featured
See All Featured
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
170
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
790
Building an army of robots
kneath
306
46k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
96
Designing for humans not robots
tammielis
254
26k
It's Worth the Effort
3n
188
29k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
340
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
340
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
Transcript
テスト自動評価 むかしばなし おのみ〜(@miiisa22who)
自己紹介 ▪ Name おのみ〜 ▪ Age 27 ▪ 好きなこと お昼寝
▪ 最近の悩み 福岡人は何故焼き鳥 を食べる時に最初は 豚バラからなのか
1.テスト自動評価との出会い ◎昔むかし、あるところに「おのみ〜」というひとりのエンジニアがいたそうな。 おのみ〜のお仕事はエンジニアです。 お客さんから言われた お願い事(要件)を叶えるお仕事をしています。 ◎ある朝、おのみ〜はお客さんに「テストの品質を上げてよ!」と言われました。 お客さんの話によると、「単体テストで防ぐことができたはずの障害が商用で発生した」とのこと。 商用障害。非常に怖い言葉ですね。 おのみ〜はガクブル震えながら、詳しい話をお客さんから聞くことにしました。 ((((;゚Д゚)))))))ひえええええ…
2.おのみ〜、考える。 ◎お客さんから話を聞く中で出てきた課題。 それは、”対象機能に対する経験・スキル依存=属人性 “という問題でした。 おのみ〜が参画している現場では、テスト設計者と実施者が違います。 もちろんどちらもエンジニアですが、テスト対象機能について知識がない実施者が テストを行うと、試験観点が理解できていない中でテストを進めてしまいます。 テスト設計者が確認をすることでバグが混入することは未然に防げますが、 クロスチェックを行い、テスト結果が不合格の場合は モジュールの改修・試験の再実施
というコ ストがかかります。 さて、これではいくら工数があっても足りません。 おのみ〜は、開発者としてチームに参画していたので単体テストについて身を以て知っていま す。 どうにかして解決できないものか、とおのみ〜は考え始めました。
⒊おのみ〜、考える。Part 2 ◎お客さんよりお願い事を聞いたおのみ〜は、早速仕組みを考えました。 経験・スキルに依存することでより工数がかかっているのであれば 設計者観点で作られた期待値と実データを自動で評価すれば良さそう!ということで どうにか自動化する方法を考えてみました。
イメージこんな感じ テスト実行 テスト ファイル 自動比較 実行結果 テスト レポート 今回のスコープ はココ!
※テストケース実行は自動化済み。
4.おのみ〜、開発する。 ◎おのみ〜は、仕事にくる日もくる日も仕組みを考え取り組みました。 浮かんだ仕組みを形にするべく、実装して「あーでもないこーでもない」と悩み続ける日々。 更に、お客さんからの要望として下記のお願い事が出てきました。 ・DBの値を評価したい!! ・DBにインサートされた可変な値の評価をしたい ・システム日付:フォーマットチェック、あり得ない日付の評価 ・現在1つずつ評価しているため、まとめて評価したい 上記の要望は、既存実装だと難しいことがわかりました。 なので、おのみ〜は上記の観点を踏まえて新しく実装することにしました。
くる日もくる日も、実装とテストに明け暮れます。 帰る頃には日を跨いでいることも多々あり、あまりにも残業が多いと チームリーダーから見張られる日々。
5.(省略)完成しました。 ◎そんな毎日が続く中、おのみ〜はなんとか自動評価機能を完成させました。 詳しいことは業務機密ですので口外することはできませんが、 既存で使用していた仕組みと “DBunit”という単体テストツールを使いました。 また、xmlを使ってごにょごにょしました。 そのためのxml生成ツールもVBAで作りました。 作ったツールでは、 ・登録した値を動的に評価する ・コンソールに期待値と実値を出力させて、テスト実施者と開発者に対してバグ調査の取り掛かりを
楽にする お客さんより評価をいただき、現在プレテストで動いています。 おのみ〜の単体テスト自動評価プロジェクトはこれにて終了です。 めでたし、めでたし。
テスト自動評価の良い部分 ▪ 品質面 ①評価観点が属人化せず、実施担当者によるテストのばらつきを防止できる。 ②テストの妥当性が向上する。 ▪ コスト面 ①テストの実行から比較評価までを自動化することにより、テスト実行の工数を削減できる。 ②テスト自動化によって生まれた時間を使って、妥当性の高いテストシナリオやテストパラメータ を準備することができる。
テスト自動評価の悪い部分 ▪ 運用・保守が大変 仕組みづくりの際に運用について立て付けておいたのでよかったですが、 改修が発生するとなると割とコストがかかる。 ▪ 知識がある程度必要 今回作成した機能には、ある程度何がどんなことしているのか読み解く必要があります。 ある程度の知識やテスティングフレームワークについて知っておくと 機能を改修する場合に楽なのですが、理解していないと難しい。。。
皆さんへ ①自動テストしたければ、まずブレない軸を作る こと。 ②いつでも誰でも簡単に触れる基準の 自動テストを考えるとやさしい世界になる...かも。
テスト オススメ本 《自動テストでのオススメ本》 ・初めての自動テスト Webシステムのための自動テスト基礎 初心者向けの内容が多く含まれますが、自動テスト周辺の考え方が整理されていました。 テストのピラミッドとしてテストのレベルと目的の整理からテストの保守性、モックや TDDなど一通り触 れられています。 《ソフトウェアテストのオススメ本》 ・知識ゼロから学ぶソフトウェアテスト
【改訂版】 開発者はテストの基本は知っておくべきです。 テストの基本を知らないで開発して品質の良いコードは書けないのです。コードが書けるからといってテ ストの概念が常識だけで何とかなるものではない、ということです。そのことが良く理解できました。
ご清聴いただき ありがとうございました!