ソフトウェア品質のお悩み解決!テストのエンジニアリング、教えます!

  • テクノロジー

みなさん、はじめまして。株式会社SHIFTの杉原と申します。ソフトウェアテストに関する研修を担当しています。
私は会計パッケージの会社で、品質保証部の立ち上げに参画し、テスト工程や品質管理のエンジニアを担当してきました。2013年に株式会社SHIFTに入社し、お客様の品質改善コンサルティングを実施、現在は、「ヒンシツ大学(※)」の講師として、お客様にテスト関連の講座を提供しています。

20210218_00.jpg

(写真)ヒンシツ大学講師陣、左端が杉原

さて、2020年は新型コロナ禍でたいへんなことになっていましたが、そんな中、ひとつ残念なニュースがありました。持続化給付金事業で、システムに不具合があり、計5億円を誤給付していたということです。

おそらく短期間の開発で、十分にテストができていなかったという状況もあるのでしょうが、バグが残ったままシステムを世に出すと後始末が大変だという教訓に、新しいケースを追加することになってしまいました。

ソフトウェア開発の教科書には、『テストでバグを見つけるのはソフトウェア品質の基本、その基本品質を開発の繰り返しのたびに改善していきましょう』と書いてあります。ただ、現場で活躍しているSEの方からは、バグがなかなか取り切れない、基本品質と言えるレベルに達していない、という悩みをよくお伺いします

テストでバグが取り切れない、そのひとつの大きな要因としては、テストケースがソフトウェアの機能を網羅できておらず、バグのあるところがテストできていないことが挙げられます。悩みを抱えているSEの中には、それは認識していても、いざテストするとなると、結果的に時間に追われて、やっぱりいつもと同じように進めて、いつもと同じように品質に満足できない、という繰り返しになってしまうという方も散見されます。

システム開発において、設計というプロセスは、SEが経験や勘を生かして、頭を使って行う作業です(図1)。テスト工程にも、設計が必要で、SEが経験や勘を生かして、テストケースを考えていきます。しかし、実際の現場では、経験豊富なSEは上流工程に集中することが多く、テスト設計までは指導しきれないようです。そのため、テスト設計は、経験の少ないSEが限られた経験や勘の中で努力しますが、どうしても属人的な設計になり、設計品質としてもバラバラになりがちです。これを仕方がないことだと諦めたら、進歩はありません。ちょっと頭の使い方を変えてみませんか。

20210218_01.png

(図1)代表的なテストのプロセス

例えば、フォームにデータを入力して、データベースに登録するという機能をテストするとしましょう(図2)。文字数がチェックされているか、必須項目の入力が確認されているか、IDの重複チェックや存在チェックができているか、このようなテストを考えるでしょう。これを「テスト観点」と呼びます。このテスト観点は、フォーム入力からデータベースに登録・更新の時に、共通に使えるものとなります。ということは、このテスト観点をたくさん集めて整理しておけば、再利用する時にあまり頭を使う必要がなく、設計品質を平準化できます。頭を使うのは、そこから過不足がないか、というところに集中します。

20210218_02.png

(図2)標準観点を活用してテストケースを設計する

テストケースは、テスト観点から実際のシステムの仕様に合わせた確認項目に分解したものになります。よくある失敗例は、テストケースでレビューしようとすることです。テストケースでは確認項目が膨大になって、一見でテスト観点の過不足を見つけることは困難です。このためテスト観点のレベルでしっかり頭を使ってレビューします。また、再利用もテスト観点のレベルで考えます。テストケースになってから再利用しようとしても、システム仕様が異なるとうまく再利用ができません。テスト観点のレベルで整理し、再利用し、レビューする、これがテスト設計でうまく頭を使う方法です。作業を効率的なやり方に体系化して、頭を使うべきところを限定する、これこそがエンジニアリングです。ソフトウェアエンジニアが取り組むべきことです。そして、新たにテスト観点を見つけたら、再利用ができるように整理する、これを繰り返すことで、どんどんテストの網羅性と設計効率が上がっていきます。その結果、少ない時間の中でも確実にバグを見つけるテストケースを設計できるようになり、ソフトウェアの品質改善へとつながっていきます。

株式会社SHIFTは、テストのエンジニアリングからIT業界に参入し、網羅的なテストを効率的に設計するノウハウを蓄積してきました。ヒンシツ大学では、このノウハウを講座として提供しております。経験と勘だけに頼らない考え方を、わたくし杉原をはじめ、経験豊富な講師陣と一緒に考えてみませんか。研修スタイルも、従来通り教室に集まり受講する「集合研修」のほかに、自宅や事務所などお好きな場所からオンラインで参加できる「ライブ研修」もございます。皆さんとお会いできることを楽しみにしております。

※ヒンシツ大学™は、ソフトウェア開発現場で真に役立つ品質向上に対する考え方の教育を提供する、株式会社SHIFTのサービスです。
富士通ラーニングメディアは、株式会社SHIFTと提携し、ヒンシツ大学のコースを提供しています。

(2021/02/18)