SlideShare a Scribd company logo
1 of 40
Download to read offline
kawasima
イマドキのExcelスクショの撮り方
2014/10/10 Fri.
第1回 Clojure夜会
過去こういう発表を
してきました、
正真正銘のSIerです
このスライドを世界中の恵まれない
「スクショをExcelに貼るおしごと」
をしているSE各位に捧げます
Excelスクショとは何か?
ご丁寧に、
全てのテストを手作業で実行し、
手作業でブラウザのスクショを取得し、
それを掻き集めて、手作業でExcelに貼る
そんな世間のイメージらしい…そんな世間のイメージらしい…
んなこたぁーない
今日はホンモノのSIerの
Excelスクショの撮り方を
お見せしたいと思います!
スクショを撮る
teslogger
http://github.com/kawasima/teslogger
●
スクショと自動仕分け機能をもったブラウザ
●
起動画面からIE、Firefox、Chromeを選択す
ると各ブラウザが起動します。
カメラボタンを押すだけ
ケース毎に保管される
tesloggerの実装
起動時にSeleniumのWebDriverを立ち上げ、
GUIを通じて、
インタラクティブに
WebDriverメソッドを
実行する
Clj-webdriver Taxi API
Selenium1くらいの手軽さ
https://github.com/semperos/clj-webdriver/
こんな機能のテストは、スクリプト書いてテスト
し、そうでないものは打鍵のテストで…
なんていう使い方でも、
Tesloggerだけで対応できます。
データベースの中身を撮る
データベースの中身もスクショとる
更新前、更新後で設計通りかを確認する。
teslogger-db-inspection
●
任意のタイミング間での監視対象のテーブル
のデータの差分を可視化するWebアプリ
●
オートモードの場合、テスト対象アプリを操
作するだけで、自動的にデータの変更を取得
し、スクショを保存する。
データの更新を可視化します
INSERT
UPDATE
データの更新前・後が一目でわかるDELETE
teslogger-db-inspectionの実装
●
comparator-ds
●
ulon-colon
●
om
データの差分を取得する
Original
Table
Clone
Table
(Ver. 1)
Clone
Table
(Ver.2)
https://github.com/kawasima/comparator-ds/
データセットのSnapshotを作り…
データの差分を取得する
相互にMINUSをとり差分を抽出する
データの差分を自動取得する
Webapp
Auto-snapshoterBrowser
Push message (WebSocket)
Send a screenshot
Take a screenshot.
(html2canvas.js)
更新
イベント通知
スナップショット取得
差分抽出
om
●
ClojureScript界のKiller app.
●
Facebook react.jsのラッパー的位置づけ
●
Stateを更新すると自動的に必要な部分だけDOM
を書き換えてくれる。
●
ビューコンポーネント間は疎結合で、core.async
でメッセージパッシングのやりとりする。
こんなにスッキリ!
正直、取っつきにくさはあまたの
Javascriptフレームワークの中でも
ピカイチです。
しかし、一旦仕組みが分かってしまえ
ば、他のヤツにはもう戻れないほどに
シンプルに見えるようになります。
ulon-colon
ConsumerPublisher
WebSocket Connection
(start-producer)
(produce msg)
(make-consumer “ws://xxx”)
(consume consumer
#(println %))
異なるプロセス間でメッセージ転送する仕組み
http://github.com/kawasima/ulon-colon/
スクショを集める
スクショを集める
スクショを簡単に撮るだけなら、既にSIer各社
いろんなツールを駆使している。
しかし、それを紛失・改ざんの隙を与えずに瞬
時にサーバに集めることも重要なのである。
teslogger-Server
●
スクショを撮ったら瞬時にサーバにプッシュし、ローカルからは消
える。
●
サーバではテストケース毎にエビデンスギャラリーを表示する。
https://github.com/kawasima/teslogger-server/
teslogger-serverの実装
teslogger-server teslogger
起動通知Multicast
WebSocket接続
スクショ送信
ulon-colon
スクショに注釈を付ける
スクショだけじゃエビデンスにはならない世界
新規作成ボタンを押下
撮ったスクショに説明書きを付け加える、おもてなしの心
teslogger-serverで注釈つける
キーワードを入力する
ひーーーっ(汗
ブラウザだけで可能です
※ 本機能は鋭意開発中です
スクショをExcelに貼る
Excel方眼紙に出力する
撮ったスクショはExcel方眼紙に貼り付けて、
納品するのが慣例のようです。
teslogger-serverから出力できまぁす
※ コツは要りません
ケースを選択してボタンを押下
マス目ピッタリにスクショの
貼られた方眼紙が手に入ります
axebomber-clj
https://github.com/kawasima/axebomber-clj.git
Hiccupフォーマットで書いたHTML-likeなコー
ドからExcel方眼紙を出力するライブラリ
Excel方眼紙をHTMLライクに作ってみる - Qiita
http://qiita.com/kawasima/items/60197799a7990c578263
画像出力のコード
たったコレだけで、方眼紙が手に入る!
まとめ
SIerの闇と言われる
Excelスクショ作業も
Clojureがあれば楽しいよ!

More Related Content

What's hot

MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
 

What's hot (20)

マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
 
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
 
マスターデータの キャッシュシステムの改善の話
マスターデータの キャッシュシステムの改善の話マスターデータの キャッシュシステムの改善の話
マスターデータの キャッシュシステムの改善の話
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 
Databricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptxDatabricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptx
 
Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術
 
Tackling Complexity
Tackling ComplexityTackling Complexity
Tackling Complexity
 
グラフデータベース入門
グラフデータベース入門グラフデータベース入門
グラフデータベース入門
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
SQLアンチパターン~ファントムファイル
SQLアンチパターン~ファントムファイルSQLアンチパターン~ファントムファイル
SQLアンチパターン~ファントムファイル
 
SQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォークSQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォーク
 
ドメイン駆動設計 at DDD.rb #5
ドメイン駆動設計 at DDD.rb #5ドメイン駆動設計 at DDD.rb #5
ドメイン駆動設計 at DDD.rb #5
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 

More from Yoshitaka Kawashima

More from Yoshitaka Kawashima (20)

ブルックスのいう銀の弾丸とは何か?
ブルックスのいう銀の弾丸とは何か?ブルックスのいう銀の弾丸とは何か?
ブルックスのいう銀の弾丸とは何か?
 
Are Design Patterns Dead?
Are Design Patterns Dead?Are Design Patterns Dead?
Are Design Patterns Dead?
 
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
 
ソフトウェア設計における 意思決定とそのレビューの秘訣
ソフトウェア設計における 意思決定とそのレビューの秘訣ソフトウェア設計における 意思決定とそのレビューの秘訣
ソフトウェア設計における 意思決定とそのレビューの秘訣
 
本番障害に至る病
本番障害に至る病本番障害に至る病
本番障害に至る病
 
システムダウンのひみつ
システムダウンのひみつシステムダウンのひみつ
システムダウンのひみつ
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
アンチフラジャイルの世界
アンチフラジャイルの世界アンチフラジャイルの世界
アンチフラジャイルの世界
 
Atomic Architecture
Atomic ArchitectureAtomic Architecture
Atomic Architecture
 
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
 
ウォーターフォールとアジャイルのフェアな比較
ウォーターフォールとアジャイルのフェアな比較ウォーターフォールとアジャイルのフェアな比較
ウォーターフォールとアジャイルのフェアな比較
 
How to find tech books
How to find tech booksHow to find tech books
How to find tech books
 
Antifragile Java - Java Day Tokyo 2017 D1-E1
Antifragile Java - Java Day Tokyo 2017 D1-E1Antifragile Java - Java Day Tokyo 2017 D1-E1
Antifragile Java - Java Day Tokyo 2017 D1-E1
 
たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力
 
SIerにとっての越境 @ DevLOVE 199
SIerにとっての越境 @ DevLOVE 199SIerにとっての越境 @ DevLOVE 199
SIerにとっての越境 @ DevLOVE 199
 
なぜデータモデリングが重要なのか?
なぜデータモデリングが重要なのか?なぜデータモデリングが重要なのか?
なぜデータモデリングが重要なのか?
 
Antifragile Clojure
Antifragile ClojureAntifragile Clojure
Antifragile Clojure
 
Boilerplate vs Magic
Boilerplate vs MagicBoilerplate vs Magic
Boilerplate vs Magic
 
既婚プログラマの時間捻出術
既婚プログラマの時間捻出術既婚プログラマの時間捻出術
既婚プログラマの時間捻出術
 
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかJavaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
 

イマドキのExcelスクショの撮り方