テスト工程の管理をするツール、TestLinkについて

# よくあるテスト工程
よくあるテスト工程を思い出してください。

・テスト設計者は要件定義に合わせて、テスト仕様書を記載する。
・リーダはテスト仕様書をレビューしながら今回のリリースではどこをテストするかを決定し、誰にテストをさせるかを決定する。
・テスターはテスト仕様書に応じてテストを実施する。この際、様々なプラットフォーム（例：Chrome,IE,FireFox等)で同じテスト仕様書を元にテストする場合もある。
・テスト中は常に実行できるわけでなく、テストが失敗することもあるし、別のテストがNGのせいでテストが行えない場合もある。
・リーダーはその間、テストの進捗状況を確認する。
・おっと不具合修正により新しいリリースがされた。どれをテストし直すか判断する必要がある。もしかするとテスト仕様書自体を直す必要があるかもしれない。

我々はこれらの複雑な工程をどう対応していたか思い出してみましょう。

・テスト仕様書の版の管理を適切におこなえていたか。
・今回の仕事において、どのテストを行うべきか明確に定義されていたか
・テスト実施状況をモニタリングできて、進捗が簡単に把握できたか。
・複数のプラットフォームにまたがる場合、どのテストにおいてどのプラットフォームを行うことは明確になっているか
・テスト期間中に複数のリリースが発生した場合（そしてそれは必ず発生する）、どのテストがどのリリース物との関連付けは行われていたか。


おそらくExcelでテスト仕様書を記載していた場合、秩序だった管理は困難であったと思います。（あるいはそもそも管理していない）
この記事ではTestLinkというテスト管理ツールを用いることで、これらの問題に対応する方法について記載します。

# TestLinkができること
TestLinkではテスト工程の管理をWebで一括で行う以下の機能を提供します。

- テスト仕様書を記載しデータベースに記録できます
    - 記載したテスト仕様書は版管理され変更点を追うことが可能です。
- テスト計画は作成したテスト仕様書をどのように実行するかの情報を入力します
    - リリースされたテスト対象を「ビルド」として管理します
    - テスト対象のOSやブラウザなどを「プラットフォーム」として管理します
    - 誰が、どのテスト仕様書をテストするか管理します
- テスト実行の結果を記録できます
    - 成功、失敗を記録します。
    - バグトラッキングシステムと連携することも可能です
    - 管理者は現在、どの程度テストが完了しているかの集計を容易におこなえます。
- 外部APIを使用することができます
- オープンソースで開発されており、導入コストは学習コストだけとなります
   

# TestLinkの環境作成
VMWareやVirtualBoxで仮想環境を作成するのが一番はやいと思います。
ここではVirtualBoxを使用した環境構築の例を紹介します。

1.　TestLinkのイメージをbitnamiからダウンロードする。
下記のURLからTestlinkが動作する環境を一式をダウンロードすることが可能です。

https://bitnami.com/stack/testlink/virtual-machine

![testlink001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/ae024b25-aa46-392e-6925-53436ccb5198.png)

コミュニティーに勧誘されますが、さっさと進めたい人は感謝をしつつ「No thanks, just take me to the download」をクリックします。

![testlink002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/682c9f86-8581-d1fe-ed76-4c106fc263e5.png)
※600MBくらいあるので、コーヒーでも淹れながら待ちましょう。

2. VirtualBoxにインポートする
まずVirtualBoxを起動して「ファイル」→「仮想アプライアンスのインポート」を選択します。

![testlink003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/9613f281-fb1c-d28d-8cfa-6365538e0a49.png)

ダウンロードしたファイルパスを入力後、「次へ」を押下します。
![testlink004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/428308e7-7128-a256-26eb-4207a8d0ebbf.png)

必要に応じて仮想環境の設定を変更して「インポート」を押下します。今回は何も変更してません。
![testlink005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/050f690f-775f-b156-4d7f-fd40287507d5.png)
※2、3分かかるので、緑茶でも淹れながら待ちましょう。

