読者です 読者をやめる 読者になる 読者になる

ひつじのにっき

mhidakaのにっきです。たまに長文、気が向いたとき更新。

【12-C-6】飛行船萌え障害キタ━━━━ (;´Д`) ━━━━ !!!! 〜テスト嫌いエンジニアに贈るテストのすすめ〜

12-C-6 飛行船萌え障害キタ━━━━ (;´Д`) ━━━━ !!!! 〜テスト嫌いエンジニアに贈るテストのすすめ〜
SESAMME


タイトルが半端ねぇwと思って思わず参加しました。
仮想開発を通じたテストとバグ、重要性の確認。
非常に和気藹々とした雰囲気で進行。
ほかの会場より笑いが多く、和やかな雰囲気で楽しめました。
組み込み分野でのお話だったので仕事柄とても興味深いものでした。
あとテスト技法についてもう少し踏み込んでもらえたらよりGood!

12-C-6 飛行船萌え障害キタ━━━━ (;´Д`) ━━━━ !!!! 〜テスト嫌いエンジニアに贈るテストのすすめ〜
 
◆自己紹介
 SESSAMEメンバー
 テスト嫌いだからこそ、より少ない工数でテスト品質をあげたい
 飛行船プロジェクトを例とした開発紹介
 
◆プロジェクト概要 
 飛行船:組み込みマイコンを搭載。
 無線による通信を行う。スプーンをたたくと送信機が音をひろって通信、
 飛行船で受信してモータ制御を実行
 
 シミュレータ開発:飛行船をシミュレータをつかって操作練習等行う
  GoogleEarthを用いて飛行船操作をシミュレート。
 → 今回はシミュレータ開発でのデバッグを中心に紹介★
 
◆バグ発生、そのときテストはどうだった??
 症状
  飛行船の上昇下降を繰り返したとき、
  地上まで降りた後、再び上昇しようとすると飛び上がらなかった
  → 飛ばなくなるわけではなくて、しばらく待つと飛び上がった
  
 原因
  高度がマイナスになっていた
  
 そのときのテストベース(テストの元になる要件、アーキテクチャ)
 テストケース:事前条件とイベントのを組み合わせてテストケースを作成
  → 結果はバグなし
 
 なぜ見つからなかったのか★
  → 状態遷移表を作っていなかった
 不明な項目が多数、仕様の詳細が詰めれてなかった
  
◆バグ発生、そのときテストはどうだった??
 症状
  エラーダイアログで強制終了
 原因
  操作コマンドに規定値以外を送ると発生。異常系の制御仕様が未決。
 
 そのときのテストケース 
  テストケースは正常系のみ考えていた → 無効同値クラスのテスト仕様漏れ★
   
◆テストで幸せになるために
 QCDでの最適解を見つける
 テスト評価には技法、数値化をベースとする(一定の評価基準を)
 → テスト技法を習得しておく
 
◆バグ1つめのテストケースふりかえり
 今回のクラス図とステートマシン図には 
 拘束条件が漏れている
  → 実際の開発においてもクライアントはほとんど記述しない★
 
 状態モデルだけでは成立しないのでレビューを通じて確認する
 
◆バグ2つめのテストケース振り返り
 パーサーと処理について、今回は来ない(と想定していた)処理を省略
 実際は設計思想として約束を決めておくべき
 
 組み込みでは異常系でなくても正常系であっても
 Exception的な(エラーを通知する)マルチタスクを行っている。
 非同期的なテストを重視しよう