テックアカデミー第16回メンタリング:試験工程

2018年4月27日

テックアカデミーに入会してはや2ヶ月、投稿していませんが週2回のメンタリング(講師との面談)は実施しています。前回15回目も面談していますが、特にレポすることがありません。自作のWEBアプリも順調に作成が進んでおりまして、今回(16回)も特に困ってて相談する内容がありませんでした。笑

なので今回は今行っているWEBアプリの試験工程の事をレポしたいと思います。

プログラミングにおける試験工程とは

試験と一言でいっても実は内容によって様々な呼び方があります。

「単体試験、結合試験、総合試験、受入試験」というのが僕が記憶している代表的な試験工程です。10年前の知識なので今は違うのかもしれませんが‥

工程を俯瞰して見ると次のような流れで進んでいきます。

  • 単体試験・・・プログラマーがコーディング単位で自分で試験するやつ
  • 結合試験・・・各プログラマーが担当してるメソッドとかクラスとか機能とかを結合したときの試験、設計書どおりに動くかをチェックするやつで、皆でやる
  • 総合試験・・・全ての機能をつなげて完成させた物として行う試験、製品の仕様書どおりに動くかをチェックするやつ
  • 受入試験・・・製造を依頼した顧客が行う試験のこと。要は自分が思ってるとおりに動くかチェックするやつ。この工程を経て問題なければ納品完了、制作完了ということになる

テックアカデミーでは試験工程の説明は無い様子

さてテックアカデミーのカリキュラムの中には試験工程については今の所さほど触れられていません。試験を行うためにテストデータを楽に生成する方法とかはレッスンでやりましたけど。

製造の中での試験工程の手順とか試験仕様書やテスト項目の作り方とか、そういったレッスンはありませんでした。

プログラマー目指してる人とかエンジニアとして転職・就職を目指してる人が生徒さんで多そうだから、この辺までしっかりやったほうがいいと思うけどなぁ。

自分は転職とか考えてなくて、自作のWEBアプリを作って「うぇ~ぃ」ってやりたいだけなので良いんだけど。

試験項目表を公開

せっかくなので(なにが?)僕がいま作ってるWEBアプリの試験項目表をこちらに列記してみようと思います。

ユーザー周りの機能の試験

