プリンシプルプログラミング プログラミング

【POP37】アーキテクチャ非機能要件⑤テスト容易性について

はじめに

この記事は「プリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則」を読んだ際に記した議事録です。

著作権の関係により、詳細には書きません。詳しい詳細を知りたい方はぜひ本書を読んでみてください。

プリンシプルオブプログラミングをPOPと訳します。

What : 効果的にテストをする能力

テスト容易性とはソフトウェアに対して「効果的」且つ「効率的」にテストを行う能力のことです。

効果的なテストとは深く、質が高いテストのことです。ソフトウェアの隅から隅まで漏らさず、品質を検証できるテストを指します。

効率的なテストとはコストが低く、労力が少ないテストのことです。安く、早く品質を検証できるテストのことを指します。

Why : テストの品質=本体の品質だから

ソフトウェアは、サイズと複雑性の増加に比例してテストも困難で高価なものになります。ですので、「ソフトウェアが正しく動作する」だけでなく、「テストが容易なソフトウェアにするためのアーキテクチャ設計」が求められます。

つまり、会社にとって大切な利益率を上げるために、テストを容易に行えるアーキテクチャ設計が必要になってくるのです。

How : あらかじめテストを考慮した設計を行う

アーキテクチャ策定の時点から、「検証方法の観点」を視野に入れて設計を行いましょう。テストのためのコードが本番用のコードにあっても構いません。「テストもできる本番用コード」くらい価値観を転換するくらいテストは重要です。テスト容易性を高める設計は、「モジュール間の依存関係の排除」が大事になってきます。依存関係があると、テストしにくい部分が全体を引っ張る可能性がありますので、小さい単位でテストができるような設計が大切です。

終わりに

この記事ではプリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則の議事録を自分用に記しています。

この記事ではカバーしきれていない部分も多いので、是非本書を手にとって読んでみてください。

次回、「【POP38】アーキテクチャ非機能要件⑥再利用性について」です。ぜひ、次の記事も読んでみてください。

  • この記事を書いた人
  • 最新記事

ミッチー

小中高と野球漬けの毎日 ▶︎ 大学時に自分が何もできないことに気づき、プログラミング学習開始 ▶︎ PCは疎かったがめげずに継続 ▶︎ 受託で案件を頂きながら、オーダースーツ事業に、通販事業にも参戦 ▶︎ 東証一部Web系自社開発企業にエンジニアとして内定。

-プリンシプルプログラミング, プログラミング

© 2022 オミチャンネル Powered by AFFINGER5