0
2017年10月27日 
株式会社ジャストシステム 
小笠陽一
1
~ 自己紹介 ~
品質管理グループ QAリーダー
勤続30周年です。時代は移り変わり、、
 デスクトップ製品 → システム製品
 開発体制も 人海戦術 → 少数精鋭
 開発期間も 1年に1回のバージョンアップ → 短いスパンでの製品化
Windowsアプリでのテスト自動化事例 ということで、
今日はJUST Office での自動テストについてお話しします。
2
~ 試行段階 ~
テスト自動化の歴史
十数年前に Visual Test で ATOK の変換精度の測定を自動化したのが一番最初です。
ひらがなのテキストデータを用意
 → ATOKの「自動変換機能」で変換させる
  → ATOKの古いバージョンの変換結果と比較
他のプロジェクトでもいろいろとテスト自動化に取り組んだもののなかなか定着せず
  当時は、とにかくテスト自動化したらえらい!みたいな風潮
  自動化することが成果で、効果が実感できる成果はなし
  ⇒ 達成感がなかった
3
~ 転機 ~
転機はJUST Office の製品化
JUST Officeとは?
◎MS Office互換アプリを自社開発 “純国産”
 JUST Calc(Excel 互換)
 JUST Note(Word互換)
 JUST Focus(PowerPoint互換)
◎編集機能付きのPDFソフト
 JUST PDF
◎根強いジャスト製品
 一太郎
 花子
 ATOK
4
~ 転機 ~
 顧客は官公庁や法人であるため、業務がストップしたらたいへんなことになります。
 なので、致命的な不具合はすべて改修して、高い品質は確保しています。
 しかし、MS Office互換製品なので、たとえMS Officeのバグであっても、MS Officeと
 動きが違うと指摘されますので、JUST Office は3ヶ月に1回のペースでアップデータ
 を提供してます。
  2017年開発サイクル
 リグレッションテストだけで約27,000ケースあって、とてもまわせない!
 間引くにしても「改悪」が怖い!
 ⇒ 必要に迫られ自動テストに本気で取り組むことに!
 
1 2 3 4 5 6 7 8 9 10 11 12
▼出荷 ▼出荷 ▼出荷
テスト期間 テスト期間 テスト期間
→ テスト自動化に頼るしかない!
5
~ どういうものか簡単に説明 ~
◎本格的に自動テストに取り組むために自動テストのシステムを構築ました
既存のチェックリストからスクリプトを自動生成する仕組みを用意
 新規作成分は簡単な指示書を書くだけでスクリプトを生成する仕組みも用意
◎確実に成果を期待できるところに狙いを絞る
操作性の変わらない既存機能を中心にリグレッションテストを自動化
 ・・・ 正解の画面キャプチャと自動テスト結果との画面キャプチャの比較で判定
時間がかかるけど重要度の高いセットアップテストのチェックを自動化
 ・・・ 更新ファイルと登録されたレジストリの正しさを自動チェック
6
~ とは言え~
最初はトラブル続きでした
① 事前に用意した正解の画面キャプチャと実行結果との画像比較の自動判定で
  なぜかNGが続出で機能しないため、目視確認するはめに。。
② 自動実行エンジンを早く動作させると対象アプリの動作が追いつかずエラーになる
  → わざわざウェイトをかける必要あり
   → 一晩では終わらない
③ マウス操作のテストは絶対座標で指定するため、別のテスト用PCにそのまま持って 
行けない
7
~ 結果 ~
時間はかかりましたが、トラブルを1つずつ解決していったことで、品質を確保しつつ 
短いスパンで製品化できるようになりました。
 ⇒ 今では実感できる結果が出ています。「納得感」があります。
 
たとえば 
◎想定外の影響範囲で起こる不具合(改悪)検知に有効!
 ⇒ 意外に見つかってます
 
◎セットアップテストでの更新ファイルの正しさと登録するレジストリの正しさを
 自動チェックすることで時間短縮!
 ⇒ モジュールの更新漏れとか、持ってくるファイルを間違ったとか、
   毎回のようになんか見つかっています
 
◎今では夜中のデイリービルドのあと自動テストを走らせて、翌朝出社したときには
 JenkinsさんがSlackでエラーが出てますよと教えてくれるようになってます
 ⇒ 気付くのが早いから手戻りの時間が最短!
8
~ まとめ ~
最初はトラブル続きで準備工数が大きかったけれど、工数をかけてでもテスト自動化した
のは結局のところ「品質確保」のため
自動化する意味(メリット)
 ◎リグレッションテストは自動テストに任せ、追加・修正機能のテストに専念できる
 ◎テストの属人性を排除できる
 ◎WindowsのOSごとに確認が必要なとき、OSごとの環境さえ用意すればメンテナンス
  をそれほどしなくても再利用可能
 ◎JUST Officeのように外部仕様が固まっている商品は自動テストのメンテナンス工数も
  少なくてすむ
結論
ストックビジネスとして、JUST Oficeを使い続けてくださっているお客様に
商品の品質を担保する上で、我々の商品開発にテスト自動化は必須です。
現在も、市場からの指摘を自動テストに盛り込むことを継続しています。
9
終わり
ご清聴ありがとうございました。

JustTechTalk#10windowsアプリでのテスト自動化事例