このレポートは8/4に実施した勉強会にて、単体テストについて教えた内容と感想をまとめたものです。
はじめに
仕様書とエビデンス
まず、はじめに仕様書を固めてからエビデンスに移る。
つまり、自分は何を証明すべきか?そのために何をすればよいか?について仕様書でしっかり向き合うことが大切である。
決められたやり方があるわけでなく、自分達でどうすべきか考える点が重要であるが、難しい部分でもある。
証明の仕方
画面コピーやスプレッドシートを活用する(スプレッドシートのやり方はおさらい済)
仕様書の順番
No.1のものが「結果:OK」と証明されたという前提でNo.2のテストに移る。
この場合、項目マッピング(No.3)の段階で結合条件(No.2)は証明済みという前提の元進められている。
そのため、マッピングの段階で結合を再度証明する必要はない。
ここからただテストすべき内容を並べるだけでなく、順序も考慮する必要がある。
仕様書
テストをするにあたって準備すべき内容を纏める段階・
「どの画面の(大項目)」「どの項目について(中項目)」「どうであればテスト成功か(小項目)」「またそのために何をするか(確認手順/想定結果)」、それぞれ分けて考えていく。
ここでまとめた内容に合わせてエビデンス資料の作業に入っていく。
エビデンス(仕入先決定アドオンマスタのエビデンスを見せながら説明)
画面定義
設計書に書いたレイアウトとクエリのレイアウトが一致しているかの証明
結合条件
オブジェクト関連図通りにテーブル同士が結合し、内部結合であれば双方に存在する
レコードのみがクエリに表示されているかを証明する。
内部結合の場合「テーブルAにのみ存在するレコード」「テーブルBにのみ存在するレコード」「AにもBにも存在するレコード」の3つを提示することが重要。
内部結合について簡単におさらい。内部結合について理解がイマイチだなと思った場合には自身で過去の資料やネットから勉強するよう指示。
項目マッピング
設計書の項目定義に沿ってテーブルのデータが正確に抽出されているかを証明。
データの範囲を指定し、同じデータ・同じデータ数で合わせることで元テーブルからクエリにそのまま表示されていることを説明できる。
また、項目定義に関しては、テーブルの項目を項目名(例:MAKTX)で表示させ、クエリはそのまま項目ラベル(例:品目コード)で表示させることで、項目ラベルと項目名が合致している証明になる。
変更方法:設定>グローバルパラメータ>項目ラベル→項目名
テキストテーブル
SQ02よりテキストテーブルの項目が正しいかを確認・証明する。
確認したら、SE16より該当するテーブルに表示されるテキストとクエリ上に表示されるテキストが一致しているかを確認する。
トランザクションコード
SE93にトランザクションコードを入力し、トランザクションコードが間違いないこととシステムバリアントを確認する。
その後実際にSAP Easy Access画面より直接トランザクションコードを入力し正しくクエリ選択画面にまで飛べるかを確認する。
またその際にレイアウトが正しく定義されているかも確認する。
勉強会の感想
設計書の構造について理解していないと単体テストの理解は難しいと思いました。
そのためみんなには設計書を理解することが最優先であり、一旦勉強会の段階では単体テストを100理解するまでいかなくても大丈夫と伝えてあります。
設計書を進めるうちに段々何を言っていたか少しずつ理解できると良いと思っています。
実際作った仕様書とエビデンスは共有しているため、どんな風に作るのか探りながら作業を進めていくのが一番の近道に思いました。
やはりリモートだとどこで躓いているのか、どんな気持ちで聞いているかが対面と比べて分かりづらく心配でした。
途中に質問しても大丈夫だよと言ってみたり、キリの良いところでみんなに質問がないか問いかけてみたりしましたが、やはり対面よりしづらい雰囲気もあったかと思います。
そもそも単体テストは設計書より何が分からないかが分からない状態にもなると思います。
その辺りはそれぞれに仕様書・エビデンスを作らせるタイミングで更に私の方でサポートしていければと思います。
設計書もそうですが、単体テストも資料の作り方よりもまず考え方が重要であると説明しています。
分かりづらい資料だとしても考え方が間違っていないことや、自分なりに証明するためにどうすべきかを考えることに意味があり、単体テストを進めることで逆に設計書の重要さに気付くかと思っています。
そういったメッセージも勉強会内に混ぜましたが、伝わっているといいなと思います。
【総帥コメント】
講師お疲れ様。
まず、設計と実装とテストとのかかわりを最初に示すことで、それぞれの繋がりを理解してもらうことが先決かなという印象。
教える側は、教えられる側のレベルに合わせた伝え方をしなければならないこと、Web勉強会の難しさなんかは感じられたかと思う。
コメント