NO 大分類 中分類 項目
1 ユーザー登録機能 ユーザー登録ができること ニックネーム、メール、パスワード、パスワード確認を入力してユーザー登録が成功すること
2 ユーザー登録機能 ユーザー登録ができること ニックネーム、メール、パスワードを入力してユーザー登録が失敗すること
3 ユーザー登録機能 ユーザー登録ができること ニックネーム、メール、パスワード確認を入力してユーザー登録が失敗すること
4 ユーザー登録機能 ユーザー登録ができること ニックネーム、パスワード、パスワード確認を入力してユーザー登録が失敗すること
5 ユーザー登録機能 ユーザー登録ができること ニックネーム、パスワードを入力してユーザー登録が失敗すること
6 ユーザー登録機能 ユーザー登録ができること ニックネーム、パスワード確認を入力してユーザー登録が失敗すること
7 ユーザー登録機能 ユーザー登録ができること メール、パスワード、パスワード確認を入力してユーザー登録が失敗すること
8 ユーザー登録機能 ユーザー登録ができること 登録済のメアドで登録できないこと
9 ユーザー登録機能 ユーザー登録ができること 登録済のニックネームで登録できること
10 ユーザー登録機能 ユーザー登録ができること メール、パスワードを入力してユーザー登録が失敗すること
11 ユーザー登録機能 ユーザー登録ができること メール、パスワード確認を入力してユーザー登録が失敗すること
12 ユーザー登録機能 ユーザー登録ができること メールのみを入力してユーザー登録が失敗すること
13 ユーザー登録機能 ユーザー登録ができること パスワード、パスワード確認を入力してユーザー登録が失敗すること
14 ユーザー登録機能 ユーザー登録ができること パスワードを入力してユーザー登録が失敗すること
15 ユーザー登録機能 ユーザー登録ができること パスワード確認を入力してユーザー登録が失敗すること
16 ユーザー登録機能 ユーザー登録ができること 全て空っぽでユーザー登録が失敗すること
17 ユーザー登録機能 ユーザー登録ができること 大文字メールを入力しても、小文字に変換されて登録されること
18 ユーザー登録機能 ユーザーログインができること メール、パスワードを入力してユーザーログインができること
19 ユーザー登録機能 ユーザーログインができること メールのみを入力してユーザーログインが失敗すること
20 ユーザー登録機能 ユーザーログインができること パスワードのみを入力してユーザーログインが失敗すること
21 ユーザー登録機能 ユーザーログインができること メール、パスワード間違いを入力してユーザーログインが失敗すること
22 ユーザー登録機能 ユーザーログインができること メール間違い、パスワードを入力してユーザーログインが失敗すること
23 ユーザー登録機能 ユーザーログインができること ユーザーログインした後は、右上に自分の名前が表示されること
24 ユーザー更新機能 ユーザー更新ができること ナビバー自分の名前からユーザー更新画面へ遷移すること
25 ユーザー更新機能 ユーザー更新ができること ニックネームを変更して更新できること
26 ユーザー更新機能 ユーザー更新ができること メールを変更して更新できること
27 ユーザー更新機能 ユーザー更新ができること 変更したアドでログインでき、変更前アドでログインできないこと
28 ユーザー更新機能 ユーザー更新ができること パスワードを変更して更新できること
29 ユーザー更新機能 ユーザー更新ができること 変更したパスでログインでき、変更前パスでログインできないこと
30 ユーザー更新機能 ユーザー更新ができること 画像のアップロードができること
31 ユーザー更新機能 ユーザー更新ができること 画像のアップロードができること(横幅1200px以上の大画像)
32 ユーザー更新機能 ユーザー更新ができること 自己紹介を入力して更新できること
33 ユーザー更新機能 ユーザー更新ができること 年齢を入力して更新できること
34 ユーザー更新機能 ユーザー更新ができること 性別を入力して更新できること
35 ユーザー更新機能 ユーザー更新ができること 住所を入力して更新できること
36 ユーザー更新機能 ユーザー更新ができること ニックネームは50文字以上でエラーになること
37 ユーザー更新機能 ユーザー更新ができること 自己紹介は255文字以上入力できない
38 ユーザー更新機能 ユーザー更新ができること 住所は50文字以上でエラーになること
39 ユーザー更新機能 ユーザー更新ができること 大文字メールを入力しても、小文字に変換されて登録されること
40 ユーザー更新機能 ユーザー更新ができること 画像アップロード前はランダムで画像が表示されること
41 ユーザーログアウト機能 ナビバーの自分の名前のしたからログアウトできること

これ結構網羅したでしょ、て感じ。手抜きなし。

店舗検索&口コミ投稿機能

