🗂

テストや設計について

2021/05/18に公開

はじめに

今回は、コミュニティの参加者の方から質問があったテストや設計について書いていきます。
現場経験のある方は当たり前に感じることも、未経験でアプリ作成している人からしたら、その当たり前の重要性は気付きにくいものです。
今回はそんな疑問を解消することができました。

質問内容

どこでテストの勉強すればいいのかわからない。言語は kotlin。テストコードの書き方
TestLab の立ち位置がわからない
課題 5 の Firebase を使ったアプリ制作をしているのだが、画面とモデルの設計で実際に使っているツールはあるか?

目次

  1. テストコードの書き方について
  2. TestLab とは(テストコード書いて TestLab?)
  3. 画面とモデルの設計で実際に使っている・おすすめのツール
  4. まとめ

1. テストコードの書き方

ライブラリを入れてテストできる環境を用意しましょう!
自動テストソースコードのテスト 2 つある
画面を動かしてテストするのを E2E テストという
L WEB アプリでもモバイルアプリでも使うテスト
特徴としてはUI > Service > Unitという順番でレベルがある。
UI が一番コストが高く、Unit テストはコストが低い
いろんな複数値を入れてデグレが起こらない確認をするために自動テストをする

テストは小さくても作った方がいい
1 人で開発していても、後々楽になれるのでやった方がいい

テスト書いてから実装?実装してからテスト?
→ リリースしてみないとわからないという状況は危ない
本番環境・開発環境で分けて、目視確認してから本番にアップする
なぜテストを先に書くのか?というと、仕様の変更があってもテストも変更がかけられるため履歴が残る
自分がエンジニアとして、目論見通りに動いているか確認するためにやる
軽めのテストなのか、重めのテストなのかで変わるが、2 つやっておくと安心
手でやるテストは E2E で実施するが、現代はそれも自動化できる時代になった

テストコードは実際の開発の 2 倍のコード量なので、自分の GitHub に置いておくと便利
案件でテスト書くときにコピペして持ってくれば早くテストコード作れる

本日の名言:テストコードは資産になる

参考サイト: https://qiita.com/nozaki-sankosc/items/ae61f19a45f90a0963d0

2. TestLab とは(テストコード書いて TestLab?)

TestLab の立ち位置がわからない
→TestLab 自体の立ち位置は、テストコード書いたものを TestLab に流すため、結果的にテストコードを書かないとダメ
<この動画はおすすめ!>
https://www.youtube.com/watch?v=jxjFNVTdlWI

テストの書き方は、案件とかで実際に書いている人に聞いた方がいい
確か、TestLab を使うとしたら重量性課金なのでお金がかかるので注意

テストってなんのためにあるとおもう?
→ どこで事故ったかわかった方がいいなと思い、テストの勉強をしようと思った。
テストの本来の目的は、不具合がないか確認するというが、それが不具合だとどうやって確認する?
→Firebase のテストラボは実行端末を指定できる。
端末固有の問題も発生する可能性がある。(昔の某ブランドがだした端末ではカメラ関係で問題が起こることが多い端末があった。)
というわけで、
社内で端末がない場合とか、調達が難しい場合は TestLab を利用して確認ができるようにするとかやる

TestLab で端末を借りると言ったが、どういう状態だと思う?
→ 物理的に借りられるわけではなく、実態のある仮想の端末を借りる
Android のおすすめアプリ : Vysol(バイソル)

Vysolとは
Android 端末と iOS 端末を PC に繋ぐと、PC 側で端末を見ることができる+PC 上で触れることができる

だから、エミュレーターではなく実機でやっているのと同義ということになる

エミュレーターと Vysol の起動速度は違う?
→ 実機の方が起動速度は早い

3. 画面とモデルの設計で実際に使っている・おすすめのツール

課題 5 の Firebase を使ったアプリ制作をしているのだが、画面とモデルの設計で実際に使っているツールはあるか?
→plantUML = シーケンス図作るのに最適!
https://qiita.com/couzie/items/9dedb834c5aff09ea7b2

画面設計をするのが最適
L 画面遷移図: overflow とか miro
MHT ではイベントとして画面遷移図の作り方の動画をあげている
YouTubeのvideoIDが不正ですhttps://www.youtube.com/channel/UCoZ9RyQScnS-APRUl_kDSqA/videos

4. まとめ

  • テストコードは小さくても書くべき!設計の際に適したテストを運用する
  • 書いたテストコードは保管することでそのまま自分の資産になる。テストの型が増えれば、それをそのまま活用できる
  • エミュレーターより実機の方が起草速度が速い
  • 画面とモデルの設計は PlantUML を使おう!
  • 画面遷移図は overflow か miro を使おう!

Discussion