開発日報

IT・WEB系備忘。日報は嘘です。

テスト

テストダブルの原則 ② ~テストダブル利用のテクニック~

テストダブル利用のテクニック モッキングフレームワーク モッキングフレームワーク:テストダブルをテスト内で容易に作成できるようにするフレームワーク。 C++では「google mock」、pythonでは「unittest.mock」などがある。 モッキングフレームワークはオ…

テストダブルの原則 ① ~概要と導入について~

テストダブルの原則 ユニットテストはコードが複雑になるに連れて、書くのが難しくなってくる。 また、本番のコードがいくつもの外部APIを呼び出していたり、その結果をDBに保存していたりする場合、それらの挙動を本番コードのみのユニットテストだけで再現…

【忘備】グーグルのソフトウェアエンジニアリング ~ ユニットテスト ③ -明確なテストを書く- ~

明確なテストを書く まず、初めに申し上げておきたいのはテストの失敗は良いことである。 なぜなら、失敗したテストは、エンジニアに有用なシグナルを提供し、ユニットテストが価値を提供する方法のうち主要なものだからである。 テストの失敗理由 テストの…

【忘備】グーグルのソフトウェアエンジニアリング ~ ユニットテスト ② -脆いテストを防ぐ- ~

脆いテスト: バグのない無害かつ無関係な変更で壊れるてすと。 変化しないテストを目指す 脆いテストを防ぐため、理想的には「変化しないテスト」を目指す。 → 仕様変更以外の理由で変更しないテストのこと。 プログラム変更の要因 ここではテスト変更の要…

【忘備】グーグルのソフトウェアエンジニアリング ~ ユニットテスト① -テストの保守性- ~

Googleにおけるユニットテストの定義 Googleがテストを分類する際に使用する2つの軸 テスト規模:テストにより消費されるリソース、テストが実行されている内容に焦点を当てる テスト範囲:テストが検証を意図する実装コードの量 また、Googleにおけるユニッ…

【忘備】グーグルのソフトウェアエンジニアリング ~ テスト概観 ③ -テスト文化- ~

グーグルのテスト文化醸成のための取り組み 1. オリエンテーション 当初、Googleの新入社員向けのオリエンテーションにはテストについての講義は存在しなかった。が、2005年ころからオリエンテーションの講義に自動テストについての講義が組まれるようになっ…

【忘備】グーグルのソフトウェアエンジニアリング ~ テスト概観 ② -テスト品質- ~

コードカバレッジ テストにおいて、 コードカバレッジ:ある機能のコードのどの行がどのテストにより実行されるか計測する指標。 この指標はあくまでもテストによって実装コードがどの程度実行されているかを確認しているにすぎず、「コードの有用性」を表す…

【忘備】グーグルのソフトウェアエンジニアリング ~テスト概観① -概観解説-~

なぜ自動テストをするのか バグは補足されるのが開発サイクルの後ろになるほど修正のコストが高くつく。開発サイクルの早い段階で高速に自動化テストを回し、バグを捕捉したい。 また、「バグをほそくすること」はテストの同期の一部に過ぎない。ソフトウェ…