テスト項目運用システムで比較的簡単にできるカスタマイズを紹介します。
ただし、なかにはデータベースを熟知している人向けの内容も含まれています。
ここで編集対象となっている lib/ti_local.inc などのPHPスクリプトはUTF-8です。Windowsの場合、メモ帳では編集できません。UTF-8対応のテキストエディタ(TeraPadなど)を用意してください。
PostgreSQLとの接続情報は次の場所に定義されています。
lib/ti_local.inc の $c_dsnary
ここを編集することで、テスト用DBにつなぎ変えたり、別ホストのDBにつないだり
(※)できると思います。
ただ、このファイルはその気になればWebブラウザから普通に見えてしまう場所に配置されています。つまり、パスワードなどを記入すれば見られてしまう危険性があります。これがマズイ場合には、./libを見えない場所に配置替えするなどの対処をしてください。./libのパスは.htaccess又はphp.iniの中で定義されているのでこれも変更する必要があります。
※: |
PostgreSQLのデフォルトの設定では、外部からの接続ができなくなっていますし、認証方法なども変更する必要あるかもしれません。そのためには、pg_hba.conf,postgres.conf,起動オプションなど複数箇所を適切に編集する必要があります。長くなるので詳細は割愛させていただきます。 |
本システムではDBのデータを更新・削除すると以前の情報は失われてしまいます。これは、システムとしての単純化とレスポンス性能を重視しての仕様です。ですが、トレーサビリティを重視される人からすると、これは許せない欠点かもしれません。
そこで、取りあえずの対処として、ログテーブルとトリガを作成するSQLを用意しています。このSQLでDBに変更を加えることで、重要なDBテーブルへの更新・削除を行った時に変更前データをログテーブルに残すようになります。ただし、次の点に留意してください。
- レスポンスが低下します
- 消費するディスク容量が増大します
- 現版においてログテーブルの内容を参照したりする機能はありません
- 誰が変更したかの情報は残りません
どうしても過去のデータが必要であるといった状況になった時のための保険程度だと思ってください。現時点ではログを使用する機能を実装する予定はありません(私自信はいままでテスト工程におけるログ情報の必要性を感じたことが無いもので。強い要望があれば検討します。)
以下の手順でSQLを実行します。操作例はWindowsでIISの場合のものです。
- コマンド プロンプト を起動
- tisystem\setup\extendフォルダに移動します。
cd \inetpub\wwwroot\tisystem\setup\extend
- 権限付与用のSQLを作成します
\php\php Gr_tilog.php
- psqlを使用して Cr_tilog.sql, Cr_tilog_trg.sql, Gr_tilog.sql の順に実行します。
psql -U postgres -f Cr_tilog.sql -d pgti -h localhost
psql -U postgres -f Cr_tilog_trg.sql -d pgti -h localhost
psql -U postgres -f Gr_tilog.sql -d pgti -h localhost
本システムがサーバのディスクを消費するのは、PostgreSQLのDBの他に「添付資料」があります。
添付資料を多用する場合、ディスク容量やパフォーマンスの観点から格納先を変えたい場合もあるかと思います。その場合には次の場所を変更してください。
lib/ti_local.inc の $c_attach
このディレクトリは、Webサーバから書き込み可能なように設定されている必要があります。
重要度・障害種別のセレクトボックスに表示される内容は、次の場所に連想配列で定義されています。
lib/ti_local.inc の $c_iary, $c_kary
名称を変えたいだけなら、ここの文字列を変更すればよいです。
項目を追加したい場合は注意が必要です。基本的には、数値と文字列が重複しないように追加します。「障害種別」に関してはそれだけで問題ないと思います。しかし、「重要度」は数値の大小が重要度の大小を示します。しかも、数値が0や1からの連番で振られてしまっているので間に挿入するということができなくなっています。
それでも運用開始前なら数値を変えてしまえば問題ないのですが、運用開始後であれば数値は既にDBに記録されているのでそれもできません。
どうしてもという場合はDBを直接変更するなどの作業が必要になります。以下にDBの該当テーブルとカラム名を記載しておきます。
重要度:titem.nimp, tbug.nimp_b
SQLのUPDATE文とかで一括変更する場合は順番に気をつけて下さい。小さい数値から変更したりすると情報が失われてしまうかもしれません。バックアップを取ってから行うことをお勧めします。
難易度のセレクトボックスに表示される内容は、次の場所に2つの連想配列で定義されています。
lib/ti_local.inc の $c_dary, $c_dwary
名称を変えたいだけなら、$c_daryの文字列を変更すればよいです。
項目を追加したい場合は名前と数値が重複しないように追加します。数値の大小は意識する必要はありません。
難易度は、「分析」画面の「難易度加味」で重み付けに使用されます。この重みは$c_dwaryにに定義されていますので、$c_daryに追加した場合には必ずこちらにも追加する必要があります。
重み付けの値を変えたい場合には$c_dwaryの右辺の値を変更します。初期値は旧版との互換のため控えめな数値になってます。変更して運用されることをお勧めします。運用中に変更しても問題ありません。
分析機能で表示される実績カレンダーやそのデータを元に作成される信頼度成長曲線などのグラフは「実施項目数」と「障害数」を使用します。ですが、『障害票は発行されたが実は障害ではなかった』というケースは結構あります。特に本システムではチームリーダとかの承認無しにどんどん障害票を発行することになりますので重複や誤認による障害票が無視できない数で発生する可能性があります。
そこで、特定の障害種別で回答された障害は実績カレンダーでカウントしないように設定できるようになっています。初期値では「仕様変更」「使用ミス・誤解」「同件」が対象となっています。変更したい場合には次の場所を編集してください。
lib/ti_local.inc の $c_kary_non
V0.4から実施日を保存するテーブル列をDATE型からTIMESTAMP型に変更しています。つまり、時刻情報も保存されます。
これに伴い、次の機能毎に実施日の表示フォーマットを指定できるようになっています。
- 実施画面(一覧型)
- 実施画面(カード型)
- ファイル出力(項目)
変更したい場合には次の場所を編集してください。
lib/ti_local.inc の $c_dexec_lst $c_dexec_card $c_exec_csv
書式はPostgreSQLのto_char()関数のものになります。
□スタイルシートの編集
tistyle.cssはスタイルシートです。これを編集することで見栄えを変更することがある程度可能です。
見やすい、使いやすい、美しいスタイルシートができたら私にください。Webページで公開させていただきたいと思います。
V0.4.1で分析画面をブラウザで印刷したとき、A4縦に収まるように調整しました。
分析画面は、進捗が進むほど「実績カレンダー」の占める割合が極端に増えてきます。この情報がいらない人にとっては、印刷するとき邪魔に感じるかもしれません(普通はグラフで見るでしょうし)。
印刷用のスタイルシート(tiprint.css)を編集することで、実績カレンダーを印刷の対象外にすることができます。
tiprint.cssの末尾の方にコメント化してありますので、それを解除すればいよいです。
実施及び作成画面には「分類01」による絞込み機能があります。
分類の階層を深く取っている場合には、第1階層の絞込みだけでは不足であると思われている方もいるかもしれません。そこで、全階層の任意の分類で絞り込めるようにカスタマイズする手段を用意してあります。
具体的には、次の2箇所を変更します。
- ti_run_item_ctrl.php の 233行目あたり
- ti_mak_item_btns.php の 154行目あたり
変更方法はコメントに書かれていますのでそれを参照してください。
なお、このカスタマイズを行った版での動作確認は十分には行っていません。作者の予期していない問題が発生する可能性が高いです。また、このカスタマイズを行うと、「分類01」のコンボボックスが長くなって画面を崩してしまいかえって扱い辛くなるかもしれません(初期状態で「分類01」に限定しているのはこのためです)。これを回避するために画面レイアウトを変更することはかまいません。
『テストの「実施」だけができて、「作成」を行えない権限レベルが欲しい』との要望をいただきました。
ですが、私は『テストを行う人がテストの品質に責任を持つ。よって、テスト項目の追加・修正はテスト実施者が随時行う。』という考えでいます。プログラマーが自分の作成したソースに責任を持つのと同じですね。
よって、今のところこの権限レベルをデフォルトで追加するつもりはありません。ただ、それでは困るという方のために権限レベルを追加する方法を示しておきます。
1.権限レベルの追加
権限レベルは、次の2つの連想配列で定義されています。
lib/ti_local.inc の $c_permary, $c_aary
$c_permaryに追加します。上記のような権限レベルを追加するのであれば例えば次のようにします。
$c_permary = array(
"limited" => 0, ← この行を追加
"tester" => 1,
"leader" => 3,
# "pm" => 7,
# "top" => 15,
"admin" => 31
);
追加した権限レベルに$c_aaryで名前を付けます。例えば次のようになります。
$c_aary = array(
"limited" => "実施専任", ← この行を追加
"tester" => "一般",
"leader" => "リーダ",
# "pm" => "マネージャ",
# "top" => "管理職",
"admin" => "管理者"
);
2.ページの表示制限追加
テスト項目運用システムの各ページ(.phpファイル)には開ける権限レベルが指定されています(だれでも操作可能なページにはありません)。よって、追加した権限レベルに操作させたくないページにこの設定を追加することで対処します。
たとえば、作成を許したくないのであれば次のページを編集します。
ti_mak_item.php
ti_mak_item_ctrl.php
ti_mak_item_ctrl_act.php
ti_mak_item_btns.php
ti_mak_item_view.php
ti_use_tool_find2_lump.php
ti_use_tool_find2_lump_act.php
具体的には、各ページの7行目あたりで呼ばれているpage_open()の直後で$perm->check()を呼び出します。
include("ti_prepend.inc");
page_open(array("sess"=>"Ti_Session",
"auth"=>"Ti_Auth",
"perm"=>"Ti_Perm"));
$perm->check("tester"); ← この行を追加
これでとりあえず操作できる機能を制限させることができます。
実は、V0.5では2.の部分は対応済みです。また、[作成]ボタンなどが表示されないようにも対処しています。よって、1.の変更を行うだけで「実施専任」レベルが実現できます。ただし、この権限レベルでのテストはあまり行っていません。
当然ですが、版数アップとかで上書き更新するとここでの変更内容は失われます。変更を再現できるように記録を残しておかれることをお勧めします。
テスト項目運用システムは基本的に、障害修正以外でコードを変更することを許していません。ですが、ここに書かれているような、「機能を追加するのではなく、実務に合うように調整する」ことはかまいません。また、「見た目を変える」(tistyle.cssの変更や、width属性の変更など)のもOKです。でも、できれば「ここがこういう理由で気に入らないのでこのように変えた」ということを教えていただけるとありがたいです。今後の参考になりますので。