bitnami-testlinkが作成されたら仮想環境の構築は終了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/ee23b3b6-9bcd-b02a-9016-2efd2e8c5637.png)


３.VirtualBoxの初回起動
VirtualBoxで作成した仮想環境を起動すると以下のような画面が表示されます。
![testlink007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/bdda0586-53bf-173a-6c76-b131fb31c49e.png)
①TestLinkにアクセスする際に使用するIPアドレスです。控えておきましょう。
②TestLinkにログインする際にするユーザアカウントとパスワードです。控えておきましょう。
③SSH、SFTP、SCPで使用するユーザアカウントとパスワードです。

なお「debian login：」に③のユーザ名とパスワードを入力してログインが可能です。この際に初期パスワードの変更を求められますが、Enterキーを押下することでスキップできます。

４．TestLinkのアクセスとパスワード変更
ホストコンピュータのブラウザで「http://①のIP」を指定することで下記の画面が表示されます。
ここでユーザ名とパスワードに②に記載されているものを入力して「Log in」を実行してください。
![testlink008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/4feb6cd3-45d0-5030-6b23-d5f1f5985dbe.png)

プロジェクト作成画面が表示されますが、アメリカ語は辛いのでまず、日本語化します。画面上部の「My Settings」アイコンを押下してください。

![testlink009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/40d32e4f-dc21-5b7e-82d7-2b06076f18b2.png)

Account Setting画面が表示されるのでLocaleで「Japanese」を選択後、「Save」ボタンを押下します。

![testlink010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/69d528e7-ea07-8371-cfa5-8f9868c381ca.png)

すると日本語が表示されるようになります。
![testlink011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/03a810ac-7182-bcbf-818f-dd49c767414d.png)

## 仮想環境の説明と設定
上記の手順で最低限、TestLinkを試す手順はできました。
しかしながら、現状のままだと色々使いづらいので仮想環境の設定を行います。TestLinkをお試しで動かすのが目的であれば、この項目は読み飛ばしてください。

### 再起動とシャットダウンの方法
以下のコマンドで再起動とシャットダウンが行えます。

```shell:再起動
sudo reboot
```

```shell:シャットダウン
sudo poweroff
```

### SSHを有効にする
現状でもコマンドライン操作が行えますが、スクロールができなかったりキーボードが英語配列だったりして辛いのでTeraTermでつなげるようにします。
初期状態ではSSHサーバーは使用できなくなっており、TeraTermでつなげようとすると「Connection refused」となります。

そこで、下記のページを参考にSSHを有効にします。
https://docs.bitnami.com/virtual-machine/faq/get-started/enable-ssh/

![testlink012.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/615cc28e-9931-3afb-3732-4efd14bd1634.png)

```text
sudo rm -f /etc/ssh/sshd_not_to_be_run
sudo systemctl enable ssh
sudo systemctl start ssh
```

なお、英語配列のキーボードなので「_」は「-」＋「SHIFT」キーを入力してください。ホストコンピュータに制御を戻す場合は右の「CTRL」キーまたはCTRL+ALT+DELを押します。

あとはTeraTermからSSHでログインできるようになります。この際のユーザーは「bitnami」です。

## IPアドレスの固定化
現状のままだと仮想環境を起動するたびにIPが変わるのでサーバーとして使うのは辛いです。
そのため、以下を参考にIPアドレスを固定化します。

https://docs.bitnami.com/virtual-machine/faq/configuration/configure-static-address/


・まず以下のコマンドを実行してインターフェイス名「enXXXX」を取得します。

