lycheejam's tech log

チラ裏のメモ帳 | プログラミングは苦手、インフラが得意なつもり。

テストについて調べてみる

テスト仕様書の書き方わからなーい

正確には単体テスト仕様書

テスト仕様書も入社してからそれなりに書いてはいて、でも結合テストだったり
社内用に作ったツールのテストだったりで

お客様に提供するように作成したツールなんで今回ばかりは気が抜けない
たぶんあってるけど100%自信はないわくらいの規模感のものをちまちま作った。
※調べても全然理解できなかったので近いうちに追記します。

ざっくりテストの段階

調べてみると機能ごとだったりモジュールごとだったりって書き方がバラバラだけれど
メソッドごと、とかサブルーチンごとって解釈であってます?

機能を組み合わせて仕様書通りの処理が成されるか(?)
テストデータを使って境界値のテストとかもここですよね?

実際の操作を想定したり負荷をかけたり


いざ言葉にしてみようとすると難しいし自信がなくてキーボードを触る手が進まない


単体テストの観点

とりあえずググった結果がこれ

テストの種類と技法 - Qiita

単体テスト
 単体テストとは,クラスや関数といった単位のプログラムのテストになります,
主に設計通りにこれらが動くかをテストし,論理構造が適切かを確認します.

機能確認テスト
1つのモジュールが設計書や仕様書通りに動作することを確認するテスト
制御フローテスト
プログラムの論理構造に沿って,「命令」や「分岐」などが実行されるかを確認するテスト
データフローテスト
データや変数が「定義」「使用」「消滅」の順に行われているかを確認するテスト

例えば誕生日を引数として渡したら現在の年齢を返すFunctionを作成したとして
引数が正しい場合、正しくない場合、指定のフォーマットに変換する文字列操作
今 - 誕生日の計算とかあるわけで

このFunctionの中にある変数の値の変化もテスト仕様書に書いて
この場合にこの値になっていることみたいな感じで書いていけばいいの?

また、全然別のFunctionで変数が初期化されてるとき
変数〇〇が初期値△で初期化されていることみたいなこともガンガン書けばいいんですか?
初期値って大事だよね?VBAだとエクセルのセルがずれてしまうわけだから

今日1日書いていたけどテスト項目が足りてるのか足りてないのか
結合テストに踏み込んでないのかとかいろいろわからなくてつらみが深かった。

結合テスト

//あとで書くと言うか単体テストも理解できてないのに書けない

全部に共通して

前に放送大学の面接授業の要求工学について記事を書いた
kitigai.hatenablog.com
要件定義において「曖昧さ」を極限まで減らす事が基本?大事?みたいなことを言っていた
その過程で自然言語で記述されたものに完璧なものは存在しないって話もあった

テスト書いててもそうだけど日本語の使い方に気を付けなければ

  • 〇〇であること
  • △△の場合〇〇であること

なんか具体的な例が出てこないけれど
自分でテストするくせに作っていた時と違う想定のことをしてしまうかもしれないので
極力、間違いの起こらないテスト仕様書を目指したい。

雑感

本当にわからなくて教育担当の先輩に質問したんだけど
どこまで書くかの境界も人によってそれぞれだし
単体と結合の境界線も人によって変わってくるよねって苦笑いされて
お茶を濁されてしまった

全然解決してませんがな!!!!

しばらく苦しめられそう
SQLは会社で仕事がてらだいぶ勉強できたので忘れないうちにちまちま記事にしていく