□工程
詳細設計から単体テスト実行までを行った。
詳細設計
設計レビュー
製造
コードレビュー
単体テスト仕様書作成
単体テスト仕様書レビュー
単体テスト実行
結合テスト
品質評価
□受託プロジェクトの感想。
余裕のないスケジュールであり、これに起因する問題が多く生じた。
スケジュール優先(特に初期の行程)のため、単体テストが結果的に手薄になった。
単体テスト実行する時間より単体テスト仕様書を作成する時間の方が圧倒的に長くかかった。
時間的な余裕がないため各工程で時間が不足していた。
タスク内容と担当者のスキルの理解が不十分だったため、見積もりが不適切だった。
このため、各工程の品質が低下した。
担当者(私)のスキル(経験不足)が低かった(これ重要!)。
少ないリソースで開発したため、各工程を同一人物で行うケースが多かった。
たとえば、単体テストを製造担当者が行った。
単体テストの書き方チュートリアルがなかった。
未経験なので困った!
単体テストにエビデンスが存在しなかった。
担当者任せ。単体テストレビューがない。
詳細設計のレビューが、仕様のレビューになっていなかった。
実装時に再確認が必要になった。
品質評価で不具合の分析を行い、その結果として単体テスト仕様書を修正した。
何のために?
解決しようとしているのが、今の問題か未来の問題かが不明。
品質レポート作成に2日費やすくらいなら製造・テストに2日費やす方が良いですよね。きっと品質も高くなるに違いない。
□問題点
・属人性
単体テストが担当者まかせになっている点。レビューがない。
・プロジェクト管理
タスクとリソースを理解し適切なスケジュールを設定していない。
初期段階ではある程度セレクトするが途中でリソースを獲得するのは難しい。
・無意味なドキュメントをなくす
品質管理に必要な項目かどうか考える
だだし、これはお客様の都合(要件)に依存する。
□問題分析
詳細設計者と製造担当者が同一人物のケース
メリット
仕様がわかっているので製造時間が短くてすむ
デメリット
仕様のチェックは緩い
詳細設計者と製造担当者が別人のケース
メリット
仕様のチェックは緩い
デメリット
仕様がわかっているので製造時間が短くてすむ
□単体テストの書き方
機能単位ごとに記載する
起こりえるケースを列挙する(MECE)。
分岐(if、switch文)
境界値チェック
同値地チェック
□参考資料
・単体テストにおけるCMM的アプローチ
http://www.juse.or.jp/software/pdf/20_spc/8/7_b_report.pdf
単体テストにおける属人性をテーマとしている。良い分析だが、組織で受け入れられるかどうかが問題。プロジェクトが失敗した場合に、責任を明らかにする必要がある場合どのようにするのか?
・ソフトウエアテストに求められている役割と課題
第6回システム検証セミナー 2006.9.8
http://www.veriserve.co.jp/jp/seminer/seminer_list/pdf/06.09.08_katayama.pdf
・短期・高品質に向けた単体テスト作業プロセスの改善
http://www.jasst.jp/archives/jasst07e/pdf/A3-1.pdf
確かに、テスト仕様書とJUnitのテストケースが連動するのがベストだが、運用できるのだろうか?
・現場ですぐ使えるソフトウエアテストツール
http://www.jasst.jp/archives/jasst11t/pdf/s1.pdf
便利なツールが無料で使えるが、ツールを使うことが目的にならないように注意する必要がある。たとえば、カバレッジを100%にするために、テストケースを増やすのはナンセンス。
Excelでデータベースの取り込みやのデータ取得/更新するなら、ExcelDBToolをお勧めします。
ReplyDeleteテーブルのデータをエクセルに取得、更新、削除することだけではなく、複数のSQLを実行して、結果を
一括Excelの各シートに出力することもできます。
http://www.superdbtool.com
ベクターからもダウンロードできます。
Oracle,SQL Server,DB2,Sybase,MySQL,Postgre,Sqlite対応。
使い方動画:
http://superdbtool.com/blog/basic-guide
またExcelDBToolを使って、本番擬似ランダムテストデータを一括作成することは非常に簡単です。
是非お試しください。
作成できるダミーデータ種類(69種類):
郵便番号, 都道府県, 企業名, 市区,町村,最寄駅,最寄駅ふりがな,路線,銀行コード, 銀行名, 銀行カタカナ, 支店コード, 支店名, 支店カタカナ,E-Mail, URL, 携帯, 苗字のみ, 氏名, 住所, 住所ふりがな,性別, 年齢, 血液型, 固定電話, 婚姻, ふりがな, 大学名,身長,体重固定値,国籍,国籍英語,国籍英語略,クレジットカード会社,クレジットカード番号,有効期限,IPアドレス,業種大分類,業種大分類名称,業種中分類,業種中分類名称,業種小分類,業種小分類名称,職種大分類,職種大分類名称,職種中分類,職種中分類名称,職種小分類,職種小分類名称,数値連番,整数・小数点数,英数混在,文字列+連番,文字列+全角連番全角漢字,ひらがな,全角カタカナ,半角カタカナ,全角英数,全角数値,全角英字,全半混在日付,時間,タイムスタンプ,特殊文字
Oracle,SQL Server,DB2,Sybase,MySQL,Postgre,Sqliteもご利用できます。