```
sudo ifconfig
````

![testlink013.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/1756815c-d256-842a-1a51-9b2dab02fc88.png)

・/etc/systemd/networkにネットワークの設定ファイル25-wired.networkを作成します。

```
cd /etc/systemd/network
sudo cp 99-dhcp.network 25-wired.network
sudo vi 25-wired.network
```

・25-wired.networkを以下のように設定します。
![testlink014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/014a433d-3927-27b7-c3eb-1e49763b5706.png)

・ファイルを保存後、再起動を行います。再起動後のIPが変更されていることが確認できます。
![testlink015.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/d10fa7d6-586b-2d99-ce26-979fb1b39989.png)

以降、ブラウザからも変更したIPで接続できます。

## データベースの接続
TestLinkを使用していると、直接DBを操作したくなる場合が稀によくあります。
データベースはmysqlを使用しており以下のコマンドで接続できます。

```
mysql -u root -p②のパスワード
```

以下のコマンドでパスワードを変更しておいた方がいいでしょう。

```
set PASSWORD='パスワード';
```

なお実際にTestLinkが使用しているデータベース名やユーザ名、パスワードは以下のコマンドで確認できます。

```
bitnami@debian:~$ more /home/bitnami/apps/testlink/htdocs/config_db.inc.php
<?php
define('DB_TYPE', 'mysql');
define('DB_USER', 'bn_testlink');
define('DB_PASS', '0016b0b6c7');
define('DB_HOST', 'localhost:3306');
define('DB_NAME', 'bitnami_testlink');
bitnami@debian:~$
```


# ケーススタディ
簡単なケーススタディを以下に紹介します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/f1441011-6fc4-1bbd-1a09-b70a50962deb.png)

・管理者はテストプロジェクトを作成します。テストプロジェクトにはテストケース、要件、および、キーワード済みのテスト仕様が含まれます。

・管理者はユーザの追加を行います。ユーザには様々な役割が存在しており、追加時にデフォルトの役割を指定できます。

|役割 |説明 |
|:----|:---|
|admin|すべての操作が行える管理者権限です|
|leader|テストリーダに与える権限です。テスト計画の作成/編集、ビルドの作成/編集、役割の割り当て、テストケースのバージョンの凍結、キーワードの管理、テスト消化の確認等が行えます。|
|test designer|テスト設計者に与える権限です。テストケースの参照、作成、編集、キーワード管理が行えます|
|tester|テスターに与える権限です。テストケースの参照と実行並びにテスト消化の確認が行えます|
|senior tester|上級のテスターに与える権限です。テスターの権限に加えてテストケースの作成と編集を行えます|
|guest|ゲスト用の役割で、テストケースの参照とテスト消化の確認が行えます|

・リーダはそれぞれのテストプロジェクトで、各ユーザにどのような権限を与えるかを設定できます。

・テスト設計者はテストケースを作成します。テストケースはステップを介してテスト作業と予想される結果について記載できます。また、テストケースをまとめたテストスイートの作成をおこないテスト仕様を論理的に細分化します。

・リーダはテスト計画を作成します。テスト計画は現在のテストプロジェクトのテストケースで構成されます。またテスト計画にはビルド／リリース、ユーザ割り当て、およびテスト結果が含まれます。

・テスターはリーダの作成したテスト計画にそって、自分に割り当てられたテストを実施し、その結果を記録します。

・テスト中にテストケースが誤っていることに気づいた場合、テスト設計者はテストケースを修正することができます。

・リーダはテストの消化率の確認が行えます。

## テストプロジェクトの追加
「admin」権限を持つ管理者ユーザはテストプロジェクトの追加を行えます。

１．「admin」権限を持つユーザがログイン後に表示されるメインページの「テストプロジェクトの管理」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/35f1fbb7-9590-cee5-5ca4-62609b617682.png)

２．テストプロジェクトの管理画面で「作成」ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/6b9f0c71-af58-d52e-24c8-d1fdb857f81b.png)

３．テストプロジェクト新規作成画面で項目を入力して作成を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/41a54678-fb51-a275-9def-5fdd3dcd07d2.png)

|項目|説明|
|:--|:---|
|既存のテストプロジェクトをコピー|既存のテストプロジェクトをコピーして新規プロジェクトを作成するか否かを設定できる|
|名前|テストプロジェクトの名称を入力する。必須項目|
|テストケースIDのプレフィックス|テストケースに付与されるテストプロジェクト間で一意の接頭語を付与する。必須項目|
|備考|テストプロジェクトについての説明を記載する|
|その他の機能|要件管理機能、テスト優先度機能、自動テスト機能、機器機能の使用の有無を設定する|
|課題追跡システムとの連携|Redmineなどの課題管理システムと連携するかを指定する|
|Code Tracker Integration|BitBucketのようなコード管理機能と連携するかを指定できるが、実験的機能|
|有用性|テストプロジェクトの有効と公開を指定できる。基本的にテストプロジェクトは削除しないで有効のチェックを外すことで使用できないようにしたほうが望ましい|

なお、「admin」権限がログインした際にテストプロジェクトが１つも存在しない場合は、テストプロジェクト新規作成画面に遷移します。

## ユーザの追加
管理者権限でログイン後、ホームでの「ユーザの管理」アイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/f27f9a09-5ab8-8479-bffc-12a6943f77e1.png)

ユーザの管理画面が開いたあとに「作成」を行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/e1c36aa0-4baf-4a04-f17f-cfe17148d344.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/42f86616-4e8f-7ed3-cd5c-bb226d8a7590.png)
項目を入力して保存をすることでユーザを追加できます。
役割はデフォルトの役割になるので、とりあえずゲストとして追加しておき、後述のユーザの役割の割り当てで変更するといいでしょう。

ユーザの画面ではユーザの削除や編集も行えますが、基本的に削除は使用せずにユーザの編集から有効を無効にすることで対応しましょう。

## テストプロジェクトにユーザの役割の割り当て
各テストプロジェクトにユーザの役割の割り当てを行います。
管理者またはリーダでログインした場合に表示される「役割の割り当て」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/e9ebf8ef-a4a2-5e3f-43e4-dd2d6f804710.png)

役割管理画面で「テストプロジェクト」を選択後、それぞれのユーザにたいする役割を指定して「実行」ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/45888e37-74cd-1d67-18c3-04ac36e3a839.png)

## テストケースの作成
テスト設計者でログインしたあとに、テストケースを作成したいテストプロジェクトを選択し、「テストケースの編集」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/f28b7f87-0b07-3df4-c4a8-7bce50640ca7.png)

テスト仕様の画面が開くので「データ操作」アイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/1650e20f-e7c2-0335-aa46-baa97cb8aa91.png)

表示された「テストスィートの作成」アイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/167a1e1c-3584-c21d-d06b-5c352964212c.png)

テストスィート名と詳細を入力して「保存」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/13d14c99-876a-e037-f34f-ce3fd9aeb25d.png)

テスト仕様書のナビゲータのツリーにテストスィートが追加されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/323fdbc8-5faf-aaba-99af-70734fe07c5e.png)

テストケースを追加したいテストスィートをツリー上から選択後、「データ操作」アイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/0021536c-7d01-92cb-12f5-3185072c21d4.png)

表示された「テストケースを作成」アイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/1f86eb21-d57a-ed07-105a-3ce058db3678.png)

テストケースの情報を記載し、「作成」ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/bab58bbc-89c5-5365-9df3-655e0f6bb270.png)
ステータスはテストケースの状態を表し、下記のいずれかになります。
・ドラフト
・レビュー待ち
・レビュー中
・やり直し
・廃止
・先送り
・完了
テストケースのレビューを行う場合は、このステータスを用いるといいでしょう。
なお、テスト実行計画でテストケースを追加する場合「廃止」と「先送り」のケースについては追加が行えません。

ツリーにテストケースが追加されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/2b96025f-ec07-ab5c-a25d-ecd49f2ae634.png)

テストのステップを追加する必要がある場合は、テストケースを選択後、「ステップ追加」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/ce579368-8079-1a87-0b04-de50f1e56b6d.png)

ステップ追加画面が開くので「ステップ」と「期待値」を入力後、「保存」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/3c705465-364d-b5f2-9aef-17a55963289f.png)

同様の作業を繰り返していきます。「保存して終了」を押下するとステップの追加が終了します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/2efe12ca-bb73-732a-640d-46c1f4181209.png)

テストケースにステップが追加されたことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/ee05d9d0-2d42-d0b3-413a-352732c855e0.png)

## テスト計画
テストを実行するにはテスト計画を作成する必要があります。
リーダでログイン後、ホーム画面でテストプロジェクトを選択して「テスト計画の管理」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/e2f0be64-f41b-4f48-5a0b-ca34b6c1324f.png)

テスト計画の管理画面が表示されたら「作成」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/620a2a2d-12b5-2883-68e3-fde0a46bdc73.png)

テスト計画の概要画面で必要な項目を入力し、作成ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/206edf52-2454-6983-b917-6baac5f46038.png)
テスト計画はタスクであるべきで、たとえば「2019年夏コミリリース用」のテスト作業だったり「2019年冬コミリリース用」のテスト作業だったりします。

テスト計画画面を再度遷移するとテスト計画が追加されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/94fcf8d6-1baa-8f29-0e8a-6a868685439f.png)

つづいて、テスト計画に含める「ビルド／リリース」を作成します。テスト計画は１つ以上の「ビルド／リリース」を含める必要があります。１つ「以上」というのはテスト計画中にバグフィックス等で新しい「ビルド／リリース」が増える場合があるからです。
ホーム画面に戻って「ビルド／リリース」をクリックします。複数テスト計画が存在する場合は、テスト計画の選択をおこなってください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/1d3376ff-5311-6fff-8c09-971701ac5344.png)


ビルド管理画面が表示されたら「新規作成」ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/9b9a330e-7bf5-91fc-ccda-23094ddc27d2.png)

必要な項目を入力して「作成」ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/f0261a95-0995-fed4-f3c3-bb1c90eb9e7a.png)

ビルド管理画面にもどると、作成したビルドが追加されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/13a1d8dc-9c5b-74f1-437a-636cdfdf0d23.png)

つづいてテスト計画にテストケースを追加します。
ホーム画面にもどって「テストケース」の追加をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/a0d167fc-e82b-8bdc-16dc-5e966060afce.png)

「テストケースの追加と削除」画面で、ツリーよりテストスィートを選択するとテストケースの一覧が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/e4301ee2-391e-aa7b-bc06-6025c2b36274.png)

テスト計画に追加したいテストケースを選択して「選択したものを追加」をクリックしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/c2e56ee8-ea81-14e1-d83c-19ac2b1ec25a.png)

以下のように画面が更新されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/c0a63335-aba8-89ab-21a6-9eb6940abf0b.png)

追加されているテストケースをテスト計画から削除したい場合は、削除したい項目にチェックを付けて「選択したものを追加／削除」ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/572806eb-4c45-bd90-ad84-11db563f16a2.png)

テスト計画に関連づいているテストケースと関連づいていないテストケースが混在している場合の画面は以下のようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/721ad53a-74f8-5929-0af3-513f28637e17.png)
このように、テスト計画においてテスト仕様にあるテストケースから一部のテストケースを実施するということが可能です。

次にどのテストケースを誰がやるかを決めるため、テスト担当者を割り当てます。
ホーム画面の「テスト担当者の割り当て」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/fa752778-c0d0-9a25-ade0-df76be238dda.png)

割り当てをしたいテストスィートまたはテストケースをツリーから選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/73159236-16de-1cc8-85cb-def0e92fa093.png)

「テストケースに実行タスクを割り当てるテスト計画」画面が開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/96437088-bd33-2d86-fbbc-c0a865ea270f.png)
もし、表示されない場合は、[テスト担当者の割り当てができない場合](#テスト担当者の割り当てができない場合)を参照してください。
テストケースごとにユーザを割り当てられるので設定していき、最後に「Save Assignments」をクリックします。

以下のようにテストケースごとに実行を割り当てたユーザが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/378e8ae3-2ded-6e0a-5f67-fac34139b0e7.png)

### テスト担当者の割り当てができない場合
以下のような問題が報告されています。
http://mantis.testlink.org/view.php?id=8467
権限からみが適切に設定できていない場合があるので見直します。

まずユーザ管理画面で「役割の一覧」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/e35a5c9c-658c-23d0-5f1e-c6d7c60215c5.png)

修正する役割をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/4336de65-c5ef-9e90-4cb4-f4dcd0dbd11f.png)

「Assign TestCase Execution」にチェックをつけて保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/6e82b3ec-78b4-51f6-7e41-17d4be4abd9c.png)


## テストの実行
テストを実行するには権限のあるユーザでログインをして、テストプロジェクトとテスト計画を選択後、「テストの実施」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/f7827973-fc2c-022c-3c3a-00e9e80edf20.png)

ツリーから実行したいテストケースを選択します。このツリーで表示されるテストケースは自分が割り当てられたものになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/0c74b1aa-e935-c68f-6060-e0b9845dfea8.png)

ビルドのテスト結果が表示されるので結果を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/def76705-b559-d940-1363-492ca4ed3f04.png)

結果アイコンの説明：

|アイコン|説明|
|:------|:---|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/98984a74-b1bc-e382-12a3-e15028de3283.png)|テストを成功とします|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/a53c08b3-6acb-8e27-1b0d-ce2bc3ffde0b.png)|テストを失敗とします|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/14bebc51-6364-e970-38de-aef2a4f0c2cd.png)|テストをブロックとします。これは前提条件が満たせずにテストができなかった場合に選択します|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/c994b91d-5dc5-b130-1a49-eeb9eb23bd22.png)|テストを成功として次のテストケースを表示します|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/80dae4ab-236a-0dda-af99-24ce061ea577.png)|テストを失敗として次のテストケースを表示します|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/93367857-bd25-2031-73a0-bcae09bae43f.png)|テストをブロックとして次のテストケースを表示します|


いずれかのテスト結果をクリックすると以下のように実行履歴が作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/ff908600-f9dd-dffb-bc2e-0598db150f0b.png)
これは、テスト計画中に複数回テストを実施する可能性があることを表します。

画面キャプチャやログなどの添付ファイルを追加したい場合は「添付ファイル」アイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/a9c22967-a339-ede4-4248-00aae50e90ea.png)

ファイルをアップロードすると添付ファイルの一覧が表示されるようになり、そのファイルは以下のように表示することもできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/b2af1563-ac91-70a2-6a8e-1d3649b3e311.png)

もしRedmineと連携してバグを登録したい場合は下記を参照してください。
https://needtec.exblog.jp/22518358/

## テストケースの修正
テスト計画を実行中にテスト仕様書の修正が発生するケースがあります。
たとえば、仕様変更でテスト仕様書が変わることもありますし、テスト仕様書が誤っていた場合にそれを修正する場合があるからです。

テスト設計者でログインしてテストケースを編集しようとすると以下のように「このバージョンは実行中なので編集できません」と表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/af990a73-b40b-9d22-47f2-1af5e88100fa.png)
これはどのバージョンのテスト仕様書で実行されたかが明確になっているからです。テストケースを修正したい場合は新しいバージョンを作成する必要があります。この場合は「新バージョン作成」を押します。

これでバージョン２が追加されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/d5cd7c70-cb47-7d7e-850b-a61b52d8d839.png)

歯車のアイコンをクリックしたのち、「編集」ボタンが表示されるので押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/51fe48bf-ca6e-17f5-0e5f-ce10852ba27c.png)

テストケースの編集で任意の変更をして保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/49aac4e8-4f5e-101e-1874-3237da81acdf.png)

つづいて、テスト計画に紐づいているテストケースのバージョンをアップする必要があります。
これを行うには役割の権限で「リンク済みテストケースバージョンの更新」にチェックがある必要があります。管理者権限でおこなうか、必要なユーザの役割に該当の権限を割り当ててください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/6fd79c52-92b7-07bf-75bc-c03c4dda6ce3.png)

権限のあるユーザでログインすると「テストケースの更新」というリンクがあるのでクリックをします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/577e9e07-0854-3d22-33c9-5c0cec68b854.png)

「リンクされているテストケースのバージョンを更新」画面のツリーでテストスィートをクリックすると以下のようにバージョンを選択できるようになります。対象のテストケースとそのバージョンを選択後、「テスト計画を更新」を押下してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/02168133-cb1c-c35a-f100-d417551efc55.png)

## 指標の確認
テストの消化率などの指標の確認が行えます。
「テスト報告書と指標」または「指標メーター」のいずれかで確認することができます。

指標メーターの例：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/2741d141-c65c-aa4e-714f-496af11cfa7e.png)

テスト報告書と指標の例：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/27f7c839-7ae9-92e1-3101-e4bc12f9e416.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/95d4faf0-8ab3-7cc5-4426-cb9dfca7a28d.png)

このように、現在のテストの状況をわかりやすく表示するだけでなく、テスト仕様書を作成して納品物に利用することが可能です。

### グラフレポートが文字化けする場合
グラフレポートが文字化けする場合があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/ae9c2ccb-a8f9-b64c-4258-fa257668b66a.png)

これはTestLinkが使用しているpchartというライブラリが使用しているフォントが日本語対応していないためです。
これを修正するには以下のようにします。

1 下記からIPAのFontを取得する
https://ja.osdn.net/projects/ipafonts/releases/46148

2 下記のパスに「ipagp.tff」をコピーする。

/opt/bitnami/apps/testlink/htdocs/third_party/pchart/Fonts

3 config.inc.phpのcharts_font_path を変更してフォントを切り替える

```php:/opt/bitnami/apps/testlink/htdocs/config.inc.php
/**
 * fonts set used to draw charts
 **/
