タグ

テストと考え方に関するarx0balestのブックマーク (8)

  • 実行環境依存のコードに対してテストを書く考え方

    社内用の啓発記事ですが、閉じる理由がないのでここに投げます。 ブラウザにべったりなコードを書いてると、ブラウザや node.js 固有の環境をインラインで記述してしまうことが多々あると思います。 あえてダメダメなブラウザ向けのエントリポイントの例を書きます。 // main.ts let id = localStorage.get('id'); if (!id) { id = `${navigator.userAgent}-${Math.random()}`; localStorage.set('id', id); fetch('/auth', { method: 'POST', credentials: 'include', body: JSON.stringify({ id, at: Date.now(), }), headers: {'Content-Type': 'applicat

    実行環境依存のコードに対してテストを書く考え方
  • Webサービスのフロント側の基本的な確認観点を列挙してみる。 - Qiita

    概要 Webサービスのフロント側のテスト実施にあたり、基的な確認観点を列挙しました。 ここから取捨選択してテストケース作成の助けになれば幸いです。 ブラウザ リロード時の動作は適切か? ブラウザバック時の動作は適切か? コンソールにエラーは表示されていないか? 表示 文字コードは適切か? 画面サイズを変更した場合の表示は適切か? 表示しきれない場合の表現は適切か?(省略、スクロールなど) 日付や数値のカンマ区切りなどのフォーマットは適切か? 小数点以下の表示は適切か? タイトルの内容は適切か? 第4水準漢字の表示は適切か?(WEBフォントを利用しているサイト用) 操作 Tab移動の動作は適切か? ボタンなど連打時の動作は問題ないか? 通信 HTTPステータスが想定通りであるか? HTTPS、HTTPの通信が混在していないか? 不必要なコンテンツを読み込んでいないか? N件表示 0件の表示

    Webサービスのフロント側の基本的な確認観点を列挙してみる。 - Qiita
  • レガシーコードの触り方 / Working Effectively with Legacy Code

    オープンセミナー2017@岡山

    レガシーコードの触り方 / Working Effectively with Legacy Code
  • テスト書きすぎ問題を避ける - Qiita

    新しい職場で提案したら歓迎されたので投稿しておく。 テストコード開発方針 漫然とテストコードを書いていると、以下のような問題が発生することがある。 テストに時間がかかりすぎ、待ち時間が発生したり、テスト結果を見なくなったりする テストコードの開発とレビューに時間をかけたが、そのコストに見合う利益を得られない このような問題を避けるため、以下の方針を定める。 ビジネス上の価値に比例したテスト コードの価値をビジネスへの影響や回避方法の有無により以下のようにランク付けする。 メジャー サービスの主たる機能に影響する 再現条件が広い 回避方法がない/あっても自明でない マイナー サービスの副次的な機能に影響する 再現条件が限られる 回避方法がある トリビアル サービスには影響しない 違和感はあるが、不便を感じない 回避する必要がない 複数のランクに該当する場合、より多く該当するランクに分類する。

    テスト書きすぎ問題を避ける - Qiita
  • TDDを諦める

    この記事は,TDDに見切りをつけたある大学教授の経験と,Uncle Bobの反論を要約したものだ。 ソフトウェア工学の大学教授を退官したIan Simmerville氏には,“Software Engineering, 10th edition”を含む数冊の著書がある。同書の第8章はすべてソフトウェアテストに関する内容であり,特に8.2章ではTDDを取り上げている。それらの章で紹介された考え方を何度も引き合いに出しながら,Sommerville氏は先日の記事に,“TDDはソフトウェア工学の大きな進歩です。いくつかのクラスのシステムにおいては,それが有効であることが明らかです。”と述べて,次のような“TDDフレンドリ”なシステムの一覧を紹介している。 階層化アーキテクチャ 合意された成功基準を持ち,それに準拠したテストに基づいて構築されるシステム。 自身のコントロールを越えてシステムと対話す

    TDDを諦める
  • 組織にテストを書く文化を根付かせる戦略と戦術

    1. The document discusses various social media and video sharing platforms and tools for integrating them, including YouTube, Twitter, Flickr, iTunes, and Facebook. 2. It mentions several services that allow embedding or sharing content between platforms, such as CDTube for YouTube, ZonTube for Amazon, and amz.ly for shortening Amazon URLs for Twitter. 3. Programming languages and APIs mentioned i

    組織にテストを書く文化を根付かせる戦略と戦術
  • 夏の技術職インターンシップ講義資料公開 - クックパッド開発者ブログ

    こんにちは!クックパッド編集室メディア開発グループ長の @yoshiori です。 このまえ夏の技術職インターンシップの前半の開発講義・課題部分が終わったのでさっそく公開しちゃいます! ちなみにこのインターンの対象者はプログラミングはわかるし自分で(授業とかではなく)コード書いている人なので超初心者向けでは無く、少なくともひとつ以上の言語でプログラミングが出来る人向けです。 一日目 TDD + git 編(@yoshiori) 講義初日なのでまずは簡単に肩慣らし & 開発の基礎の部分として TDD と git で始めました。 git については軽く説明し TDD は基のテストファーストで進めて行きました。 ちゃんと何かをするたびにテストを実行し、メッセージを見れば次にすることが分かるというのを体験してもらい、GREEN が良くて RED が悪いのではなく、GREEN を想定しているのに

    夏の技術職インターンシップ講義資料公開 - クックパッド開発者ブログ
  • ソフトウェア開発で得た教訓22箇条 | POSTD

    1. 小規模なものから徐々に拡張していく。 私は日頃、新たなシステムを作るにせよ既存のシステムに機能を追加するにせよ、必要な機能すら殆ど持たないようなとてもシンプルなバージョンを作るところから始めるようにしています。そこから当初予定していた機能まで、段階的にソリューションを拡張していきます。私は初めから細部にわたって計画をできたことはありませんが、代わりに開発を進めていく中で新しく見つけた情報をソリューションに役立たせます。 私はJohn Gallの、この言葉が好きです。 “複雑なシステムというのは、往々にしてシンプルなシステムから発展したものだ。” 2. 同時に複数のものを変えない。 開発中にテストが失敗したとき、あるいは機能がうまく動作しなかったとき、1つだけ変更すれば、問題発見が格段に容易になるでしょう。言い換えるなら、短いイテレーションを行いなさいということです。1つずつ変更を行い

    ソフトウェア開発で得た教訓22箇条 | POSTD
  • 1