NO 大分類 中分類 項目
42 店舗検索機能 DB内検索+すべて検索 何も入力せずに検索してエラーなきこと
43 店舗検索機能 DB内検索検索 何も入力せずに検索してエラーなきこと
44 店舗検索機能 DB内検索+すべて検索 ジャンルだけ入力〃
45 店舗検索機能 DB内検索検索 ジャンルだけ入力〃
46 店舗検索機能 DB内検索+すべて検索 店舗名だけ入力〃
47 店舗検索機能 DB内検索検索 店舗名だけ入力〃
48 店舗検索機能 DB内検索+すべて検索 地名を入力して店舗検索ができること
49 店舗検索機能 DB内検索+すべて検索 地名:柏市
50 店舗検索機能 DB内検索+すべて検索 地名:柏駅
51 店舗検索機能 DB内検索+すべて検索 地名:上野
52 店舗検索機能 DB内検索+すべて検索 地名:上野駅
53 店舗検索機能 DB内検索+すべて検索 地名:新宿
54 店舗検索機能 DB内検索+すべて検索 地名:新宿駅
55 店舗検索機能 DB内検索+すべて検索 地名:世田谷区
56 店舗検索機能 DB内検索+すべて検索 地名:世田谷
57 店舗検索機能 DB内検索+すべて検索 地名:川越市
58 店舗検索機能 DB内検索+すべて検索 地名:川越
59 店舗検索機能 DB内検索+すべて検索 地名:名古屋
60 店舗検索機能 DB内検索+すべて検索 地名:名古屋駅
61 店舗検索機能 DB内検索+すべて検索 地名:大阪
62 店舗検索機能 DB内検索+すべて検索 地名:大阪駅
64 新規店舗口コミ機能 地名:柏市 検索して出した店舗に口コミ投稿できること
65 新規店舗口コミ機能 地名:柏駅 検索して出した店舗に口コミ投稿できること
66 新規店舗口コミ機能 地名:上野 検索して出した店舗に口コミ投稿できること
67 新規店舗口コミ機能 地名:上野駅 検索して出した店舗に口コミ投稿できること
68 新規店舗口コミ機能 地名:新宿 検索して出した店舗に口コミ投稿できること
69 新規店舗口コミ機能 地名:新宿駅 検索して出した店舗に口コミ投稿できること
70 新規店舗口コミ機能 地名:世田谷区 検索して出した店舗に口コミ投稿できること
71 新規店舗口コミ機能 地名:世田谷 検索して出した店舗に口コミ投稿できること
72 新規店舗口コミ機能 地名:川越市 検索して出した店舗に口コミ投稿できること
73 新規店舗口コミ機能 地名:川越 検索して出した店舗に口コミ投稿できること
74 新規店舗口コミ機能 地名:名古屋 検索して出した店舗に口コミ投稿できること
75 新規店舗口コミ機能 地名:名古屋駅 検索して出した店舗に口コミ投稿できること
76 新規店舗口コミ機能 地名:大阪 検索して出した店舗に口コミ投稿できること
77 新規店舗口コミ機能 地名:大阪駅 検索して出した店舗に口コミ投稿できること

抜粋ですがこのような感じで試験表を作成しました。あぁ昔SEをやってた時を思い出すなぁ。

試験実施、特にバグ無し

プログラミングスクールで習ったとおりCloud9で作成したアプリをherokuにデプロイ(アップロード)して、試験を実施しました。

特に大きな不具合は無く表示周りの軽微のバグが出た程度でした。

・ボタンが横並びじゃなく縦に並んじゃう
・Carrierwaveで作った画像投稿部分がスマホで見るとなぜか英語になる
・スマホだとタイトル文字が大きすぎて見にくい

一番改修が大変そうなのは

居酒屋の魚民が居酒屋でDBに格納されるんじゃなくて、鍋料理で格納されてることかな。。。

ってこれバグやんけ!(; ・`ω・´)

まぁ修正の仕方は頭にあるのでこれは問題なく直せると思います。

このあたりをメンターに報告させてもらいました。これが今回のメンタリングの内容ですかね。

テックアカデミー継続、あと8回もメンタリングがある

テックアカデミーに入会して2ヶ月ちょっとが過ぎまして、自作WEBアプリも完成に向かっています。(というかもうほぼ完成じゃ?)

そんな中であと1ヶ月弱(8回のメンタリング)あります。この後どうするか考えないとかなーと思いました。

次回あまったメンタリングで何をするか聞いてみよう。他のアプリにチャレンジするか、他の教材を見せてもらえないか‥

そんな事を考えています。

と思ったらまさかの

ところでWEBアプリのパフォーマンスはどう考えてます?

えっ?

実際にWEBで公開してみるとレスポンスの速さが求められます。

なのでパフォーマンスは、各機能のスピードを測定して、ボトルネックを特定して、直す、という事が必要なんです。

えっ?

New Relicというherokuのアドオンで簡単につかえます。どこが遅いというのがグラフで出てくるのでボトルネックを探すのに一目瞭然です。

外部サービスを使わないで出来る測定方法は、サーバーのログを見るという方法があります。レスポンスタイムをブラウザでたたいて、サーバーのログを見るという測定ですね。

200msをめざしてチューニングしていきましょう!

/(^o^)\マダカンセイシテナカッタ

テックアカデミーはこちら