何を目的にテストをするのか

最近テストについてが話題ですね。
テスト計画の立て方 - Qiita
UIテスト自動化でSIerのExcelスクショは滅びるのか - てんてんのぶろぐ


そもそもソフトウェアテストって何を目的に実施するんでしょうか?

ソフトウェアテストを行う目的としては、「欠陥やバグを検出する」「要件を満たすことを保証する」「リリース後の品質リスクを見積もる」「開発プロセス改善の指標となる」などが挙げられる。どの目的を重視するかは、開発するソフトウェアプロダクトの目的やニーズ、開発組織の成熟度などによって変わってくる。

情報システム用語事典:ソフトウェアテスト(そふとうぇあてすと) - ITmedia エンタープライズ

ふむふむ。なるほど。


以前、私が働いている時に上司から「品質を上げるためにテストはしっかりやるぞ」ということを聞いたことがあります。ところで品質とは何でしょうか? ソフトウェア品質の評価に関する国際規格で、ISO/IEC 9126 というものがあるそうです。(あまりテストについて詳しくないので、とりあえずwikipediaへのリンクです)
ISO/IEC 9126 - Wikipedia




テストといっても幅は広いし、深さもありますね。
仕事しているとテスト工程の中で様々なテストを実施することになるかと思いますが、「これで本当に十分なテストが実施できているのだろうか」と不安になることもあるかと思います。
そんな時は、品質指標とテスト工程で実施するテストのマトリクスを作成してみてはいかがでしょうか?

品質指標\テスト工程 単体テスト 結合テスト システムテスト 受け入れテスト
機能性
信頼性      
使用性    
効率性    
保守性  
移植性        

※)○/◎は適当

このような表を作成してみることで、「こういった観点のテストが漏れていたので確認した方が良い」と気づくことができるかもしれません。
品質指標を細分化して表を作成したり、非機能要件の項目についても検討してみたり、というようにプロジェクトにおいて重視することを考慮し、テスト計画を立てられると安心して開発が進められそうです。


いやー、テストって本当に奥が深くて難しいですね。



ついでに

UIテスト自動化について、機能性の担保はできるけど使用性(ユーザビリティ)については評価が難しいので人手で実施するしかないのではないか、と思っています。このあたり詳しい方がいらっしゃいましたら教えてください。


ということで、(スクショしてExcelエビデンスとして残すかはさておき)UIのテスト自動化で機能性の担保ができるようになっても、使用性などの確認・担保のために人手でテストをするのはしばらく続きそうですね。雇用が守られてよかった。

あと更についでですが

転職しました。