2015 12 03_uiテストツールについて

29
UIテストツールについて

Transcript of 2015 12 03_uiテストツールについて

UIテストツールについて

目次

1. はじめに

2. テストとは

3. テストの種類

4. 単体テストについて

5. UIテストツールについて

6. Appium紹介

・今日の勉強会の目的

・Appiumというツールを触ってみたので紹介したい

・テストって別に書かなくてもいいと思ってますが(リリースが優先ならしょうがない場合が

あるので)、テストツールの紹介なのでテストとはなにか?みたいなところから説明します

はじめに

・プログラムを実行し、正しく動作するか、目標とした品質に到達し

ているか、意図しない動作をしないかどうかを確認する作業のこと

今回は、このテスト自体を

プログラムで行うことを指すこととします

テストとは?

テストの種類

・単体テスト

・結合テスト

・機能テスト

・システムテスト

・ユーザによるテスト

テストの種類

・単体テスト

・結合テスト

・機能テスト

・システムテスト

・ユーザによるテスト

種類はいっぱいあると覚えてください

細かくは説明しません

一番基本的なテスト

→単体テスト

・単体テスト

単体テストとは、プログラムを検証する作業の中でも、プログラムを手続きや関数といった個々の機能ごとに分割

し、そのそれぞれについて動作検証を行う手法のことである。 単体テストでは、個々の機能を果たすためのプロ

グラム部品(プログラムモジュール)がそれぞれしっかりと動作しているかを検証する。

一番基本的なテスト

・単体テスト

単体テストとは、プログラムを検証する作業の中でも、プログラムを手続きや関数といった個々の機能ごとに分割

し、そのそれぞれについて動作検証を行う手法のことである。 単体テストでは、個々の機能を果たすためのプロ

グラム部品(プログラムモジュール)がそれぞれしっかりと動作しているかを検証する。

・これじゃイメージしづらいと思うので、後で例を出します・ユニットテストとも言う・XCTest・JUnit等が有名・テストの中では書くのが簡単

一番基本的なテスト

同じく省略

XCodeだとプロジェクト作成時にTestプロジェクトが作られる

{プロジェクト名}Tests.m

ここにテストを書いていくのが普通です

単体テスト例:iOS、XCTestフレームワーク

単体テスト例:iOS、XCTestフレームワーク

例:下記のテストを作成する

ユーザー登録画面があって名前を入力する。

名前は空文字禁止・null禁止・絵文字禁止・32文字以内(文字数)とする。

この名前入力判別をテストする

単体テスト例:iOS、XCTestフレームワーク

こんな感じの名前入力チェックメソッドを作ったとします

空文字チェック

文字数チェック

絵文字チェック

単体テスト例:iOS、XCTestフレームワーク名前入力メソッドのテスト

正常な名前(なはず)の配列

異常な名前(なはず)の配列

forで回してテストメソッド実行

・基本はAssert関数が使われる例えばAssertTrue(boolean isOk)メソッドはfalseを渡すとテスト失敗と見なし、

Exceptionになる

実行してエラーがなければテスト成功と見なす

・今回はiOSのXCTestフレームワークを例にしているので、XCTAssertTrue(expression, ...)

↑メソッドを使っています

テストメソッドについて

・実際に書いてみて、バグがあるのが分かったりする(nullだと落ち

るとか)・アプリのクオリティアップにつながる

テスト書いて

単体テスト

できないこと

1、ユーザー操作を含んだテスト

2、Http通信などを含んだテスト

など

→1をエミュレートするUIテストツールを使ってみる、というのが今回の目的

Recording

・ipa/apkファイルをインストール

したりしてUIを操作するテスト

・普通はユーザーの操作が必要!

・それをコードでエミュレートするのが

UIテストツール

・どんなことができるのか調べてみた

UIテストって

UIテストって

主なUIテストツール(iOS・Android向け)・MonkeyTalk・Calabash・Espresso・Robolectric・Appium

など

参考

https://tf-unity.esa.io/posts/62

UIテストって

主なUIテストツール(iOS・Android向け)・MonkeyTalk・Calabash・Espresso・Robolectric・Appium

など

参考

https://tf-unity.esa.io/posts/62

今回紹介したいのはこれ

・iOS・Android対応(iOSはDevelopmentビルドのみ)

・テストを書く言語がC#, java, node, perl, php, python, rubyから選べる

・Appium Inspectorでのコード生成

・中身はHttpサーバーで、node.jsで動いてる → アプリと別プロセスで動く

Appium

AppiumAppium自体の構成

自分のPC(Mac/Windows)

Appiumサーバー

テストコード

Test.ipaをインストール

AppiumAppium自体の構成

自分のPC(Mac/Windows)

Appiumサーバー

テストコード

Node.jsでインストールhttp://appium.io/

Test.ipaをインストール

AppiumAppium自体の構成

自分のPC(Mac/Windows)

Appiumサーバー

テストコード

Node.jsでインストールhttp://appium.io/

Test.ipaをインストール

https://github.com/appium/sample-codeにサンプルあるのでそっから取ってくる

テストコード生成のデモ動画

デモ

・テストコード例

Appium

・実プロジェクトにテストツールとして取り入れるのはなかなか難しい

・むしろチートツールに使えそう

・結構インストールは大変 (自分は4~5時間くらいかかった )

http://qiita.com/natsuki_summer/items/2d8d60114cdb95929dcb

各言語サンプルは下記にある

https://github.com/appium/sample-code/tree/master/sample-code/examples

Appiumまとめ

・Xcode7から導入されたXCTestのUI recordingもテストコードの生成ができるらしい

http://qiita.com/IsaoTakahashi/items/f9c3ef367d7e0f60e2d6

・Xcode7+El Capitanじゃないと動かないです

・導入はこっちのが簡単そう

余談:それ以外のテストツールについて

以上

ありがとうございました