紙一重の積み重ね

アラフォーのエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

Markdown で書いたテスト仕様書を Excel に変換したい

はじめに

みなさんは、テスト仕様書は何で書かれていますでしょうか。

テスト仕様書を作成するにあたり、Excel ではいまいちモチベーションが上がりません。また音声入力で入力していくにあたり、Markdown ファイルの方がいろいろやりやすいため、今回Markdown から Excel への変換を試みてみました。

テスト仕様書を Markdown ファイルで作成して、非エンジニアの人に見せる場合のみ、Excelに変換するようにしたいと思います。

利用するプログラム

みんな同じことを考えるよね、ということで、こちらのリポジトリのプログラムを使わせていただくことにしました。

github.com

事前準備

必要なライブラリを pip でインストールする。

>python -m pip install --upgrade pip
>pip install pandas
>pip install openpyxl
>pip install pyyaml
>pip install docopt

サンプルファイルの変換

ヘルプコマンドの実行が動くことを確認。

>python converter.py -h
Markdownで書かれたテスト仕様書をエクセルファイルに変換します。

Usage:
    converter.py [-f] <file> [-m]

Options:
    -f, --file             入力ファイルパス
    -m, --merge            エクセルセルをマージするか

Requirements:
    - pandas
    - openpyxl 3.0.0 or higher
    - PyYAML 5.0.0 or higher
    - docopt

Notes:
    - 変換するMarkdownは以下の形式で記述してください

    # テスト名
    ## 大項目
    ### 中項目
    #### [正常|異常] [OK|NG|--] テストケース名
    1. 確認手順
    2. 確認手順
    * [ ] 期待値
    - 備考

サンプルのMarkdown ファイルを変換してみる。

>python converter.py -f sample.md -m
Done

変換前の Markdown ファイル

# テスト名

## ユーザ情報変更機能

### プロフィール画像変更

#### 正常 OK プロフィール画像変更

1. アプリを立ち上げる
2. メイン画面でプロフィール画像変更ボタンをクリック
3. 画像を選択
4. 画像変更ボタンをクリック
* [ ] アプリでエラーが表示されないこと
* [ ] 画像が変更されていること

### ユーザ名変更

#### 正常 OK 最小長ユーザ名設定

1. アプリを立ち上げる
2. メイン画面でユーザ名を"a" と設定する
3. OKをタップする
* [ ] アプリでエラーが表示されないこと
* [ ] アプリを再起動し、メイン画面でユーザ名が "a" となっていること

- 備考はココに書いてね~

#### 正常 OK 最大長ユーザ名設定

1. アプリを立ち上げる
2. メイン画面でユーザ名を"12345678" と設定する
3. OKをタップする
* [ ] アプリでエラーが表示されないこと

* [ ] アプリを再起動し、メイン画面でユーザ名が "12345678" となっていること

#### 異常 -- 最小長以下のユーザ名設定

1. アプリを立ち上げる
2. メイン画面でユーザ名を "" と設定する
3. OKをタップする
* [ ] エラーダイアログ表示 "名前は1文字以上8文字以下で入力してください"

- 備考はココに書いてね~

#### 異常 NG 最大長以上のユーザ名設定

1. アプリを立ち上げる
2. メイン画面でユーザ名を"123456789" と設定する
3. OKをタップする
* [ ] エラーダイアログ表示 "名前は1文字以上8文字以下で入力してください"

### パスワード変更

#### 正常 -- 最小長パスワード設定

1. アプリを立ち上げる
2. メイン画面でパスワードを"a" と設定する
3. OKをタップする
* [ ] アプリでエラーが表示されないこと
- 備考はココに書いてね~

#### 正常 OK 最大長パスワード設定

1. アプリを立ち上げる
2. メイン画面でパスワードを"12345678" と設定する
3. OKをタップする
* [ ] アプリでエラーが表示されないこと

#### 異常 OK 最小長以下のパスワード設定

1. アプリを立ち上げる
2. メイン画面でパスワードを "123" と設定する
3. OKをタップする
* [ ] エラーダイアログ表示 "パスワードは4文字以上20文字以下で入力してください"

- 備考はココに書いてね~

#### 異常 NG 最大長以上のパスワード設定

1. アプリを立ち上げる
2. メイン画面でパスワードを"123456789abcdefghijkl" と設定する
3. OKをタップする
* [ ] エラーダイアログ表示 "パスワードは4文字以上20文字以下で入力してください"

変換後の Excel ファイル

いい感じに変換されました。

f:id:yokoyantech:20211026130718p:plain

利用時の注意点

Markdown ファイルの中で、期待する結果の部分で、 * [x] とチェックをつけてしまうとエクセルに変換することができませんでした。

エクセルに変換する際には以下のように、空白にしておく必要がある。Markdown ファイルだけでテストを実施する時には注意が必要です。Markdown ファイルの中ではチェックをつけて、エクセルに変換する際には一括置換でチェックを全てブランクに戻すなどの運用の工夫が必要そうです。

* [ ] エラーダイアログ表示 "パスワードは4文字以上20文字以下で入力してください"

まとめ

脱 Excel を目指してこれからも色々試行錯誤していきたいと思います。