テストデータ作成
[テストデータ作成法]
[説明書き]
以前、あるプロジェクトで問題を解決するためにアイデアを考えたことがあります。
要件定義ちゃんと書けとか、仕様の整理とかあんまり即効性があるものをわたしは
持っていません。その中でも比較的即効性があるのがテストデータを工夫することだと
思います。読んでみれば当たり前のことばかりかもしれませんがまとめて電子に媒体になった状態はそれなりに価値があると思います。伝統的なSier以外の新しい会社なんかでは
それなりに価値があると思います。
[概要]
・単純な境界条件-最大値、最小値、1つ違いの境界値-を全てテストする。
・複合境界条件をテストする。つまり変数に小さすぎる値や大きすぎる値が
代入されるような入力データの組み合わせをテストする。
・データの種類が正しいかどうかのテストケースを作成したか。例えば、給与計算
プログラムの従業員数が負数の場合などをテストする。
・代表的な値-中間的な値-をテストする。
・JUNITでカバレッジ100%を目指してテストする。ステートメントと分岐をきちんと網羅すれば100には相当近くなります。意外と100は難しいのでどこがテストできてないかを把握して妥協することも必要かと思います。
[エラーがでやすいデータ例]
ほんの数例ですがあげておきます。閏日はテストケースで作成した経験がありますが
これをやったからといって今のシステムでエラーがでるわけではないですが注意深くみるようにはなるようです。実際に銀行システムでジーナがテストケースを出しましたがお客さん
にあたる業務の人は興味ないみたいでした。
ソフトウェアテスト入門 押さえておきたい<要点・重点>
78ページ参照
ソフトウェアテスト PRESS編集部
技術評論社
文字列の場合
ゼロ・NULL系→NULL 空文字 スペース 全角/半角
数値の場合
ゼロ・NULL系→0
制限値→言語仕様上の上限、下限およびその前後
日付の場合
閏日 2008/2/29
存在しない日付 2009/2/29
業務上の特殊日 年末年始/月末・月初
[データ作成例 半角数字11桁までOKの例]
OKパターン
1
12
123
1234
12345
123456
1234567
12345678
123456789
1234567890
12345678901
NGパターン
123456789012
[データ作成例]
会員IDとして「6文字以上かつ10文字以下の半角英数字」
でならないとした場合のデータ例 10バイトで出来る限り作っています。
全角数字が混じっている場合 NG
123456780
半角数字 OK
1234567890
半角かつ英数字以外 NG
123456789カ
半角で英小文字 OK
abcdefghij
半角で英大文字 OK
ABCDEFGHIJ
全角で英小文字 NG
abcde
全角で英小文字 NG
ABCDE
全角で英数字以外 NG
12345678漢
[編集後記]
課長さんたちへ
プロジェクトって大体わけのわからないエラーでつぶれていくみたいですね。
そういうときに単体やり直しができればいいですができない場合も
あってそういうときに今だったら何か言えるような気がします。
★もしやってないようだったらセキュリティテストもやるかやらないかでプロジェクト
救えるか救えないかぐらい違います。SQLコマンドを入力欄に埋め込んだりとかUNIXを
入力欄に埋め込んだりとかそういうやりかたですけど、いけてない箇所があぶりだされる
可能性は経験的にあると思います。横断的に画面をたたく人っていないんで結合テストで
発見できなかったことが発見出来たりします。
セキュリティやってて面白かったのは性能も3多重・5多重やると変なエラーがでてきてくれ
たことです。
参考リンク セキュリティチェックについての説明
https://qiita.com/Tsutou/items/4fd498f8ab2638bd5650?utm_content=bufferc639e&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer
参考リンク 脆弱性診断ツールについて
https://qiita.com/tamura__246/items/9c70ddc1c03cf623cf8d
★
えてして生のデータいきなりとか
ものすごいものでがって流してとかやりがちですが
ある程度範囲をしぼって
単体チックにテストしてみるとか
設計書をもとに(設計書ないなら自作して)テストデータ作ってテストしてみるとか、
設計書もとにデータ作ってテストしてエラー出して
プログラマーさんに説明して直してもらうっていうのが・・・・
ジーナのキラースキルの一つです。
ちなみにテストだけではわたしは自分のスキル売りません。
その他
JunitよりSpockとか他のものも試してみるのもいいかも・・・
##
便利な情報が載っているらしい。
https://www.ipa.go.jp/security/vuln/websecurity.html