テストエンジニアとして働いていると
「やっぱりプログラミングも書けないとダメなのかな…」
と不安になる瞬間があります。
僕なりの答えを言うと開発エンジニアと同じレベルのプログラミング力は要りません。
ただ「全くコードが書けない・読めない」という状態でやっていくのは正直かなり厳しいです。
今回は、テストエンジニアに本当に必要な開発スキルのボーダーラインと、具体的に何を勉強すべきかについて現場のリアルな目線でお話しします。
プログラマレベルの開発力は要らないが「コードの読解力」は必須
テストエンジニアが開発エンジニア並みにガチガチの機能を実装できるようになる必要はありません。
しかし何かしらの言語で「必要最低限レベルのコードが書けて、ある程度読める」くらいの知識は持っておくべきだと思っています。
というのも最近は生成AIの登場で状況がガラッと変わりました。
今は自力でゼロから構文を暗記してコードを「書く」能力よりも、AIを使ってプログラムを「作れる」能力の方が重要になってきています。
AIに指示を出してコードを作らせてそのコードが何をやっているのかを理解して他者へ説明できる。
この「読解力」があれば実装作業そのものはAIがかなり助けてくれるんですよね。
まったく読めないと、AIが吐き出したコードが正解なのかすら判断できませんから。
実務で地味に差がつく2つの知識
コードの読み書き以外にも、現場で一歩抜け出すために必須となる知識が2つあります。
1. データベース(SQL)を扱うスキル
テストの現場では、データベースを直接触る機会が普通にあります。
テストデータを準備したり、画面上の表示とDBのデータが一致しているか確認したりするからです。
単にデータを取得するだけの簡単なSQLではなくJOINを使ってテーブルを結合したり、GROUP BYで集計したりするような中級レベルのクエリはサラッと書けるようになっておいた方が絶対に良いです。
2. 担当プロジェクトの「使用言語」に対する理解
自分でプログラミングをしないとしても携わっているプロジェクトが何の言語で開発されているかは絶対に把握しておいた方がいいです。
言語ごとの特徴を知っておくと
「この言語を使っているならこういう処理の切り替わりや型変換で不具合が起きやすいかも」
といった予測が立てられるようになります。
これができるとテスト設計の精度を上げることができるので、現場の言語の理解とできることできないことは可能な限り把握しておくことをおすすめします。
勉強するなら汎用性の高い言語を1つに絞る
これからプログラミングを勉強しようと思っているならあれこれ手を広げずに「汎用性の高い言語を1つだけ」に絞るのが一番コスパが良いと思います。
個人的なおすすめですが目的によって2つに分かれます。
- テスト自動化をメインでやりたい人:TypeScript
- 1つの言語で色々な作業をこなしたい人:Python
テスト自動化(Playwrightなど)を軸にしていきたいなら、TypeScriptを選んでおけば間違いないと思っています。
僕も専門ではないのでそこまで詳しくないですが、モダンな自動化ツールの標準になっているみたいなのでTypeScriptをおすすめします。
一方でテスト自動化だけでなくスクレイピングや社内ツールの作成、データの集計といった多用途で使いたいならPythonが圧倒的に使いやすいと思っています。
無理に何種類も勉強する必要はありません。
まずは1つの言語で最低限のコードが書けるようになって、そこから現場の必要に応じて広げていくのが一番挫折しないルートだと思います。

コメント