2010年5月15日土曜日

組込みシステム展の講師が終わった

ゴールデンウィーク明けから、なんとなく気が重いと思っていたら、「組み込みシステム展」の専門セミナーの講師を引き受けていることを思い出しました
この専門セミナー、セミナースライドの査読があるとか、わりとマジに話をしないといけないので、実は取っても苦手だったりします。しかも朝早いので、いつもと同じ時間に家を出なければならない
という訳で、行ってきましたよ。ショッカーの基地、もとい東京ビッグサイト



まあ、いつものことなんですが、湘南新宿ライン、普段は新宿まで乗るのですが、東京ビッグサイトに行くときには、大崎で東京臨海鉄道?のりんかい線に乗り換えです。で、また、これが混んでいて(笑。座れない。座れないと言うことは、予習ができない(おのれは、当日の朝、講義の予習をするんかい)
で、気が付けば、東京ビックサイトに着いていて(笑



講師控え室で「タバコ吸いたい」とだだをこね、喫煙所でタバコを吸いコーヒーを買って控え室に戻ると、坂上さん(私と組んで、「改善!テスト計画」の講座をやる方です。上の写真参照)がいらしていました。しばしAndroidのアプリケーションの話をしていると、時間になったので(笑、ぼちぼちと1時間15分、しゃべってきました
あ、わたしの講座なんて、実はたいしたことはなく、かつどうでも良くて、坂上さんの講座が取っても役に立つ(笑

たとえばですね。unsigned short int(2バイトの符号なし整数)の値の判定で、10以上20以下という条件判断を行うモジュールがあって、この条件で同値クラステスト(*1)を行うときに、どんなテストケースを作るかって問題があったとします
この場合、同値クラスを見つけるわけですが、10未満、10以上20未満、20より大きい、という3つの同値クラスがあることは、即分かるのですが、これらの同値クラスの代表値をどう選ぶか? って問題です
10未満の同値クラス、および10以上20未満の同値クラスでは、5と15あたりを選択しておけば無難なのですが、20より大きい同値クラスでの代表値の選び方が問題になります
坂上さんの話は、ここで50とか選んじゃいけないって話になるのですが、みなさん方、以下の中でどれを選んだら良いか、お分かりになりますか?

ア 21、イ 27、ウ 270、エ 65535

実は正解?はウの270なのですが、それではなんでこれが正解になるのでしょうか?

この理由を理解するためには、2バイト符号なし整数がメモリ上でどのように格納されているか理解する必要があります。分からない人は、以下の説明を「すげぇ、そんなことまで考えるの」と思いつつ読み飛ばしてください(大笑

実は、270という数値、下位1バイトに格納される値が、15なんです(上位の1バイトは1になります)。ですのでお馬鹿なコンパイラもしくは自分で書いたアセンブラ・プログラムで、数値の比較をするときに下位1バイトだけで判断しちゃうと、270という値は、10以上20以下の値と判断されてしまう可能性があります
ですので、この270という値をテストケースとして使うことによって、ちゃんと2バイトで比較をしていることの証明ができることになります
と、まあ、坂上さんの講演はこんな、「目から鱗の」話が多いので、毎年講師の役得として聞かせていただいているのですが、やっぱり現場のプロは違うなぁということです

で、講演の後、坂上さんに連れられて、日本システム開発さんのブースに立ち寄ったあと、会場をぶらぶらしてきました



もちろん、上の「VIP」の名札をフル活用して、いろんなブースでいろんなものをもらうのと同時に、VIPルームに置いてある飲み物を全て試飲するなど(笑、VIP風を吹かせながら、ぶらぶらしていました(大笑


(*1) 同値クラステスト
同値クラステストは、テストに使う入力値が同様の結果をもたらす場合、その入力値のグループを「同値」と呼び、その同値クラスの代表値でテストを行う(テストケースを作る)テスト技法です

0 件のコメント:

コメントを投稿