2009年12月31日木曜日

SWE637ふりかえり

今セメスターからMS Software Engineeringコースにおける必須科目となったこのコース「Software Testing」。このコースでは、ソフトウェアテスティングの道具として、今までの研究成果として見出された様々なテストカバレッジクライテリアを学びつつ、それらをどのように効果的に使用するかについてコースの後半に駆け足で学びました。その過程で感じたのは、
  1. ソフトウェアテスティングにおいて銀の弾丸はない
  2. ソフトウェアテスティングは設計・実装と同じかそれ以上に経験と知識が要求される
ということです。実際のソフトウェア開発現場では、ソフトウェアテスターが開発チームにおいて尊敬される存在であって、プロジェクトを技術的にリード・教育する、という考え方が浸透すべきだ、と学びました。講義の中で先生が示された、ソフトウェアテスターに対する面白い喩えが「スペルチェッカー」でした。英語の文章を書いているとき、スペルチェッカーがスペルをテストしてくれるだけでなく、それらのテストを通じて私達はスペルを学ぶこともできます。

クラスで成績1番でした
このコースの成績は「A+」でした。先セメスターに受講したSWE642と同じく、講師Dr. Offuttが「A+はクラスでtop gradeだった一人だけにしか与えない」という方針をおっしゃっていたので、私はtop gradeだったと思います。実際、今セメスターの終盤、講師と雑談をしているときに、宿題やクイズの成績を見て「Kojiは明らかにtop studentだ。Kojiのgradingは他の学生より厳しくしなくちゃ」と冗談ぽく言ってくださいました。今回のクラスでも、会社勤めをしながら講義を受けるパートタイムの学生が多く(約40%ぐらい?)、私より年上の人もたくさんいました。残りの40%はインド人の学生、残りの20%は中国人の学生、という感じでしょうか。このような中で良い成績をいただけたので、自信になります(というか、就職活動を考慮すると、もっと自分に自信を持たなくては、と自分に言い聞かせています)。

このコースが難しい理由
このコースでは、多くの学生が苦労しているようで、Aの成績を取る学生はクラス内でたいてい30%以下だそうです。その理由は、おそらくこのコースで学ぶ以下のTest Coverage Criteriaが離散系数学・情報科学と深く関わっているからだはないかと想像します。
  • Graph Coverage
  • Logic Coverage
  • Input Space Partitioning
  • Syntax-Based Testing
Graph Coverageではグラフ理論、Logic Coverageでは論理、Input Space Partitioningでは集合、Syntax-Based TestingではBNFや正規表現が関連しています。宿題やクイズでは、これら情報科学について理解できていないと正しく答えられないことが多かったはずで、特にクイズの平均点は概ね低い日が多かったと記憶しています。

0 件のコメント: