TestLinkのテストケースが壊れる

# 目的
TestLinkのテストケース編集で起こる問題と直し方を記載します。

# 背景
古いバージョンのTestLinkを使用していると、テストケース編集後に編集したフィールドが表示されなくなったり、ひどい状態になるとテスト項目が表示されなくなり、編集することができなくなることがあります。
TestLinkを使われる多くの方がトラウマになってしまう出来事なので、あらかじめ知って回避いただければと思います。

# 環境と設定
TestLinkはFireFoxをサポートしており、その他のブラウザで多くの問題が起こるようです。
また、新しいバージョンのTestLinkでは問題が起こる前にエラー表示を行って壊れることを防いでいるようです。

## 古い環境

問題の確認に使用した環境　TestLink 1.9.15(Tauriel)
Google Chrome バージョン89.0.4389.90 (Offical Build) (64ビット)

## 新しい環境
問題解消の確認に使用した環境
Windows10
＋VirtualBox(6.1.18r142142)
＋Bitnami-TestLink(1.9.20-18-r53)
＋Google Chrome バージョン89.0.4389.90 (Offical Build) (64ビット)

chocolateyを使っているならVirtualBoxのインストールは、管理者権限でcmd(またはWindows PowerShell)を起動して以下のコマンドを実行する。

```dos
> choco install virtualbox
```

途中選択肢が出る場合は、a(または、すべてy) + Enterする。
[こちら](https://qiita.com/mima_ita/items/ed56fb1da1e340d397b9#testlink%E3%81%AE%E7%92%B0%E5%A2%83%E4%BD%9C%E6%88%90)の記事を参考に以降のセットアップを実施した。

TestLinkのVMファイルは、[リンク](https://bitnami.com/stack/testlink/virtual-machine)先に行って、[On my computer]の　[Virtual Machines]をクリックして、ダウンロードする。
VirtualBoxを起動して、ダウンロードしたファイルをインポートする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/212231d3-b22f-31d6-0b41-ee63eb51363b.png)
その後、[インポート]を二回クリックすと、以下の通り認識されるので、起動する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/46754da4-7442-901c-359a-54ec2a60001f.png)

TestLinkへのログインや最初の設定も[こちら](https://qiita.com/mima_ita/items/ed56fb1da1e340d397b9#testlink%E3%81%AE%E7%92%B0%E5%A2%83%E4%BD%9C%E6%88%90)の記事を参考に実施した。

# 問題の内容
## TestLinkが壊れるケース
私が知っている範囲では、壊れるケースは2種類あります。
1. 大きなデータを書き込んだケース
2. FireFox以外のブラウザで編集したケース

### 1.大きなデータを書き込んだケース
要約や前提条件などの入力個所に大きなデータを書き込んむと、それ以降のフレームが崩れて表示されます。
例えば、以下のイメージが正しく表示されている状態とします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/6e0e1590-23c5-6d15-8af0-e07541425c38.png)

以下のイメージのように、要約欄に大きめの画像を何枚か貼り保存します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/f73d08f5-50ae-196c-0996-5353dff502e7.png)

以下のイメージのように、要約の内容を一部失い、要約のフレーム内に前提条件の内容が含まれてしまいました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/f20898de-6bd8-dd03-23c0-0773245c31fc.png)

前提条件欄に大きめの画像を何枚か貼り保存した場合は、以下のイメージのように、前提条件の内容を一部失い、要約のフレーム内に手順以降の内容が含まれてしまいました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/b5f321f3-8650-eadb-b461-b6408a61ac22.png)

新しいバージョンのTestLinkでは、編集後の保存時に以下のエラーとなり、壊れることはなくなりましたが、保存しようとしていたデータは失われ、前回保存した編集内容にしか戻れません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/488c3e11-1328-9c20-4bdc-8188cfd25727.png)

### 2.FireFox以外のブラウザで編集したケース

TestLinkはFireFoxをサポートしており、その他のブラウザでは多くの問題が起こるようです。
例えば、Google Chromeで編集してコピー＆ペーストすると、以下の画面イメージのようにテストケースのフレームが壊れます。
壊れ方は色々あるようですが、いずれにしても編集ボタン等が押せなくなるので直せなくります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/709881f5-79ba-9649-349c-408115acc6b7.png)


## 壊れたTestLinkの直し方


### 1.大きなデータを書き込んで壊したケースの直し方

編集ボタンが押せるので、壊れるきっかけになった編集箇所を、再度編集モードにして問題が起こる前の状態に戻しましょう。
フレームが元に戻ればOKです。

### 2.FireFox以外のブラウザで編集して壊したケースの直し方

表示上は壊れてデータが無いかのように見えますが、この状態でもデータの大部分は残っています。
そのデータをエクスポートして、テキストエディタなどで開き、壊れた箇所のデータを修復して、インポートすることで直します。

具体的な修復に入る前に、
先に以下のイメージの正常なテストである「壊れるテスト1」をエクスポートしてその構造を確認しておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/6e0e1590-23c5-6d15-8af0-e07541425c38.png)

「要約です。」「前提条件です。」「操作の手順1です。」「期待結果1です。」の場所を上下のイメージについて比較すると、エクスポートしたxmlの構造がわかると思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/d272a8fe-e8f4-8c7e-cf93-d1daa1c6db6c.png)

「壊れるテスト2」が壊れている場合、以下のイメージのように、ツリーに「Repair」テストスイート(=フォルダアイコン)を作り、その中に「壊れるテスト2」をドラッグ＆ドロップで移動して、「Repair」でエクスポートします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/0a8f2dc2-b7b1-433d-63f3-db3dec549aa9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/fc39971e-d2ed-aa22-20b4-dccd02016cb0.png)

先ほどの正常なケースと比較すると、以下のイメージになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/8f77cf88-6cac-8864-5202-70e4abde4543.png)

この例では、期待結果1を編集して保存したタイミングで壊れたので、以下のイメージのように期待結果を削除します。(XMLが読めるなら、修正しましょう)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/a9c6addf-c9bf-024b-894a-355c58439312.png)

このファイルを以下のイメージのようにインポートすると表示できるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/7be31a91-6111-6b56-36f1-c07dce8be32d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/501ca46e-1de2-8b1f-8331-bb1eb5edb45c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/96c8601f-c443-4e38-0e40-b368d695fb65.png)

以下のイメージのように、無事表示されるようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201344/e8f2ae67-4737-8030-807b-0854fe64486b.png)

後始末として、「壊れるテスト2」を元の場所に戻して、「Repair」を削除しておきましょう。

# おわりに

直せることがわかっていれば、いざというとき焦ることもないかと思います。
どうぞ、ご活用ください。

1. TestLinkを最新のバージョンに更新する。
1. TestLinkを編集する際は、FireFox以外のブラウザを使わない。
1. もしも壊れたらこの記事を参考に直しましょう。

# 関連リンク
[(slideshare)超簡単!!なTestLinkの使い方](https://www.slideshare.net/cakeyoshida/test-link-15753118)
[(Qiita)テスト工程の管理をするツール、TestLinkについて](https://qiita.com/mima_ita/items/ed56fb1da1e340d397b9)
[(wiki)TestLink](https://ja.wikipedia.org/wiki/TestLink)
[(wiki)ドキュメント](https://wiki.documentfoundation.org/TestLink/ja)
[(pdf)TestLinkマニュアルjp v1.7.0](https://acc.dl.osdn.jp/testlinkjp/33629/user_manual.pdf)
[(ブログ)プログラマの思索](https://forza.cocolog-nifty.com/blog/testlink/index.html)