ヤマムギ

growing hard days.

*

「MonotaRo Tech #3 テスト自動化」に行ってきました

      2016/09/18


モノタロウさんの「MonotaRo Tech #3 テスト自動化」に行ってきました

オープニングトーク MonotaRo CTO 安井さん

MonotaRo

  • 2015年売上556億、営業利益率13.2%、年20%以上の成長を続ける
  • 内製、自社開発
  • アジャイル取り組み
  • 技術力向上のために予算を取る
  • 取扱商品: 事務用品、工具、消耗品、科学用品、カー用品
  • 関節資材購買のフローを変えた、時間を買ってもらえるようにした
  • 交渉や相見積もりは関節資材にはほとんど意味がない。
  • なので無駄に消費されてきた人的コストを削減した
  • 価格交渉なし、すぐに探せてすぐに商品が届く
  • 圧倒的な品揃え、一物一価
  • 価値あるPB商品
  • 標準化とITを駆使してコストを削減、さらにレコメンドでお客さまに最適な商品を提供する
  • データベースマーケティング

MonotaRo TechTalkをなぜやるのか

  • 会社がITに特化していることをアピールするため
  • 圧倒的な価値ある技術力とノウハウを世の中に提供
  • 採用マーケティング

自動化の世界ひとめぐり ギルドワークス前川さん

  • Application Lifecycle Management(ALM)
  • アプリケーションの一生を面倒見る(はじめから終わりまで)

自動テストにまつわる誤解について

  • システムテスト自動化標準ガイドはいい本
  • 記録&再生の手法はメンテナンス性や再利用性に劣る「線形スクリプト」なので初期だけにしたい
  • 100%を目指す意味はない、自動化は本来単純作業を機械に任せるためのもの
  • テストエンジニアは絶対に必要。ユーザービリティや例外操作は機械にはまだ出来ない。
  • 自動化自体の実装に時間がかかるので即座にスケジュールが前倒しになることはない。少なくとも初回リリースのみ。
  • あくまでも決められたプロセスを助けるだけ、人が発見出来ない不具合は発見出来ない

自動化のツールと使いみち

  • 要求定義-要件定義-設計-実装
  • ユーザーテスト-システムテスト-結合テスト-単体テスト
  • 要件定義-システムテスト領域のE2Eテスト,負荷テストツールがうってつけ
  • 設計以下はユニットテスト、スタブ、モック、フェイク、検査、証明には使える

E2Eテストツール

  • 終端部分のテスト
  • ブラウザ: Selenium,Nightmare,Robot Framework
  • モバイル: Appiun
  • GUI: UWSC,Sikuili(Pythonライブラリがある)
  • API: httpClientライブラリ

Sikuli

  • 画像マッチングしてそのままテストをしてくれる
  • OpenCV,Java,Jython
  • 目に見えるものはなんでも自動化できる
  • ウインドウ上に見えるものはなんでも扱える

unittest

  • Python組み込みのユニットテスト
  • 関数呼び出しの検証

unittest.mock

  • Python組み込みのモックツール
  • 生成して渡してちゃんと呼ばれたかAssert出来る

Coq

  • 定理証明支援系言語

Robot Frameworkの紹介 MonotaRo 増田さん

自己紹介

  • IT部門 基幹SCMグループ
  • Python関連本の文書の翻訳
  • もう履歴書がかけないぐらい様々な経験をしてきた
  • Pythonの公式日本語リファレンスの7割ぐらいを翻訳

Robot Framework

  • 受け入れテスト駆動開発のためのテストフレームワーク
  • 最初はNokiaで開発された
  • シナリオがテキストなので開発者以外も読み書きが出来てリポジトリ管理が可能
  • HTMLレポートの生成機能
  • keywordsで日本語関数が作れてそれを呼び出すことでシナリオになる
  • どのキーワードがいつ実行されてどれぐらいかかって結果はどうだったかがレポートになる
  • 日本語のオンラインドキュメント集もある
  • メーリングリストもある
  • デモを繰り返す、見せていく
  • ヘッドレス・ブラウザを使う

受け入れテストの自動化?

  • 品質重視ではない場合、要求仕様が満たされているかを確認する受け入れテストが優先される
  • 網羅性を上げるには自動化
  • テストが大変になるとリリースにリスクが生じてリリースが遅延する、そして競争力のもてないシステムとなる
  • どうせ絶対にやる受け入れテストこそ自動化するべき
  • テストを自動化していくことでリリースが加速していく
  • テストの自動化をしたら次はビルドするたびに自動化していく
@yamamanx
開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー1年目のSoftware Engineerです。 質問はコメントかSNSなどからお気軽にどうぞ。 出来る限りなるべく答えます。 このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。 また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - Python, study ,

ad

ad

Message

メールアドレスが公開されることはありません。

  関連記事

「GCPUG Tokyo Container Builder Day February 2018」に行ってきました

GCPUGは神戸以来の2回目で参加させていただきました。 申し込もうかと思ったら …

Alexa Day 2018で「Alexa Skill Contest」を聞きました

Alexa Day 2018のラストセッションは、「Alexa Skill Co …

CentOS 6でPythonからOracleに接続する

OracleのデータをPythonでさわりたくて、その実行環境がCentOS6の …

「大阪Pythonユーザの集まり」に行ってきました

「大阪Pythonユーザの集まり」 に行ってきました。 あんまりメモ取れてません …

Innovation EGG 第9回 『ITの可能性と楽しさを語ろう!』に行ってきました

JAZUG LINE 砂金さん OracleからMSからLINEへ 何にわくわく …

Developers Summit 2018 「Kubernetesを用いた最強のマイクロサービス環境をGKEで実現しよう」を聞きました

以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …

Developers Summit 2018 「本番環境で使うContainer – Amazon ECS, AWS Fargate, Amazon EKS」を聞きました

※写真は展示のAmazon Echo とルンバです。 以下は、思ったことや気にな …

SQLAlchemyでjoinする

PythonのSQLAlchemyでMySQLのテーブルをjoinするときの覚書 …

AWS Summit 2016 Tokyoに参加してきました (前日 ~ Day1)

AWS Summit 2016 Tokyoにて、セッション聴講、ブース展示拝見、 …

Redmine REST APIを操作するpython_redmineを試してみた

Redmine のGUIの登録が面倒なのでコマンドで登録、更新、時間の記録が出来 …