• ࣗಈςετͷͨΊͷCIҡ࣋ίετൃੜ • Ϣχοτςετͷֶशίετൃੜ ユニットテストの両⾯のコスト Unit Test ʹΑΔ ίετݮ Unit Test ͷ ࡞ɾҡ࣋ίετ VS • खಈϢχοτςετͷίετݮ • ܽؕͷૣظൃݟʹΑΔमਖ਼ίετݮ • υΩϡϝϯςʔγϣϯίετݮ • σόοάίετݮ • ઃܭվળʹΑΔϝϯςφϯείετݮ
• ࣗಈςετͷͨΊͷCIҡ࣋ίετൃੜ • Ϣχοτςετͷֶशίετൃੜ コストへの集約 Unit Test ʹΑΔ ίετݮ Unit Test ͷ ࡞ɾҡ࣋ίετ VS • खಈϢχοτςετͷίετݮ •ܽؕͷૣظൃݟʹΑΔ मਖ਼ίετݮ • υΩϡϝϯςʔγϣϯίετݮ • σόοάίετݮ • ઃܭվળʹΑΔϝϯςφϯείετݮ ⽋陥混⼊の阻⽌、バグを防ぎたい?
• ࣗಈςετͷͨΊͷCIҡ࣋ίετൃੜ • Ϣχοτςετͷֶशίετൃੜ Unit Test ʹΑΔ ίετݮ Unit Test ͷ ࡞ɾҡ࣋ίετ VS テストによるドキュメンテーション? • खಈϢχοτςετͷίετݮ • ܽؕͷૣظൃݟʹΑΔमਖ਼ίετݮ •υΩϡϝϯςʔγϣϯ ίετݮ • σόοάίετݮ • ઃܭվળʹΑΔϝϯςφϯείετݮ コストへの集約
• ࣗಈςετͷͨΊͷCIҡ࣋ίετൃੜ • Ϣχοτςετͷֶशίετൃੜ Unit Test ʹΑΔ ίετݮ Unit Test ͷ ࡞ɾҡ࣋ίετ VS 設計改善の指標? • खಈϢχοτςετͷίετݮ • ܽؕͷૣظൃݟʹΑΔमਖ਼ίετݮ • υΩϡϝϯςʔγϣϯίετݮ • σόοάίετݮ •ઃܭվળʹΑΔ ϝϯςφϯείετݮ コストへの集約
not have assertions?“ Refs: https://golang.org/doc/faq#assertions “Proper error reporting means that errors are direct and to the point, saving the programmer from interpreting a large crash trace.” 直接的 かつ 適切
ࣗಈςετͷͨΊͷCIҡ࣋ίετൃੜ • Ϣχοτςετͷֶशίετൃੜ 適切なエラーレポートの効果 Unit Test ʹΑΔ ίετݮ Unit Test ͷ ࡞ɾҡ࣋ίετ VS • खಈϢχοτςετͷίετݮ • ܽؕͷૣظൃݟʹΑΔमਖ਼ίετݮ • υΩϡϝϯςʔγϣϯίετݮ • σόοάίετݮ • ઃܭվળʹΑΔϝϯςφϯείετݮ テスト失敗時の 原因調査コストの削減
servers continue to operate instead of crashing after a non-fatal error.” 致命的ではないエラーの場合はクラッ シュせずに処理を継続する Go FAQ “Why does Go not have assertions?“ Refs: https://golang.org/doc/faq#assertions
complete test case with inputs and expected results, and sometimes with additional information such as a test name to make the test output easily readable.” ⼊⼒と期待値を含むテストエントリ Refs: https://github.com/golang/go/wiki/TableDrivenTests
• Ϣχοτςετͷֶशίετൃੜ テーブル駆動テスト‧サブテストの効果 Unit Test ʹΑΔ ίετݮ Unit Test ͷ ࡞ɾҡ࣋ίετ VS • खಈϢχοτςετͷίετݮ • ܽؕͷૣظൃݟʹΑΔमਖ਼ίετݮ • υΩϡϝϯςʔγϣϯίετݮ •σόοάίετݮ • ઃܭվળʹΑΔϝϯςφϯείετݮ サブテストによる特定テストケースの実⾏
• Ϣχοτςετͷֶशίετൃੜ テーブル駆動テスト‧サブテストの効果 Unit Test ʹΑΔ ίετݮ Unit Test ͷ ࡞ɾҡ࣋ίετ VS • खಈϢχοτςετͷίετݮ • ܽؕͷૣظൃݟʹΑΔमਖ਼ίετݮ • υΩϡϝϯςʔγϣϯίετݮ •σόοάίετݮ • ઃܭվળʹΑΔϝϯςφϯείετݮ テストパターンと検証ロジッ クの分離の効果 同じ検証ロジックを何度も書 かずに済む
• Ϣχοτςετͷֶशίετൃੜ テーブル駆動テスト‧サブテストの効果 Unit Test ʹΑΔ ίετݮ Unit Test ͷ ࡞ɾҡ࣋ίετ VS • खಈϢχοτςετͷίετݮ • ܽؕͷૣظൃݟʹΑΔमਖ਼ίετݮ • υΩϡϝϯςʔγϣϯίετݮ •σόοάίετݮ • ઃܭվળʹΑΔϝϯςφϯείετݮ エントリ追加で テストのバリエーションを修 正できる