現在、あるWeb APIのテスト業務に携わっている。「Web API」と書いたが、実はWebAPIとは何か?という部分が実ははっきりとよくわかっているわけではない。漠然とWebアプリケーションと同義と捉えていたけれども、厳密には違うような気もしている。
クライアントサイドとサーバサイドでHTTPでリクエストとレスポンスがあると、WebAPIという仕組みになると理解しているのだけど、合っているだろうか...静的なサイト(Webページは)WebAPIではない、という理解で合っているだろうか...
今回のエントリーではその部分(WebAPIの詳細)については、無関係ではないが書きたい部分では無いので、省略します。
今までやってきたWebAPIのテストは導入に過ぎなかった
これまで3つのWebAPIのプロジェクトに関わってきて、結合テスト(含む単体テスト)をメインに経験を積んできた。 それまで非Webの業務系アプリケーションのみの経験しかない自分にとっては、「これがWebAPIのテストというものか!」と 非常に勉強になったし、この先テストエンジニアとして成長したいと思わせるものだった。
問題は「無知ゆえの万能感」だったのかも知れないが、3つのプロジェクトを経験したことで「これでどこのプロジェクトに参加しても大丈夫」と 高を括ったことだろうと思う。
今のWebAPIプロジェクトに参加してわかったが、これまでの2つのプロジェクトは使うツールにしても非常に限定的で 現在のWeb界隈でいえば何も使ってないに等しい状態だったのでは?と今では思う。
これまでのプロジェクトで利用したツール類
- SVN
- Oracle web Developer
- Internet Explorer(Chrome)のブラウザ
- Red Mine
- Excel、WordといったMicrosoftOffice類
現在のプロジェクトで利用しているツール類
- SVN
- Google Drive★
- PostMan★
- Git★
- Google Spreadsheet★
- Internet Explorer(Chrome)のブラウザ
- 上記ブラウザのF12機能★
- Docker★
- CentOS − Slack★
- RedMine
- Excel、WordといったOffice類
- XAMPP★
- AWS★
「★」印をつけた箇所が新しく知ったり使うことになったツール類なのだけども、数えたら9つもあった。
幸い、「使ったことないんですか?w」というようなこちらの無知を笑うような人がいないので助かっているが、 知らない・使ったことのないものが多過ぎて正直しんどい。
GoogleDriveについては私用で利用していたけど、業務的に利用していたわけじゃなかったので、 「こうやって使うと共有してドキュメントが見られるのか」と初めて知ることになっている状態。
XAMPPについては業務利用の経験はなかったが、PHPの勉強を個人的にしていたおかげで、XAMPPそのものについては 知っていたのでよかった。
AWSについては、利用はしているがサーバにアクセスしているだけなので、本質的な意味では何も知らないまま。
テストのやり方に違いはあるか
復習の意味も含めて、これまでのWebAPIテストのやり方を振り返ってみよう。
これまで
⓪. テストソースに更新があればSVNのUPDATEで最新化
①. テストケースに沿って、入力値をブラウザの各項目に入力
②. 登録・更新形であれば、DBを参照しINSERTされているかUPDATEされているかを確認
③. 参照系であれば、事前にDBを参照し参照先のテーブルの値が表示されているかを確認
そして、現在のテストのやり方はどうだろうか。
現在
⓪. テストソースに更新があれば、SVNかGitにて最新化
①. Dockerに入り、RDBを起動
②. テストケースに沿って、入力値をブラウザの各項目に入力。場合によってはPOSTMAN経由でJSON入力
③. 登録・更新形であれば、DBを参照しINSERTされているかUPDATEされているかを確認
④. リクエストが通っているか、レスポンス結果は想定通りであるかをF12(ブラウザの開発者モード)で確認
⑤. 参照系であれば、事前にDBを参照し参照先のテーブルの値が表示されているかを確認
⑥. ④と同じ
眺めてみると基本の部分は変わらないことがわかる。JSON入力のためにPOSTMANを利用したり、 ソースファイルの最新化にSVNと並行してGitを利用している。 リクエストとレスポンスの確認としてブラウザの開発者モードを利用しているのは大きな違いと言えるかも知れない。
実は、「JSON」について現在のプロジェクトで初めて知った。 これまで入力といえば、数値か文字列かくらいで JSONのようなひとまとまりのデータ形式というのは意外なデータ形式だった。 C言語でいえば、構造体のような。
どんな形式かというのはわかったが、受け取り側はこれをどのように処理しているのかまではまだわかってない。 今後の課題である。
WebAPIのテストを通して学んだこと、は何か
ただ現在使っているツールを並べただけのエントリーになってしまった感があるが、
何より「今までテストしたことは方向性として間違っていたわけではないが、ツールの知識がなさ過ぎた」
ということを現在のプロジェクトで痛いほど思い知った。それが学んだことかも知れない。
はっきりいって、今のソフトウェア開発においてツールを知らないということは
開発環境を知らないということと同じだと思う。
C言語の開発環境では、UNIXとエディタ・DB(とDBをみるためのクライアントツール)を知っていればよかったけど
Web業界は毎年新しい環境が生まれて利用されているので、せめて標準とされているものくらい
知っておかないといけない。
何よりその知識がないと、「テストができない」ことがよくわかった。
- 作者: 湊川あい,DQNEO
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2017/04/21
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 湊川あい
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2016/08/30
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: デイヴィッドブリン,大西憲
- 出版社/メーカー: 早川書房
- 発売日: 1988/02
- メディア: 文庫
- この商品を含むブログ (1件) を見る
- 作者: 山田明憲
- 出版社/メーカー: 技術評論社
- 発売日: 2018/08/25
- メディア: Kindle版
- この商品を含むブログを見る
独学プログラマー Python言語の基本から仕事のやり方まで
- 作者: コーリー・アルソフ
- 出版社/メーカー: 日経BP社
- 発売日: 2018/03/20
- メディア: Kindle版
- この商品を含むブログを見る
AWSをはじめよう ?AWSによる環境構築を1から10まで? はじめようシリーズ
- 作者: mochikoAsTech
- 発売日: 2018/10/29
- メディア: Kindle版
- この商品を含むブログを見る