ソフトウェアテストの可能性を探る：JSTQB取得後の次の一歩

:::note info
これは[グロースエクスパートナーズ株式会社アドベントカレンダー](https://qiita.com/advent-calendar/2024/gxp "グロースエクスパートナーズ株式会社")9日目の記事です。
:::

# はじめに
今年、所属部署のユニット活動で同僚達と一緒に標記のJSTQBのFL資格を取得しました。

資格取得までの話はさておき、資格取得のその後について書いてみたいと思います。

***
### まずJSTQBとは何か
ソフトウェアテストの資格です。
正式名称は「Japan Software Testing Qualifications Board」

日本語試験であって、国際資格のISTQB（International Software Testing Qualifications Board）と相互認証をしてくれます。

今回取得したFLとは「Foundation Level」の資格です。入門資格として定義されています。
[JSTQB公式](https://jstqb.jp/ "JSTQB公式")

***
中略
***

### そして無事、合格
CBT（ComputerBasedTest）なので当日その場で採点してくれて合否が分かるかと思いきや
合否連絡は後日で、ドキドキしながら数日待つことになりました。

無事に合格通知のメールが来たので安堵した次の瞬間、あることに気付いたのです。
<dt>…資格取ってからのこと考えてなかったな、そう言えば！！</dt>

***

### JSTQB合格の次はどうするのか
ここからが本題です。

この時点では資格取得がゴールであって、その資格をどう活かすか（活かせるか）までは考えていなかったわけです。

資格は取得した、次はどうしようかという試行錯誤が始まります。

### 0.JSTQB AL(Advanced Level）のテストアナリスト等の上位資格
まず最初に頭をよぎったのは次の資格試験でした。
試験モードになっている今なら効率よく試験勉強を続けられる気がしていましたし。

でも、勉強の継続のためのモチベーション維持としてはアリかもしれませんが、今は取得したこの知識を使って何かをしたいのですよ!!


### 1.資格で得た知識を実践へ
テスト関連の知識は身に付いた（覚えた）から次は実践経験だよね？との [@suzumin-gxp](https://qiita.com/suzumin-gxp "すずみなさん")の助言から

[ソフトウェアテスト技法練習帳（技術評論社）](https://gihyo.jp/book/2020/978-4-297-11061-1 "")
このワークブック形式の本を購入します。

> 座学で学んだ「ソフトウェアテスト技法」を実務に活かそうにも，どのように適用したらよいかわからないというのが悩みです。
>そこで，本書では実践的なシチュエーションを想定した問題を繰り返し解いていくことにより，テスト技法の知識定着を目指します。

これですよ、これ。
求めていたのは正にこれなのです。

こういう場合はこういうテスト技法で、こういったテスト計画を立てる、みたいな設問がたくさんあるので
数をこなせばいける気がします。

……でも実践経験は積めていませんよね？

<dt>よろしい、ならば次の本だ。</dt>

[技術書典　公式](https://techbookfest.org/ "技術書オンリーイベント")

技術書の同人誌即売会であるこの技術書典に出かけて（オンラインマーケットも）、
テスティング関連の技術書を買い漁ります。

ほほう、探索的テストとはこういうやり方がおススメなんですねー
どういうものかは説明できるけど、具体的にどういうことをやるのかは知らなかったので新鮮な驚きです。

この時に技術書の著者の方から、テスト技法のツールGIHOZの存在や、そもそもテストとは何ぞやを業務とするQAエンジニアというポジションのことを教えてもらいます。

- まず、GIHOZについて
[ベリサーブさんのテスト技法ツール「GIHOZ（ギホーズ）」](https://www.veriserve.co.jp/helloqualityworld/media/20240325001/ "")

![gihoz-img.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3946032/40d68020-772d-23f6-9f59-1295b3603d1d.png "実際の画像")

件のワークブックの問題の演習の際に大活躍でした。
テストの条件を入力してボタンクリックでデシジョンテーブルは作成してくれるし、テストケースの組み合わせパターンも生成してくれます。

- そして、QAエンジニアというポジション
いわゆるテスターというポジションではなくて、QAエンジニアというポジションがあるのかー、と。

何とも資格を活かせそうなポジションがあるではないですか。

### 2.QAエンジニアというポジション
QA（Quality Assurance）に関するエンジニア。
このポジションを分かりやすくするために、周辺的なポジションとの差異で見ていきたいと思います。

例えば、テストする人　テストエンジニア
そして、QA活動する人　QAエンジニア
最後に、自動化する人　パイプラインエンジニア

|  | テストエンジニア |QAエンジニア | パイプラインエンジニア | 
|:-:|:-:|:-:|:-:|
| 業務  |テスト計画の立案やテスト設計|開発プロセス改善やファシリテート|　テストを自動化する|
| やること  |テスト全般|品質戦略の立案やテスト組織のお悩み相談| テスト自動化戦略の検討|


参考：[角玄さんのQMファンネルを使って自分の立ち位置／やりたいことを可視化しよう](https://www.docswell.com/s/ryo328kgn/5DE4NR-qmfunnel "上記の周辺的ポジションのご説明をされておられます")より

JSTQBの資格が活かせるかと思ったQAエンジニア、どうも調べてみるとそんな単純なポジションでもないようです。

また、テストエンジニア然り、パイプラインエンジニア然り、どちらのポジションでもテスト関連の知識は必須の知識になっているかと思います。

具体的には
- 検証やテストそのものから品質に貢献するテストエンジニア
- テスト組織の能力向上や品質に関すること全体で貢献するQAエンジニア
- テストの自動化やエンジニアリングそのものから品質に貢献するパイプラインエンジニア

恐らくは前述の技術書の著者の方も、ご著書を売って頂く際の短時間の雑談だったので「QAエンジニア（とその周辺的な職種）でJSTQBの知識が活きると思いますよー」みたいなニュアンスだったやもしれません。

そしてしれっと出てきたパイプラインエンジニアのテスト自動化について
継続的な品質管理のためのテスト自動化というお題目ではありますがJSTQBの後半で、こういったテスト支援ツールの知識も叩き込まれております。
この機会を使って自動テストツール等に精通しておくというのもアリかもしれません。

### 3.自動テストツールとE2Eテスト

現所属の開発チームでもプロダクトにJenkinsによるテストクラス実行や、.NETのUIAutomationを使った自動テストツール等を導入しています。
テストクラス実行は.NETのNUnit系統ですし、まったく自動テストと無縁というわけではありません。
~~よく分かってないけども~~

これに加えて世にある数多の自動テストツール、もしくはテストのフレームワークに詳しければ、その知識や経験が開発チームで需要があるかもしれません。

- ここ数カ月でせっせと調べた定番というか有名どころのテストツール
#### Selenium

||最も一般的なブラウザ自動化ツール。Java、Python、C#に対応。 |
|:-:|:-:|
|用途|Webアプリケーションの機能テストやブラウザ間の動作確認|
|特徴|複数ブラウザ（Chrome、Firefoxなど）のサポート|
|おススメポイント|Selenium Gridを使えば並列テストも可能らしい|

#### Cypress

| |WebアプリケーションのE2Eテストに特化したツール|
|:-:|:-:|
|用途|ユーザーインタラクションのテスト（クリック、入力など）|
|特徴|高速かつ安定したテスト実行が可能|
|おススメポイント|直感的なデバッグが可能らしい|
|注意点|JavaScriptで記述|

#### Playwright

| |Microsoftが開発した新しいE2Eテストツール。モダンブラウザの自動化を効率化。|
|:-:|:-:|
|用途|複雑なWebアプリのE2Eテスト|
|特徴|色々なブラウザに対応（Chrome、Firefox、WebKit） |
|おススメポイント|ネットワーク操作やスクリーンショットのキャプチャ機能が豊富らしい|

前述のQAエンジニア（正確にはパイプラインエンジニアですが）にも関連しますが、要するに自動テストツールを活用して効率よくテストを進めたり、ツールの選定やスクリプト作成、環境設定のスキルによって品質保証的な意味で開発チームに貢献できる可能性があります。(継続的な品質管理という意味で）

これもご縁です。暇を見つけてこの３つをもっと触ってみようと思います。
そして、資格を取得してからの次のステップとして、こうやって手を動かしたり実践経験を積むことが当初の目的だったことを思い出しました。
ちゃんと血肉になっていることを確かめていきます。

### 4.やっぱり実務経験じゃないですかね

テスト関連の資格であるJSTQBの知識を活かす方向の実践経験だと、ソフトウェアテストエンジニアとしてのキャリアが考えられます。

- テスト設計や自動化
JSTQBの知識を活かして、システムテストや受け入れテストの設計、自動テストのスクリプト開発

現在の仕組みの改善から始まるので、まずは現状把握が急務になりそうです。「知識を活かして」とふんわりしているのは「どう活かすか」が見えていないからです。

- テストプロセス改善
JSTQBのフレームワークをもとに、現在のテストプロセスの標準化や、効率化もしくは品質向上

何をもってプロセスの改善とするのか等の~~建前~~定義は必要ですが、これを目的にしてプロジェクト改善を進めるのはアリかもしれません。

- AI/MLによるテスト効率化
少し変化球で、機械学習の活用でテストケースの自動生成や欠陥予測システムの開発

有名どころだとAutifyやMagicPod等のAIテスト自動化プラットフォームが既にあります。似たような試みとして、自然言語でテスト設計や自動テストの構築ができる、もしくは膨大なテスト計画の蓄積データを用いてさらに効率的にテストができるようになるのではないでしょうか。
~~出来るものならきっと誰かがやっているだろうし、何かブレイクスルーが必要なんだろうなーとは思います~~
~~お気付きかもしれませんが本記事のタイトルもAIに検討してもらっています。もう全部AIでいいんじゃないかな~~

- 新しいツールや手法の導入
最新のテスト技術（テストコンテナや、シフトレフトテスティングはもう古いかもですが）を組織に導入

何も自分が作り上げる必要は必ずしもないわけで、情報のアンテナを張って最新のツールや手法を試すという組織への貢献の仕方もあるのではないかと思います。
こんな新しい手法を知ったのでお試しをしてみませんか？みたいなアプローチもアリなのではないかと思うわけです。

そうです。
JSTQBの資格関連で知らない用語や概念についてググったり、文献書籍を閲覧した結果、副次的な影響ではありますが、
前述の技術書典や社外のテックカンファレンスに情報収集を目的にして出掛けるようになりました。
~~出社以外ではほとんど外出しなかったのにな~~

### 5.コミュニティに参加したい
テスト業界の流行りや話題のトピックを掴むために、技術コミュニティ活動が今後のためになるのではないかと思います。

- カンファレンスやセミナーに参加
例えばJaSST（Japan Software Testing Symposium）イベントに参加することを考えています。
※前述の「ソフトウェアテスト技法練習帳（技術評論社）」に収録されている設問は、このJaSSTで配布された設問集に追加修正を施したものだそうです。

他にもこの記事の数日前12/7（土）に「テスト自動化研究会(Software Testing Automation Research、STAR)」がオンラインで開催されているはずです。
[テスト自動化研究会](https://www.youtube.com/c/%E3%83%86%E3%82%B9%E3%83%88%E8%87%AA%E5%8B%95%E5%8C%96%E7%A0%94%E7%A9%B6%E4%BC%9A/featured "アーカイブ")

各セッションはZoomでストリーム配信を行い、コメントや議論、askTheSpeakerはDiscordで行うというオンラインならではといった趣のカンファレンスです。
テスト自動化の事例紹介や自動テストで品質担保する仕組みや環境づくり等、大変興味深い・面白そうなセッションが揃っています。

（追記）とても良かった。もう10年も続いているカンファレンスだそうで、大変良い刺激になりました。~~リアルで、あれ!?ずいぶん話のレベルが高いな!状態になりましたが~~
~~何かやってみよう。自動テストのツールでもテストコード書いて動かす仕組み作りでも~~

JSTQBの資格取得に伴う興味関心や知識の有無で、この手のカンファレンス参加の意味や成果が大きく変わると思います。

### おわりに
ここまで書いてきて気付いたことがございます。
JSTQBの資格を取得してからの次の一歩が、思ったよりも選択肢があるんじゃないかということに。

資格取って終わりにしたくなくて、何かで使いたいという貧乏根性が最初にあったわけですが、
何があるのか、どう活かせるのか、みたいな興味を持ったことが本記事の動機の１つになります。

その一方では、資格取得は１つの区切りであって、取得しちゃったらしちゃったで燃え尽き感というか次の一歩が億劫になっていたのかもしれません。
こうやって文字にすることが~~覚悟を決める~~次に進むためのきっかけになると信じています。

今年１年はJSTQBの資格勉強から派生して、様々なことを始めたり出かけたりしてきました。
願わくば来年の今頃に、次の一歩が踏み出せましたと報告できたらいいなぁ。