手動テストにもっと左手を使おう！ 〜テスト実行も改善していこう〜

こちらは「 [ソフトウェアテストの小ネタのカレンダー | Advent Calendar 2023 - Qiita](https://qiita.com/advent-calendar/2023/software-testing-koneta)」25日目の記事です。前回は、honaminさんの「[テストツールとエンジニアと私](https://zenn.dev/honamin/articles/0472a1ef0422d0)」でした。

# ご挨拶
 私は大トリを飾れる様な器ではないのですが、皆様の遠慮の塊でアドベントカレンダーの25日枠（クリスマスケーキでいうと真ん中の苺?）が余っていたで頂きました。
どうも、好きなものは最初に食べる派、[@kojimula](https://twitter.com/kojimula)（コジムラ）です。いちおうWeb系のQAエンジニアやってます。

# 読者層の想定
さて、本記事を読んでくれる想定読者はソフトウェア開発の**テストに関わる**人（開発エンジニアやQAエンジニア）だと思っています。そして、**テストに関わる**といっても開発プロセスのどこでテストに関わり、どんなテストをしているかは様々だと思います。
なので、今回は読者の中で特に「**実機を使って、テストケースを用いた手動テスト実行している人**」に宛てて、私がやっている小ネタを紹介します。

# 要約
**テストケースを用いた手動テスト実行中に、(特にテスト実行結果が期待値通りの場合は)左手デバイスを活用すると(テスト結果の記入時間を短縮できて)能率的になったよ！**

# 背景説明
- 私の現場では、実機のスマホ端末を使って自社開発アプリのリリース前に、新機能の機能テストやリグレッションテストを(主に)手動で行なっています。
この時に用いるテストケースは、Googleスプレッドシートに集約されています。（各テスト項目毎にテスト操作や期待結果、結果入力欄などがある、よくある素朴なマトリクスです）
- このテスト実行時、過去の私は「(利き手である)右手でスマホを操作 → 右手でパソコンのマウスを操作し、スプレッドシートにテスト結果を入力（プルダウンから選択） → 右手でスマホを操作」を繰り返していました。
つまり、右手で操作するデバイスが「スマホ → マウス → スマホ → ..」と交互に切り替わっていました。
ちなみに、左手は(頬杖をついてたりして)遊んでました。
- 少しでも早くテスト実行を終わらせたかった私は、「右手はスマホを操作することに専念させ、テスト結果の入力は左手にやらせたい[^1]」と思い立ち、そして左手で操作できる最高のデバイスを既に所有している事[^2]に気づきました。
- そのデバイスとは、**Nintendo SwitchのJoy-Con**です！
（Joy-ConはBluetoothに対応しているので、パソコンと簡単に接続できます）

# デバイスとツールの導入手順
以下、Joy-Conを左手デバイスとして使うための手順です。
- 必要なもの
    - 左手デバイス：Nintendo Switchコントローラ(Joy-Con）
    - ツール：KeyMapperソフト
        - 私はMacOSを使っているので「JoyKeyMapper」を使いました。
          WindowsOSでも「JoyToKey」等を使うと(多分)できます。
            > KeyMapperソフト配布元
            > - [GitHub - magicien/JoyKeyMapper: Nintendo Joy-Con/ProController Key mapper for macOS](https://github.com/magicien/JoyKeyMapper)
            > - [JoyToKey 公式ホームページ](https://joytokey.net/ja/)

- 導入手順
    - 難しい操作はなく、ソフトを起動すれば直感的にわかる範疇だと思います。
        - 詳細な手順が必要な場合は、先達が既に解説してくれているのでリンク先を参照して下さい。
            > - [Joy-Conを左手デバイスにしてPC操作！【JoyKeyMapper＆JoyToKey】 - トマシープが学ぶ](https://bibinbaleo.hatenablog.com/entry/2020/12/03/221602)
# 私の設定
- 参考情報?として、私の設定を晒しておきます。
ご自身の使いやすい様にカスタマイズすると良いと思います。  
    ![ScreenShot_20231225-160827.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297036/465d172a-b3bd-754b-aa9a-ae07e615c943.png)　![ScreenShot_20231225-160835.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297036/ca65c7c6-ffe9-5770-849f-2c4f5ac10273.png)　![ScreenShot_20231225-160831.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297036/c2f5af3b-4ad4-5339-a416-2a8a4bbef8c2.png)

- 補足
    - スプレッドシートの様な表計算ソフトじゃなくて、テスト管理ツールを使っている場合でもツールがキーボードショートカットに対応していれば応用できると思います。
# Tips
- キーのマッピングルールはアプリケーション毎なので、Webブラウザで複数のサービスを利用している環境だと以下の様なジレンマが発生することがあります。
    - サービスAに対してJoyConのボタンを最適化すると、サービスBに対しては最適にならない
- この場合のワークアラウンド(次善策)として、Google ChromeやMicrosoft Edgeなど一部のブラウザでは**各サービスのサイトをデスクトップアプリ化することができる**ので、アプリ化した後にKeyMapperソフトに登録すると各サービス毎に最適なボタン配置が設定できます。

    ![ScreenShot_20231225-105402_edited.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297036/58664930-da7a-3296-0e17-29d7cd571438.jpeg)

    - アプリ化のやり方については、こちらも先達の解説を参照して下さい。
        > - [Macでサイトをアプリ化する方法! ホーム画面にアプリショートカットを追加しよう](https://sp7pc.com/apple/mac/61511)
        > - [Windowsでサイトをアプリ化する方法! PCホーム画面にアプリショートカットを追加しよう](https://sp7pc.com/google/chrome/61587)

# 終わりに
- 如何でしたでしょうか？
    - 「テスト結果の手入力」みたいな作業はトイルなので1回1秒短縮するだけでも、チリツモで**導入コストに見合う以上のリターンは得られる**かなと思います。
        - 「俺の現場では〇〇だから、この方法は使えない！」と拒絶するよりも、「今よりも改善できる事はないか？」を問い続けて、取り入れようとする**活動**が大事だと思います。
    - そうして捻出できた時間をもっと価値のある行為に注ぎ込みましょう、**良きテストライフを！**
## 念の為のご注意
- 業務でKeyMapperソフトに限らず外部ツールを使用する場合は、所属組織のソフトウェア運用ポリシーに違反しない事を確認しておくのが無難だと思います。
また、Joy-Conを持っていると遊んでいる?と誤解されてしまうことも無きにしも非ずなので、**Valueはちゃんとアピールしていきましょう。**

[^1]: 「左手でスマホを操作したら良いのでは？」的なツッコミがくることは想定しているのですが、アドベントカレンダーの余白はそれ(理由)を書くには狭すぎる。
[^2]: 左手でマウスを操作しようともしましたが、すぐに諦めました。