-
ID:T86NpA さんの質問

フロントエンドエンジニアの方へ質問です。


  • javascriptのテストコードってどのようなものでしょうか。
    これまで小規模サイトしか制作したことがなく、
    ブログとか書籍とかにでてくる、
    テストコードやテストツールなどの使い道がわかりません。

  • 〇〇な機能に××なテストを行うや、
    このぐらいの規模になったら必要や、
    初めてテストコードを書いたときの話や、
    テストコードの勉強に最適なサンプルコードなど、
    具体例を教えて頂ければ嬉しいです。

  • 現状困っているわけではないのですが、
    理解しておきたいのでよろしくお願いします。

みんなの回答 10 件

ID:pLpyGg さんの回答

テストコードは気にするな。テストコード書く時間より、動く物書く時間に費やせよ。

ID:5vlVoh

コード書くよりも論理的な考え方を鍛えるためにテストコードこそが重要。
書いたコードをリロードして確認するような逃げに走ると論理的思考力が低下して、考えないクセがつく。長期的に見て最悪のパターン。

ID:pLpyGg

論理的思考力が付く前に、何も書けなかったら意味が無い。実践で失敗しながら学べばいいだろ。論より証拠だ。

ID:XCVq/h

それはまだ書く能力がついていない段階の話だろ。
ある程度書く能力がついたら、今度は効率よく書きたくなってくる。
その手段(の1つ)がテストなんだよ。
そういう段階に辿り着いた人の話をしているんだ。

ID:pLpyGg

こんな質問してる程度で「そういう段階にたどり着いた」ってよく判断できるな。そんなに過大評価してなかったぜ。

ID:3BQY2R

jQueryとか弄る程度のデザイナーならあえてテストを学ばなくてもいいと思う。プログラマなら動作を検証するテストを書けないとちょっと恥ずかしいな。
テスト技術を身につけてプログラマ一年生。そこから効率を求める仕事としてのプログラマ。

ID:eoYHcb さんの回答

適当でいいや、という気持ちが大切

ID:4BBki0

それ

ID:TX9/4F

それ逆。

ID:8YbjQW さんの回答

テストコードってのは1〜5工程を一気に試すようなものというより、1だけを試したり、3と5の組合せを試したりするものと考えた方がいい。そうすると必要なテストコードも判ってくるんじゃないかな。

ID:T86NpA

アドバイスありがとうございます。
正直今はピンときておりませんが、
それは私の理解が足りていないせいでしょう。


  • これからテストコードに少しずつでも触れていき、
    コメ主様のアドバイスを理解できるよう、精進して参ります。
ID:/QYFkH さんの回答

トピ主には要らないものだ。そして今のトピ主にはうまく理解できない。貧乏人が「今は困ってないのですが億万長者になったときのための節税テクを教えてください」と書いてるようなもの。あほくさ。
本当にトピ主が成長したいなら、テスト自動化しないとやってられないな!と自発的に思うような規模のコードをまずは書け。

ID:3BQY2R

わかりやすい例えだね。
必然的に必要になるまで学ばなくてもいいものかもね。

ID:WQnMmx さんの回答

すごく分かるわ、この質問。最近の書籍見るとたいてい、どの本もassertうんちゃらって出てくるもんな。ios開発用の自動化テストの本も前に買ったけど結局、手を付けず仕舞いだしなー。

ID:dZ6S6y さんの回答

「テスト入門」の記事は入門記事じゃない。
なにからはじめればいいかわからない人はたくさんいそう。
入門用の具体例もとむ。

ID:ESpOzF さんの回答

たとえばなんだけど、普通の静的サイトでドロップダウンとかアコーディオンだけJS使ってる、みたいなサイトでもJSのテストって必要なの?
backboneとかモデル絡んでくると必要だっていうのはわかるんだけど

ID:T86NpA

トピ主です。
コメ主様の質問に答えられる知識はないのですが、
同様の疑問を持っております。


  • また、ドロップダウン等のUI以外にも、
    例えばフォームの入力内容のバリデーション機能など、
    テストを書こうと思えば書けるのですが、
    このような小規模なコードにテストは必要なのか?
    など考えてしまいます。
