SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
飛行船で萌え
障害キタ━━━━ (;´Д`) ━━━━ !!!!!
~テスト嫌いエンジニアに贈るテストのすすめ~




12-C-6          山根 ゆりえ
                SESSAME


      組込みソフトウェア管理者・技術者育成研究会
お断り
 本資料で使用されているバグ事例は、
   デモ映えすること
   誰にでもわかりやすいこと
 を重視して作られたフィクションです。
 実際に発生したバグ事例の紹介ではありません。

 本資料内で使用した仕様やコードは、本セッション用に製品(マジカル
 スプーン)とは別に作成したものです。このため製品の動作に一切影響
 ありません。

        以上、ご理解の上、ご参照願います。
~当日配布資料~
SESSAMEの紹介
正式名称:組込みソフトウェア管理者・技術者育成研究会
(SESSAME: Society of Embedded Software Skill Acquisition for Managers and Engineers)

活動内容
   組込みソフトウェア技術者や管理者を育成する為のカリキュラムの整備
   そしてその元になる方法論・ツールの開発に関する研究 etc…
名前の由来
 小さいながらも栄養豊富な「ゴマ」
 今後の日本の組み込みソフトウェア業界の発展を願うかけ声「開けゴ
 マ!」
この二つの意味を込めています。   業務上組み込みに係わっていなくても大丈夫
                                              組み込み業界以外のメンバーも活躍しています。
                                            組み込みの世界でもオブジェクト指向なんてキーワードで
                                                   熱く語り合ったりしています。
                                               興味をもたれたら是非お問い合わせください。
                                                      みんな大歓迎です
本セッションの見どころ
本日はお忙しい中お越しいただき
誠にありがとうございます
本セッションには2つのテーマを盛り込んでます
  技術者育成の成果
  テスト技術の紹介
本セッションができあがるまで
ベテランチームの指導のもと、若手チームで今日のための準備をしてきました。
「デブサミ出ないかね?」「えー、無理ですよ」
から始まりました。当初尻込みをする若手に最終的には「やってみたいです」
と言わせました。決して押し付けではなく。どうやってその気にさせたのでしょう?
その後、若手チームは何度も壁にぶち当たるのですが、
ベテランチームは手を差しのべ過ぎず放置しすぎず適度なフォローをしてくれています。
この原稿を書いている1月の終わり、
思うように進まず不安になった若手メンバーがベテランチームにヘルプを出しました。
あと2週間を切ってしまっています。ベテラン達はこれに対してどんな対応をするのでしょう?
無事当日を迎えることができるのでしょうか?
今日もきっと冷や汗をかきつつ見守ってくれていることでしょう。

普段管理職をされている方、
是非ベテランチームのメンバーになったつもりでドキドキ感を味わってください。
セッション内ではこのテーマは特にとりあげませんが、
AskTheSpeakerのコーナーにはベテランチームからも出席させていただきますので、
「部下を育てる」をテーマにした質問もお待ちしております。
そんなベテランさんたちに見守られながら、みんなで作り上げたセッション
一番意識したことは、非組み込み業界の方々にも共感してもらえる内容であること。
そのため、共通の悩みであろうテストをとりあげました。
そして、組み込みに興味をもってもらいたい、SESSAMEで開発した製品を紹介したい・・・
ちょっと欲張りすぎたかもしれません。
たくさんの思いを詰め込むために、ただテスト技術を紹介するだけではなく、
仮想プロジェクトで起きたバグの話にしよう。
仮想プロジェクトで作っているのはSESSAMEの製品ということにしよう。
では、どんなバグにしよう?ここで随分悩みました。
・みなさんに共感してもらえるバグであること
・デモをして見栄えのあるバグであること
・テスト技術の解説につなげられるバグであること などなど・・・
本日私たちはこの2つのバグをとりあげることにしました。どんなバグでしょう?お楽しみに。
~プレゼン資料~
自己紹介

 SESSAME第3世代
 組み込みじゃないけどSESSAMEメンバ
 開発系プロジェクトで火消しをしてました。
  →テストがらみで悲惨な目にあったことはたくさん
 テストは大嫌いです。
  →嫌いだからこそ、より少ないテスト工数で品質をあ
  げる方法を日々研究しています。
 テスト嫌いと思ってたけど・・・
  実は、嫌いだーと思いながらやっていたのはテスト
  じゃなかった?
みなさんにお伝えしたいこと

 「テストって何?これ以上時間ないんだけど・・・。」
 そんなみなさんにも知っててほしい組み込み屋さ
 んの検証ノウハウ
今日のおはなし

 萌えてる飛行船とは
 開発したシミュレータ
 バグ
 まとめ
飛行船紹介~マジカルスプーン~

 今から飛行船飛ぶよ!
 次にシミュレータで同じ動作をさせるよ!
  このシミュレータの用途・・・飛行コマンドの練習
   マジカルスプーンは教育教材
   コマンドを正しくたたくためには練習が必要
   数十人の生徒が飛行船を使って練習するのは非現
   実的
なぜバグが残ってしまったのか?

 ちゃんとテストしたつもりなのにバグが出て
 しまった・・・
  単体テストもやったつもり
  結合テストもやったつもり
  ・・・・
バグひとつめ

 地上から飛行船が離陸しなくなった
  上昇と下降を繰り返していると発生した
バグひとつめ
 調べていくうちに・・・
  地上まで降りた後、再び上昇しようとすると飛ばない
  飛ばなくなるわけではなく、しばらく待つと上昇しはじめ
  る
 地上に降りたときに何かがある!
バグひとつめの正体

 バグの原因は高度がマイナスになること
テストベース
テストベース・・・テストのもとになる、システムの要件、アーキテクチャ、
インタフェースなどに関する資料(JSTQB教科書より)
テストケース
         事前条件      イベント         期待結果
 (表形式のテストケース)
         地上停泊中    操作(上昇)    目標位置で停泊状態に遷移
  TC01

          停泊中     操作(上昇)    目標位置で停泊状態に遷移
  TC02

         ここに西村さん?窪田さん?が
          停泊中      操作(下降)   目標位置で停泊状態に遷移
  TC03
         作成してくださっている
         テストケース例をはる
          移動中     操作(前進)    目標位置で停泊状態に遷移
  TC04


          移動中    操作(右旋回)    目標位置で停泊状態に遷移
  TC05


          移動中     操作(停止)     直ちに停泊状態に遷移
  TC06
状態遷移表
 状態遷移表に整理すると、仕様不明点が多い
                 スタンバイ    地上停泊中     停泊中      移動中

                            ?        ?
     電源オン                                     ?
                   ?

                   起動()
                            ?        ?
     起動                                       ?
                 →地上停泊中
                                    駆動停止()
     現在位置.垂直=0
                          駆動開始()   →地上停泊中
                   ?                         →停泊中
                          →停泊中
操作
                                    →移動中
     現在位置.垂直>0


                   ?        ?        ?        ?
     現在位置.垂直<0

                           停止()
                   ?                 ?
     停止                                       ?
                          →スタンバイ

                   ×        ?        ?
     電源オフ                                     ?
状態遷移表
 状態遷移表に整理すると、仕様不明点が多い
                 スタンバイ    地上停泊中     停泊中      移動中

                            ?        ?
     電源オン                                     ?
                   ?

                   起動()
                            ?        ?
     起動                                       ?
                 →地上停泊中
                                    駆動停止()
     現在位置.垂直=0
                          駆動開始()   →地上停泊中
                   ?                         →停泊中
                          →停泊中
操作
                                    →移動中
     現在位置.垂直>0


                   ×        ×        ×        ×
     現在位置.垂直<0

                           停止()
                   ?                 ?
     停止                                       ?
                          →スタンバイ

                   ×        ?        ?
     電源オフ                                     ?
バグふたつめ
バグふたつめ

 調べていくうちに・・・
  操作コマンドに規定値以外の値を送ると発生


 異常処理があやしい?
バグふたつめの正体

 インターフェースの異常系の仕様について
 漏れがあった
  異常データの場合のシーケンスが決められてい
  なかった
  インターフェースに不整合が生じた
バグふたつめのコード
            主処理: COMから受信した生データを処理して飛行船を動かす。

                var command = Parser.Parse(buf, length);
                // エラーのときは null が戻る。絶対。
                if(command == null) {
                    //エラー処理
                }else{
呼び元: たかはし


            パーサ: 受信データを解釈してコマンド文字列を取り出す。
            public string Parse(byte[] data, int len) {
               // 異常系(取り出し失敗)なら当然例外でしょ。
               if(data == null) { throw new ArgumentNullException(); }

                return Encoding.ASCII.GetString(data, 2, 1);
            }
呼び先: やまね
テストケース
        事前条件    操作入力     期待結果


        移動中    上昇コマンド    上昇する
 TC01

        移動中    下降コマンド    下降する
 TC02

        移動中    右旋回コマンド   右旋回する
 TC03


        移動中    左旋回コマンド   左旋回する
 TC04


        移動中    前進コマンド    前進する
 TC05


        移動中    後退コマンド    後退する
 TC06


         :        :        :
  :
バグふたつめのまとめ

 無効同値クラスも考慮しよう

          いわゆる
  「正常系(有効同値クラス)だけやった」
        にならないように
まとめ
 小さな単位からきちんとテストしないとダメ
  コンポーネント → 統合とテストレベルを進めるにあたっては前のテ
  ストレベルで目的に応じたテストが実施され、そのレベルで摘出すべ
  き欠陥/故障を修正していることが前提
  コンポーネントテストで、コンポーネントとして設定したクラス、コンポ
  ーネント単体レベルの内部動作がI/Oレベルで保証されはじめて、
  統合テストでコンポーネント間のI/Fの評価・検証が可能に


  単体テスト済み                 単体テスト済み
                  結合テスト                F2-1-1
  F1-1-1   F1-1
                                F2-1
                           F2
                   F1                  F2-2-1
  F1-2-1
           F1-2
                                F2-2   F2-2-2
  F1-2-2
テストで幸せになるために

 QCD(品質、コスト、納期)内で最適解を見つけよう
 報告は技法、数字を駆使して明解にしよう
 そのためにはテスト技法をマスターしよう
ご清聴
    ありがとうございました
             m(_ _)m

このセッションの作成にあたり以下の皆様にご協力いただきました。
ありがとうございました
       豆ショッカーズ(有志の方々)
       SESSAME第3世代のV&V松田さん
       SESSAMEの先輩方

Weitere ähnliche Inhalte

Was ist angesagt?

Ws Report 080426
Ws Report 080426Ws Report 080426
Ws Report 080426ikiiki
 
由字句的教學語法
由字句的教學語法由字句的教學語法
由字句的教學語法svetawang
 
CRE-001-研發記錄簿撰寫說明 楊維漢教授
CRE-001-研發記錄簿撰寫說明 楊維漢教授CRE-001-研發記錄簿撰寫說明 楊維漢教授
CRE-001-研發記錄簿撰寫說明 楊維漢教授handbook
 
980603集會遊行法修正草案條文對照表980603 R1 1
980603集會遊行法修正草案條文對照表980603 R1 1980603集會遊行法修正草案條文對照表980603 R1 1
980603集會遊行法修正草案條文對照表980603 R1 1Lin Sung
 
2009年企业培训预调研 V2
2009年企业培训预调研 V22009年企业培训预调研 V2
2009年企业培训预调研 V2NN
 
【12-A-5】 ユーザー企業責任で25サイトをアジャイルに開発
【12-A-5】 ユーザー企業責任で25サイトをアジャイルに開発【12-A-5】 ユーザー企業責任で25サイトをアジャイルに開発
【12-A-5】 ユーザー企業責任で25サイトをアジャイルに開発devsumi2009
 
QM-041-品管七大手法訓練
QM-041-品管七大手法訓練QM-041-品管七大手法訓練
QM-041-品管七大手法訓練handbook
 
The President’s Speech in Cairo: A New Beginning - Russian
The President’s Speech in Cairo: A New Beginning - RussianThe President’s Speech in Cairo: A New Beginning - Russian
The President’s Speech in Cairo: A New Beginning - RussianObama White House
 
株式会社 花みずき工房 きらりタウン浜北
株式会社 花みずき工房 きらりタウン浜北株式会社 花みずき工房 きらりタウン浜北
株式会社 花みずき工房 きらりタウン浜北sunseago
 
第3回「国連機関への就職ガイダンス」資料
第3回「国連機関への就職ガイダンス」資料第3回「国連機関への就職ガイダンス」資料
第3回「国連機関への就職ガイダンス」資料IDDP UK
 
廢水處理專責人員訓練簡章
廢水處理專責人員訓練簡章廢水處理專責人員訓練簡章
廢水處理專責人員訓練簡章5045033
 
Requirement Development meets SOA
Requirement Development meets SOARequirement Development meets SOA
Requirement Development meets SOAiwasaki
 
CEO-005-如何成為一位成功老闆
CEO-005-如何成為一位成功老闆CEO-005-如何成為一位成功老闆
CEO-005-如何成為一位成功老闆handbook
 
検索キーワードで読み解く2007年
検索キーワードで読み解く2007年検索キーワードで読み解く2007年
検索キーワードで読み解く2007年pipithelhasa
 
QM-080-品管舊新七大手法
QM-080-品管舊新七大手法QM-080-品管舊新七大手法
QM-080-品管舊新七大手法handbook
 
「伝わる・売れる」ユーザビリティ入門
「伝わる・売れる」ユーザビリティ入門「伝わる・売れる」ユーザビリティ入門
「伝わる・売れる」ユーザビリティ入門Katsumi TAZUKE
 
Persona design method / ペルソナ概論
Persona design method / ペルソナ概論Persona design method / ペルソナ概論
Persona design method / ペルソナ概論Katsumi TAZUKE
 

Was ist angesagt? (19)

立命館WS報告書
立命館WS報告書立命館WS報告書
立命館WS報告書
 
Ws Report 080426
Ws Report 080426Ws Report 080426
Ws Report 080426
 
由字句的教學語法
由字句的教學語法由字句的教學語法
由字句的教學語法
 
CRE-001-研發記錄簿撰寫說明 楊維漢教授
CRE-001-研發記錄簿撰寫說明 楊維漢教授CRE-001-研發記錄簿撰寫說明 楊維漢教授
CRE-001-研發記錄簿撰寫說明 楊維漢教授
 
980603集會遊行法修正草案條文對照表980603 R1 1
980603集會遊行法修正草案條文對照表980603 R1 1980603集會遊行法修正草案條文對照表980603 R1 1
980603集會遊行法修正草案條文對照表980603 R1 1
 
2009年企业培训预调研 V2
2009年企业培训预调研 V22009年企业培训预调研 V2
2009年企业培训预调研 V2
 
【12-A-5】 ユーザー企業責任で25サイトをアジャイルに開発
【12-A-5】 ユーザー企業責任で25サイトをアジャイルに開発【12-A-5】 ユーザー企業責任で25サイトをアジャイルに開発
【12-A-5】 ユーザー企業責任で25サイトをアジャイルに開発
 
QM-041-品管七大手法訓練
QM-041-品管七大手法訓練QM-041-品管七大手法訓練
QM-041-品管七大手法訓練
 
The President’s Speech in Cairo: A New Beginning - Russian
The President’s Speech in Cairo: A New Beginning - RussianThe President’s Speech in Cairo: A New Beginning - Russian
The President’s Speech in Cairo: A New Beginning - Russian
 
株式会社 花みずき工房 きらりタウン浜北
株式会社 花みずき工房 きらりタウン浜北株式会社 花みずき工房 きらりタウン浜北
株式会社 花みずき工房 きらりタウン浜北
 
第3回「国連機関への就職ガイダンス」資料
第3回「国連機関への就職ガイダンス」資料第3回「国連機関への就職ガイダンス」資料
第3回「国連機関への就職ガイダンス」資料
 
廢水處理專責人員訓練簡章
廢水處理專責人員訓練簡章廢水處理專責人員訓練簡章
廢水處理專責人員訓練簡章
 
Requirement Development meets SOA
Requirement Development meets SOARequirement Development meets SOA
Requirement Development meets SOA
 
CEO-005-如何成為一位成功老闆
CEO-005-如何成為一位成功老闆CEO-005-如何成為一位成功老闆
CEO-005-如何成為一位成功老闆
 
検索キーワードで読み解く2007年
検索キーワードで読み解く2007年検索キーワードで読み解く2007年
検索キーワードで読み解く2007年
 
QM-080-品管舊新七大手法
QM-080-品管舊新七大手法QM-080-品管舊新七大手法
QM-080-品管舊新七大手法
 
「伝わる・売れる」ユーザビリティ入門
「伝わる・売れる」ユーザビリティ入門「伝わる・売れる」ユーザビリティ入門
「伝わる・売れる」ユーザビリティ入門
 
Persona design method / ペルソナ概論
Persona design method / ペルソナ概論Persona design method / ペルソナ概論
Persona design method / ペルソナ概論
 
マニュアル
マニュアルマニュアル
マニュアル
 

Andere mochten auch

男It番長 it投資評価のすすめ
男It番長 it投資評価のすすめ男It番長 it投資評価のすすめ
男It番長 it投資評価のすすめ小島 規彰
 
【13-E-1】 システムの見える化~エンドユーザーの立場から
【13-E-1】 システムの見える化~エンドユーザーの立場から【13-E-1】 システムの見える化~エンドユーザーの立場から
【13-E-1】 システムの見える化~エンドユーザーの立場からdevsumi2009
 
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法devsumi2009
 
【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能devsumi2009
 
IT関連コストの最適化コンサルティング・サービス
IT関連コストの最適化コンサルティング・サービスIT関連コストの最適化コンサルティング・サービス
IT関連コストの最適化コンサルティング・サービスsinrock
 
IT投資のオペレーション・マネジメントの価値
IT投資のオペレーション・マネジメントの価値IT投資のオペレーション・マネジメントの価値
IT投資のオペレーション・マネジメントの価値Tetsu Kawata
 
ITポートフォリオの公開モデルのご紹介と応用例
ITポートフォリオの公開モデルのご紹介と応用例ITポートフォリオの公開モデルのご紹介と応用例
ITポートフォリオの公開モデルのご紹介と応用例Tetsu Kawata
 

Andere mochten auch (8)

男It番長 it投資評価のすすめ
男It番長 it投資評価のすすめ男It番長 it投資評価のすすめ
男It番長 it投資評価のすすめ
 
【13-E-1】 システムの見える化~エンドユーザーの立場から
【13-E-1】 システムの見える化~エンドユーザーの立場から【13-E-1】 システムの見える化~エンドユーザーの立場から
【13-E-1】 システムの見える化~エンドユーザーの立場から
 
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法
 
【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能
 
IT関連コストの最適化コンサルティング・サービス
IT関連コストの最適化コンサルティング・サービスIT関連コストの最適化コンサルティング・サービス
IT関連コストの最適化コンサルティング・サービス
 
IT投資のオペレーション・マネジメントの価値
IT投資のオペレーション・マネジメントの価値IT投資のオペレーション・マネジメントの価値
IT投資のオペレーション・マネジメントの価値
 
ITポートフォリオの公開モデルのご紹介と応用例
ITポートフォリオの公開モデルのご紹介と応用例ITポートフォリオの公開モデルのご紹介と応用例
ITポートフォリオの公開モデルのご紹介と応用例
 
収益性向上可能性調査
収益性向上可能性調査収益性向上可能性調査
収益性向上可能性調査
 

Mehr von devsumi2009

【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介
【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介
【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介devsumi2009
 
【12-E-4】 『脱Excel』を実現!統合プロジェクト管理パッケージ『SI Object Browser PM』を利用してIT企業も近代化しよう~PM...
【12-E-4】 『脱Excel』を実現!統合プロジェクト管理パッケージ『SI Object Browser PM』を利用してIT企業も近代化しよう~PM...【12-E-4】 『脱Excel』を実現!統合プロジェクト管理パッケージ『SI Object Browser PM』を利用してIT企業も近代化しよう~PM...
【12-E-4】 『脱Excel』を実現!統合プロジェクト管理パッケージ『SI Object Browser PM』を利用してIT企業も近代化しよう~PM...devsumi2009
 
【12-B-1】 実例で学ぶ Objective-C 2.0 と GUI の関係~ iPhone アプリ開発を視野に入れて
【12-B-1】 実例で学ぶ Objective-C 2.0 と GUI の関係~ iPhone アプリ開発を視野に入れて【12-B-1】 実例で学ぶ Objective-C 2.0 と GUI の関係~ iPhone アプリ開発を視野に入れて
【12-B-1】 実例で学ぶ Objective-C 2.0 と GUI の関係~ iPhone アプリ開発を視野に入れてdevsumi2009
 
【13-C-3】 RIA 開発をとりまく技術の進化と環境の変化
【13-C-3】 RIA 開発をとりまく技術の進化と環境の変化【13-C-3】 RIA 開発をとりまく技術の進化と環境の変化
【13-C-3】 RIA 開発をとりまく技術の進化と環境の変化devsumi2009
 
【13-C-5】 パネルディスカッション 帳票開発の肝
【13-C-5】 パネルディスカッション 帳票開発の肝【13-C-5】 パネルディスカッション 帳票開発の肝
【13-C-5】 パネルディスカッション 帳票開発の肝devsumi2009
 
【13-B-3】 企業システムをマッシュアップ型に変えるには
【13-B-3】 企業システムをマッシュアップ型に変えるには【13-B-3】 企業システムをマッシュアップ型に変えるには
【13-B-3】 企業システムをマッシュアップ型に変えるにはdevsumi2009
 
【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~
【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~
【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~devsumi2009
 
【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~
【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~
【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~devsumi2009
 
【13-B-4】 Java VMへの処方箋 ~先進のメモリ管理技術とは~
【13-B-4】 Java VMへの処方箋 ~先進のメモリ管理技術とは~【13-B-4】 Java VMへの処方箋 ~先進のメモリ管理技術とは~
【13-B-4】 Java VMへの処方箋 ~先進のメモリ管理技術とは~devsumi2009
 
【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おう
【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おう【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おう
【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おうdevsumi2009
 
【12-A-1】 開発プロセスの心
【12-A-1】 開発プロセスの心【12-A-1】 開発プロセスの心
【12-A-1】 開発プロセスの心devsumi2009
 
【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~
【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~
【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~devsumi2009
 
【13-E-1】 システムの見える化~エンドユーザーの立場から
【13-E-1】 システムの見える化~エンドユーザーの立場から【13-E-1】 システムの見える化~エンドユーザーの立場から
【13-E-1】 システムの見える化~エンドユーザーの立場からdevsumi2009
 
【13-E-1】 システムの見える化~エンドユーザーの立場から
【13-E-1】 システムの見える化~エンドユーザーの立場から【13-E-1】 システムの見える化~エンドユーザーの立場から
【13-E-1】 システムの見える化~エンドユーザーの立場からdevsumi2009
 
【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!
【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!
【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!devsumi2009
 
【13-D-1】 ERP5に見るストレージ技術
【13-D-1】 ERP5に見るストレージ技術【13-D-1】 ERP5に見るストレージ技術
【13-D-1】 ERP5に見るストレージ技術devsumi2009
 
【12-D-2】 WPF アプリケーション開発
【12-D-2】 WPF アプリケーション開発【12-D-2】 WPF アプリケーション開発
【12-D-2】 WPF アプリケーション開発devsumi2009
 
【12-D-3】 ASP.NET MVC - 概要と仕組み
【12-D-3】 ASP.NET MVC - 概要と仕組み【12-D-3】 ASP.NET MVC - 概要と仕組み
【12-D-3】 ASP.NET MVC - 概要と仕組みdevsumi2009
 
【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~
【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~
【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~devsumi2009
 
【12-A-2】 ケーススタディ:不景気と戦うシステムインテグレート
【12-A-2】 ケーススタディ:不景気と戦うシステムインテグレート【12-A-2】 ケーススタディ:不景気と戦うシステムインテグレート
【12-A-2】 ケーススタディ:不景気と戦うシステムインテグレートdevsumi2009
 

Mehr von devsumi2009 (20)

【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介
【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介
【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介
 
【12-E-4】 『脱Excel』を実現!統合プロジェクト管理パッケージ『SI Object Browser PM』を利用してIT企業も近代化しよう~PM...
【12-E-4】 『脱Excel』を実現!統合プロジェクト管理パッケージ『SI Object Browser PM』を利用してIT企業も近代化しよう~PM...【12-E-4】 『脱Excel』を実現!統合プロジェクト管理パッケージ『SI Object Browser PM』を利用してIT企業も近代化しよう~PM...
【12-E-4】 『脱Excel』を実現!統合プロジェクト管理パッケージ『SI Object Browser PM』を利用してIT企業も近代化しよう~PM...
 
【12-B-1】 実例で学ぶ Objective-C 2.0 と GUI の関係~ iPhone アプリ開発を視野に入れて
【12-B-1】 実例で学ぶ Objective-C 2.0 と GUI の関係~ iPhone アプリ開発を視野に入れて【12-B-1】 実例で学ぶ Objective-C 2.0 と GUI の関係~ iPhone アプリ開発を視野に入れて
【12-B-1】 実例で学ぶ Objective-C 2.0 と GUI の関係~ iPhone アプリ開発を視野に入れて
 
【13-C-3】 RIA 開発をとりまく技術の進化と環境の変化
【13-C-3】 RIA 開発をとりまく技術の進化と環境の変化【13-C-3】 RIA 開発をとりまく技術の進化と環境の変化
【13-C-3】 RIA 開発をとりまく技術の進化と環境の変化
 
【13-C-5】 パネルディスカッション 帳票開発の肝
【13-C-5】 パネルディスカッション 帳票開発の肝【13-C-5】 パネルディスカッション 帳票開発の肝
【13-C-5】 パネルディスカッション 帳票開発の肝
 
【13-B-3】 企業システムをマッシュアップ型に変えるには
【13-B-3】 企業システムをマッシュアップ型に変えるには【13-B-3】 企業システムをマッシュアップ型に変えるには
【13-B-3】 企業システムをマッシュアップ型に変えるには
 
【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~
【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~
【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~
 
【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~
【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~
【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~
 
【13-B-4】 Java VMへの処方箋 ~先進のメモリ管理技術とは~
【13-B-4】 Java VMへの処方箋 ~先進のメモリ管理技術とは~【13-B-4】 Java VMへの処方箋 ~先進のメモリ管理技術とは~
【13-B-4】 Java VMへの処方箋 ~先進のメモリ管理技術とは~
 
【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おう
【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おう【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おう
【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おう
 
【12-A-1】 開発プロセスの心
【12-A-1】 開発プロセスの心【12-A-1】 開発プロセスの心
【12-A-1】 開発プロセスの心
 
【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~
【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~
【13-C-6】 帳票開発に時間かけすぎていませんか?~もっと簡単に「作る」現場、「使う」現場の最適解を探る~
 
【13-E-1】 システムの見える化~エンドユーザーの立場から
【13-E-1】 システムの見える化~エンドユーザーの立場から【13-E-1】 システムの見える化~エンドユーザーの立場から
【13-E-1】 システムの見える化~エンドユーザーの立場から
 
【13-E-1】 システムの見える化~エンドユーザーの立場から
【13-E-1】 システムの見える化~エンドユーザーの立場から【13-E-1】 システムの見える化~エンドユーザーの立場から
【13-E-1】 システムの見える化~エンドユーザーの立場から
 
【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!
【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!
【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!
 
【13-D-1】 ERP5に見るストレージ技術
【13-D-1】 ERP5に見るストレージ技術【13-D-1】 ERP5に見るストレージ技術
【13-D-1】 ERP5に見るストレージ技術
 
【12-D-2】 WPF アプリケーション開発
【12-D-2】 WPF アプリケーション開発【12-D-2】 WPF アプリケーション開発
【12-D-2】 WPF アプリケーション開発
 
【12-D-3】 ASP.NET MVC - 概要と仕組み
【12-D-3】 ASP.NET MVC - 概要と仕組み【12-D-3】 ASP.NET MVC - 概要と仕組み
【12-D-3】 ASP.NET MVC - 概要と仕組み
 
【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~
【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~
【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~
 
【12-A-2】 ケーススタディ:不景気と戦うシステムインテグレート
【12-A-2】 ケーススタディ:不景気と戦うシステムインテグレート【12-A-2】 ケーススタディ:不景気と戦うシステムインテグレート
【12-A-2】 ケーススタディ:不景気と戦うシステムインテグレート
 

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

Hinweis der Redaktion

  1. <number>
  2. ・豆蔵さんの紹介はどうするか?・SESSAMEの紹介も必要<number>
  3. ・組み込み屋さんと同じレベルでテストなんてやってられないですよね。それは私もよーくわかってます。でも、ちょっとまってください。たとえば、料理をするとき、プロのレシピをそのまま真似るのは無理だけど、ちょっと隠し味とか、あるコツをまねるだけで劇的においしくなったりすることありますよね?そんな感じで、生死にかかわるようなシステムと同じテストなんて必要ないけど、そこから得たノウハウには私たちでもおいしいものがあったりしますそういうところをお伝えしたいと思ってます。<テスト嫌いなんですけど、やらないわけにはいかないですよね。嫌いだから何回もやりたくないんですよ。しかもなるべく簡単にすませたい。けど、あとkらバグが見つかるのはくやしい。>これは自己紹介にしよう・SESSAMEのメンバが作った教材に、マジカルスプーンというのがあります。このスプーンをたたいて、あの飛行船の制御をしようというものです。詳しくは後のプレゼンの中でお話させていただきますが、これめっちゃ楽しいねん!というのをみなさんにお伝えできたらいいなと思ってます。聞いてくださった方の中から、僕もやってみたいという方が出てきてくれるとうれしいです。<number>
  4. ・飛行船本体だと組みこみっぽくなってしまうので、今日はパソコン上で動くシミュレータをとりあげたいと思います。このシミュレータ、ちゃんとテストして出荷したのにバグがあって・・・というありがちなストーリーにのせて実例をあげながら、バグの見つけ方やテストのコツなんかとお話したいと思います。あくまでも今日のお話はフィクションですからね実際にこんな状態で出荷したんじゃありませんよ。ということだけお断りしておきますで、お話の中で、デモを交えつつ、バグの種明かしをしていきます。最後にまとめ代わりにテストに関するお話をして、みなさんにテストについてもうちょっと知りたいなと思ってもらえたら大成功です。ではさっそく本題に入っていきましょう<number>
  5. ・まずはマジカルスプーンって何?ってとこからご説明させていただきます<number>
  6. 何回もテストしたはずなのに なぜ不具合が残ってしまうの?テストしたときは正しく動いたのになぜ動かなくなるの?
  7. <number>
  8. 状態遷移図変えるクラス図を追加くらい?
  9. 表にすることによって、組み合わせの網羅ができた理論的にはあり得ないから考えてもみなかったことが・・・知らぬまに実装されてたあり得ない→考慮しない→テストしない状態遷移図からだと今ひとつ問題がみえにくかったので、表にしてみました☆
  10. 表にすることによって、組み合わせの網羅ができた理論的にはあり得ないから考えてもみなかったことが・・・知らぬまに実装されてたあり得ない→考慮しない→テストしない状態遷移図からだと今ひとつ問題がみえにくかったので、表にしてみました☆
  11. ・ここで、インタフェースのテストがおざなりになった例を見ましょう。
  12. <number>
  13. なので、一般的に言う方(結合テスト)でよいかなーと。 ただ、単体テスト、結合テスト共に、ISTQBでは、それぞれ コンポーネントテスト、統合テストって言います、って一言口頭で言っといた方が 無難だと思います。
  14. なので、一般的に言う方(結合テスト)でよいかなーと。 ただ、単体テスト、結合テスト共に、ISTQBでは、それぞれ コンポーネントテスト、統合テストって言います、って一言口頭で言っといた方が 無難だと思います。
  15. ・今回のバグで出たときに実施したテストケースはこんなものです・状態遷移図にマップすると、赤丸の箇所がもれていました。・
  16. なので、一般的に言う方(結合テスト)でよいかなーと。 ただ、単体テスト、結合テスト共に、ISTQBでは、それぞれ コンポーネントテスト、統合テストって言います、って一言口頭で言っといた方が 無難だと思います。
  17. なので、一般的に言う方(結合テスト)でよいかなーと。 ただ、単体テスト、結合テスト共に、ISTQBでは、それぞれ コンポーネントテスト、統合テストって言います、って一言口頭で言っといた方が 無難だと思います。