今回は、「テストを書きやすいコードはシンプルな設計になりやすい」というテーマで、実装における設計とテストコードの関係性について解説します。階乗を計算するプログラムの例題を用いて、for文を使ったシンプルな実装と、if文で全てのケースを分岐させた複雑な実装を比較。テストコードの書きやすさやバグ(計算間違い)の見つけやすさの違いについて分かりやすく紐解きます。テストコードを書くことを意識することが、いかにして手戻りを防ぎ、より良い設計を生み出すヒントになるのか、その本質に迫るエピソードです。
📌 今回のエピソードのポイント
- 階乗プログラムを用いた実装比較: for文によるループ実装とif文による全分岐実装を比較し、それぞれのコードの特徴を解説します。
- if文の落とし穴とテストの重要性: 全てのケースを分岐させた場合、一部の計算間違い(例:4の階乗が28になっているなど)を見つけるために全パターンのテストが必要になる点を指摘します。
- テストの書きやすさは設計のバロメーター: テストが書きづらい、あるいは複雑なテストが必要なコードは、そもそも実装の設計がシンプルではない可能性が高いという本質について語ります。
🕒 チャプター
- () オープニング
- () テーマ:テストを書きやすいコードはシンプルな設計になりやすい
- () 例題:階乗を計算するプログラム
- () 回答例1:for文を使ったシンプルな実装
- () 回答例2:if文で分岐させる実装とその落とし穴
- () テストが書きづらいコード=シンプルではないコード
- () エンディングとお知らせ
📢 あなたのご意見をお聞かせください
皆さんは、テストコードを書く際に「なんだかテストが書きづらいな…」と感じて、そもそもの設計を見直した経験はありますか?あるいは、テストを書く前提で設計することでスムーズに開発が進んだ事例などがあれば、ぜひ教えてください!皆さんの現場での体験談や、今回のエピソードを聞いての感想をお待ちしております。
-
X(旧Twitter):ハッシュタグ #b_testing でのポストをお待ちしています。
-
お便りフォーム:こちらからお気軽にどうぞ。
-
フォローのお願い:最新回を逃さないよう、Podcastアプリでのフォローをぜひお願いします!
感想
まだ感想はありません。最初の1件を書きましょう!
サマリー
テストを書きやすいコードはシンプルな設計になりやすい、という考えを階乗計算の例で説明します。1から10の整数を受け取り、範囲外なら-1を返すプログラムについて、for文で計算する実装と、入力ごとにif文で分岐する実装を比較します。if文の例では4の階乗を28としてしまう間違いがあり、全入力パターンのテストが必要になります。テストコードの書きづらさは実装や設計の複雑さを見直すきっかけになり、開発後ではなくテストから考えることで手戻りを防げると語ります。
コメント
似ているエピソード
タイトル・AI要約・文字起こしの話題をもとにおすすめしています。
-
#16 コードを1文字も書かずに「テスト」を始める方法
B-Testing.fm
同じ番組の関連エピソード
本エピソードでは、具体的なパスワードの仕様を例に、コードを書く前に「何をテストすべきか」を考えることの重要性を解説します...
-
#53 自動テストって何のために書くの? 4つのメリットを分かりやすく解説!
B-Testing.fm
共通する話題: 自動テスト · 設計 · 感想
自動テストを書く理由を、実装方法ではなく考え方の面から整理する。メリットとして、テスト実行に必要な準備の明確化、既存コー...
-
#21 テスト設計技法は「楽をするため」にある?省思考でクリエイティブな仕事に向き合う方法
B-Testing.fm
共通する話題: 感想
このエピソードでは、テスト設計とテスト設計技法の必要性について解説します。全数テストが不可能な現実において、効果的かつ効...
-
#32 E2Eの自動テスト、どう作る?目的で使い分けるシナリオ設計術
B-Testing.fm
同じ番組の関連エピソード
E2E(エンド・ツー・エンド)の自動テストを作成する際、一つの長いシナリオにするか、細かく分割するか迷ったことはありません...
-
#55 自動テストを書くべき3つのきっかけ
B-Testing.fm
共通する話題: 自動テスト
B-Testing.fmのブロッコリーが、自動テストを書く主なきっかけを3つ紹介する。1つ目は、何を実装すべきか迷っているときで、成功...
-
Season -No.78 朝活「Testable Frontend- The Good, The Bad And The Flasy」
雨宿りとWEBの小噺.fm
はい.第78回は Testable Frontend: The Good, The Bad And The Flaky https://www.smashingmagazine.com/2022/07/testable-fron...
-
テストってなあに?
ちえラジ Chat ポッドキャスト版
プログラミングにおけるテストについての話しをしました #プログラミング --- Send in a voice message: https://podcasters.spo...
-
#2 自分のコードに自信が持てない人に伝えたい。テスト駆動開発。
ITエンジニアの雑談駆動開発部
共通する話題: 設計 · テスト
今回は、ケント・ベックの『テスト駆動開発』をきっかけに、TDDの基本サイクルと、その本当の利点について語る。テストを先に書...
-
EP141 パーフェクトソフトウェア PART3
readline.fm
## とりあげた本『**パーフェクトソフトウエア**』G.M.ワインバーグ 日経BP 2010## mixi2https://mixi.social/communities/513e0...
-
#2 モックが辛いのは「コードの悲鳴」だった
くわラジ
単体テストでモックをどこまで書けばいいのか、毎回迷いませんか? へんてこの素朴な悩みに、kuniwakが投げかけたのは「モックが...