ID:UhvpwN

必要かどうか疑問に感じるなら不要だよ。

ID:T86NpA さんの回答

みなさん回答ありがとうございます。


  • テストコードを学ぶ前にコードを書け!
    必要になってから覚えろ!などアドバイスありがとうございます。

  • 私はこれまでjQuery等のプラグインを作成する程度のレベルで、
    主にブラウザのUIの実装を行っていたのですが、
    この度AngularJSでSPAを作成することになり、
    テストコードも理解を深めたく質問させて頂きました。

  • また、質問に共感頂いてるかたもいるようで、
    やはり躓きやすいポイントなのかなーと思います。

  • 引き続き、いろんな意見や回答をお待ちしております。

ID:8bMqJB

一人一人返事かけや。

何が引き続き募集だよ

ID:jLZVU2

トピ主はプログラマじゃないっぽいし、別にテストいらないんじゃない?

ID:bvjMPm さんの回答

おまんちん

ID:fZw4/t さんの回答

テストはサーバーサイドで専ら書いてるが、基本的にフロントのテストはサーバーよりもプライオリティが低い。
というのもロジックの変更よりも細かいUI変更の方が頻度が圧倒的に多くて、いくら精度の高いテストを書いてもちょっとボタンを変えるだけで、既存のテストコードをそれ以上の労力でリファクタリングしないといけないから。

実際にリリースされたばかりのアプリで、いきなりダウンロード数がドカンと伸びるものでも当面は改善優先でテストは手動のものが多い。(ネイティブの話)

なのでUI変更が落ち着かないフェーズでテストを書くとしたらロジック関連、例えばある引数を入れたら想定する結果が返ってくるか、APIに正常に接続して正しい値が返ってくるかなどが優先される。
とはいえ初期はAPIすら仕様がコロコロ変わるからこれもなかなかテスト書きづらかったりする。

費用対効果で言えば静的解析をしたり、コードの副作用を減らしたり、コーディングルールを守ったりといったほうがバグを防げると思う。
コードが肥大化してUIやAPI変更が落ち着いてくれば自然と必要性が高まるので、その段階でやればいいかと。

ID:TiBP3A

そのプライオリティ低いところまで徹底できる高みに行ってる人がフロントエンドのテストを書くんじゃないの?
サーバーサイドでテストを書かないとか体質の問題かもしれないが一般にはありえないし、アプリにしてもWebのフロントエンドのUIの構造変化に対して柔軟に対応できるテストが書きたくなるような余裕がそろそろ出てきてるとこが増えてると思う。デプロイや環境構築、テストがどんどん便利になってるから後手になってた所が表面化してきてるんだと思う。

ID:T86NpA

大変為になる意見ありがとうございます。
サーバー側を触ってる人に比べ、フロント側でテストが浸透しない理由が少し分かった気がします。


  • ちなみに本日勉強を兼ねて、フロント側(Angular)からAPIを呼び出した際に、
    意図した結果が返ってくるか、といったテストを書いてみたのですが、
    サーバー側でもAPIが呼び出された際に、意図した値を返せているかのテストは行われています。

  • いかんせんテスト、テスト!と単純に書くコードが増えるのですが、
    こういうものでしょうか。
ID:fZw4/t

>いかんせんテスト、テスト!と単純に書くコードが増えるのですが、
こういうものでしょうか。

フロントはあまりわからないけどサーバーだと7割くらいはテスト書く時間になるよ。一つのロジックに対して3つ4つと検証するところがでるので、単純に書く量が何倍にもなるしね。

ID:TiBP3A

テストコードで単純にコストは2倍以上ですね。
プログラムよりテストの方が実は難しく重要だけど、手間もかかるのは間違いないので嫌がる人も多いです。
なので、自動化したり、設計の為のものだったりするんです。
テストは急がば回れ、損して得取れってだけのものでもないんですけどね。

最終更新日:2016-01-29 (3,725 views)

関連するトピックス

ページ上部に戻る