今はもう動かない?それとも、まだ動かない?〜静的テスト
良い子のみんなー!
愛と平和を歌って笑顔を届ける愉快なピエロ、MR.SMILEだよー🤡
推しの子一期が終わったし、更に水星の魔女も地獄楽一期も終わってしまって僕は何を糧に生きればええんや?と抜け殻になりかけてたよ。
でも、来週から文スト新シーズンがスタートするから何とか生きていけそうな気がするんだ。やったね!
生きる糧も見つかったので今回からは静的テストについてのお話を進めていけるよ。
静的テストは端的に言うとソフトウェアを動かさずに評価することだよ。
そして、ソフトウェアを実行して評価するテストの方を動的テストと呼んで区別しているよ。
良い子のみんなや多くの人がソフトウェアテストと聞いてイメージするのが動的テストの方じゃないかな?
静的テストの対象範囲
ほとんどの成果物に対して静的テストでの調査が可能とされているよ。
ほとんどがソフトウェアに関連資料のドキュメントだね。
テストベースになる要件、仕様に関するドキュメントやテストウェアのテスト計画書、テストケースと言ったドキュメントに対して行う静的テストがレビューと呼ばれているよ。
レビューは、読んで理解できるあらゆる作業成果物に適用可能とされているんだ。
これによって開発の初期段階から静的テストによる評価が可能になって、早期テスト、シフトレフトに貢献できるんだね。
一方でコードやモデルなどの形式的な構造で作成された作業成果物に対して行う静的テストが静的解析と呼ばれているんだ。
静的解析は静的解析ツールによって問題点の調査が可能となっているよ。
静的テストのメリット
静的テストには、さまざまなメリットがあるんだ。
要件/設計仕様レビュー、バック ログを洗練させる作業などソフトウェア開発ライフサイクルの初期から静的テストを行うことで動的テストを実行する前に欠陥を早期に検出でき、ライフサイクルの終盤に検出した欠陥よりも、はるかに低コストで除去、修正できるのは大きなメリットだよね。
動的テストで見つけにくい欠陥を見つけたり、早期の改善によって動的テストまでにソフトウェアの品質向上に期待もできるよ。
それでも動的テストってやるの?
静的テストのメリットを見ると動的テスト要る?と思えるかもしれないけど、それぞれに異なる種類の欠陥を検出することが求められてるから、相互に補完する関係になるんだ。
ソフトウェア上で特定のパスがほとんど実行されない(相当にレアケース)、または到達が難しい操作などの動的テストでは見つかりにくい欠陥は静的テストで見つけることが期待されてるよ。
動的テストが外部から見える振る舞いに焦点を置くことが典型的であるのに対し、静的テストは作業成果物の整合性と内部品質を向上させることも特徴の一つなんだ。
静的テストは動的テストに比べて、以下の欠陥を早期かつ安価に検出して修正できると述べられているよ。
また、不適切なモジュール化、低いコンポーネント再利用性、分析が困難で新しい欠陥の混入なしに修正することが困難なコードと言った保守性欠陥のほとんどは、静的テストでのみ検出できるとされているよ。
一歩で動的テストではソフトウェア実行でしか見つからない欠陥を見つけることが期待されることになるね。
OSやブラウザや機器などの環境の差で発生する欠陥やインターフェース間の通信などが対象となるんだ。
静的テスト、動的テストの違いを理解して組み合わせることで、よりテストの効果を高めることができるよ。
ちなみに静的テストの有用性ばかりをアピってるけど、どうせならメリットとデメリットの両方を書いて欲しいところだよね。
例えば静的テストは要求や仕様変更が多いプロジェクトだとレビュー回数も増え工数が増加してしまうとかあると思うんだけど、どうなんだろう?
良い子のみんなもメリット、デメリットを考えて、そこから理解を深めておくと実際の現場で困らないと思うよ。
次回からは静的テストの中でもドキュメント類の調査、レビューについて解説していよ予定だよ。
では、今回はこの辺で!
最後まで読んでくれた良い子のみんなー!
さんきゅーすまいる🤡
この記事が気に入ったらサポートをしてみませんか?