//$tlCfg->charts_font_path = TL_ABS_PATH . "third_party/pchart/Fonts/tahoma.ttf";
$tlCfg->charts_font_path = TL_ABS_PATH . "third_party/pchart/Fonts/ipagp.ttf";

/**
 * font size used to draw charts
 **/
$tlCfg->charts_font_size = 8;
```

4 ページを再読み込みして直っていることを確認
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/5e73da2e-b8ae-db4a-e272-962490a3ccd6.png)


# まとめ
今回は簡単にですが、テスト管理ツールであるtestlinkの紹介をしました。
古いバージョンであれば各種記事が日本語訳されているので参考にしてください。

testlinkは混乱したテスト作業を適切に管理する可能性を秘めているツールではありますが、正直、実際使うかどうかは、人員のスキルにあわせた方がいいと思います。

~~ぶっちゃけ、本来強力な効果を発生するであろうSIer的な環境ほど採用はきびしいです。いいたかないですが、テスト仕様の版管理とか、テスト仕様と実行結果は分離すべきいう概念自体が理解できる人間が管理者レベルにおいても少ない傾向があり、教育コストが高くなりすぎます。仮にそこを突破しても、テスターはぶっちゃけ、Excelしか使いたがらないですし。第一、まともにテスト技術を知っている人間が上にいるなら有償のテスト管理ソフト導入する~~

あと、問題が出た時にPHPとJavaScriptをみてバグか設定ミスか切り分けできる人間がいないときも導入やめといた方がいいでしょう。