ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

遠隔操作できる無人重機で捜索再開

2018-04-15 20:32:06 | Weblog
大分県中津市耶馬渓町金吉で住宅に土砂が流れ込み、2人が死亡、4人が行方不明になった山崩れで、悪天候のため一時中断していた警察や消防などの捜索活動は15日午後、約500人態勢で21時間半ぶりに再開した。安否が分からない江渕優さん(21)らが暮らしていた住宅近くを、遠隔操作できる無人重機で慎重に掘り起こした。

なんでくずれたかわからないので、人が乗ると危険&人が乗ったら崩れるかも?

【引用元(太字は以下のリンク先から引用)】
山崩れ現場の捜索再開、大分 耶馬渓、不明4人


  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「テストでのC0、C1、C2に対応した仕様書の書き方」って、学校で教えないよね

2018-04-15 12:58:53 | ネットワーク
「設計書」が書けない設計者
http://tech.nikkeibp.co.jp/atcl/nxt/column/18/00041/00005/

(太字は上記サイトより引用)に
機械設計には「設計書」の単語がないのでしょうか?


との答えに対し、

恐らく、実務経験のない学者か誰かがそうした設計フローの学術書、もしくは教科書を作成したのだと思います。それを実務経験の浅い執筆者が転記し、長年の間に日本企業から「設計書」が消えてしまったのでしょう。

ってあるけど、大学のソフトウェア工学とかの講義もそうで、
どこでも「テスト」のときの、命令網羅(C0)、分岐網羅(C1)、組み合わせ網羅(条件網羅)(C2)は教えるけど、
これが、テスト仕様書の書き方にどうかかわるか(変わるか)って、教えてないよね!

ってことで、書いてみる




【お題】

以下のテスト(単体テストということにする)

   スタート
    |
   条件A
    |---------
  はい|         |いいえ
    処理1       |
    |         |
    処理2       |
    |---------
    処理3



   
【C0(命令網羅)100%でお願いね!】
  一番小さいテスト観点は「命令」。この命令ごとに、テスト項目を挙げることになる

   テスト項目1
      テスト観点:処理1の実行
      テスト条件:条件Aが成立
      テスト内容:処理1が実行されていること

   テスト項目2
      テスト観点:処理2の実行
      テスト条件:条件Aが成立、処理1が実行※
      テスト内容:処理2が実行されていること

   テスト項目3
      テスト観点:処理3の実行
      テスト条件:特になし※
      テスト内容:処理3が実行されていること

※テスト条件は、条件分岐するような場合、その条件は上げられるけど、
  前の処理が完了しているかどうかを、書く・書かないは、仕様書のきめによる。
  ただし、書く場合、処理3でこまる。条件1・2は、やっても、やらなくてもいい?
  結局、この場合、まとめて「特になし」となる。




【C1(分岐網羅)100%でお願いね!】
  一番小さいテスト観点は「条件分岐」。この分岐ごとに、テスト項目を挙げることになる

   テスト項目1
      テスト観点:条件A (はいのとき)※
      テスト条件:条件Aがはい
      テスト内容:条件Aのとき、処理1、処理2が実行され(たのち、処理3が実行され★)ていること

   テスト項目2
      テスト観点:条件A (いいえのとき)※
      テスト条件:条件Aがいいえ
      テスト内容:条件Aがいいえのとき、なにもせず処理3が実行されていること★

※テスト観点として、分岐があがるので、条件Aと書くことはたしかだけど、そこで止めるか、
(はいの場合)、(いいえの場合)などと、条件までかくかは、「きめ」による
★あとの処理を書くかどうかは、仕様書の「きめ」によるけど、書かない場合、テスト項目2のほうは、
 「なにもしない」となってしまい、(まあそれでいいんだけど)、変だから、次の処理を書いてしまうこともある




【C0,C1, 100%でお願いね!】

2つ合わせればいいのか・・・?合わせたのち、順番をいれかえ、それに合わせて採番しなおすと・・・

   テスト項目1
      テスト観点:条件A (はいのとき)※
      テスト条件:条件Aがはい
      テスト内容:条件Aのとき、処理1、処理2が実行され(たのち、処理3が実行され★)ていること

   テスト項目1-1
      テスト観点:処理1の実行
      テスト条件:条件Aが成立
      テスト内容:処理1が実行されていること

   テスト項目1-2
      テスト観点:処理2の実行
      テスト条件:条件Aが成立、処理1が実行※
      テスト内容:処理2が実行されていること

   テスト項目2
      テスト観点:条件A (いいえのとき)※
      テスト条件:条件Aがいいえ
      テスト内容:条件Aがいいえのとき、なにもせず処理3が実行されていること★

   テスト項目3
      テスト観点:処理3の実行
      テスト条件:特になし※
      テスト内容:処理3が実行されていること

学校的には、これでOK
でも、実務的には変。テスト項目1と、テスト項目1-1は、実質的には、
処理1のところに、ブレークポイントを置いて確かめるので、
全く同じテスト項目。なので、

・C1の分岐項目のテスト内容は、
     そこで処理を行っている場合で
     かつ、それがC0のテスト項目に上がって
 いたら、
    C1の項目に、分岐の中で初めに行うC0項目の内容を書き、
    そのC0項目は、合成する際にははずす。

今回の例では、
  C1の分岐=テスト項目1
  分岐の中で初めに行うC0項目=テスト項目1-1
なので、これが、上記の法則で、合成される。こんなかんじ


   テスト項目1
      テスト観点:条件A (はい)&処理1
      テスト条件:条件Aがはい
      テスト内容:条件Aのとき、処理1が実行されること

   テスト項目1-2
      テスト観点:処理2の実行
      テスト条件:条件Aが成立、処理1が実行
      テスト内容:処理2が実行されていること

   テスト項目2
      テスト観点:条件A (いいえのとき)
      テスト条件:条件Aがいいえ
      テスト内容:条件Aがいいえのとき、なにもせず処理3が実行されていること

   テスト項目3
      テスト観点:処理3の実行
      テスト条件:特になし※
      テスト内容:処理3が実行されていること

なお、実際の番号は1-2ではなく、1,2,3,4の通し番号になる。




つまり、合成処理が行われないと、全く同じテストを、テスト担当者は、2回やることになる・・
ってことを、学校では教えていない。
あ、でも2回わざとやることもある。この違いと判断は、別の機会に書きます。

ただし、この合成は、C0,C1の合成より、単体・結合テストでの合成のほうが重要。
それについては、またこんど

それで、C2については、組み合わせということなんだけど、
どのように組み合わせをするかというのは、テストケースの話になってしまい、
テストケースと項目の関係にについても、また今度かく。




  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする