当社が開発している2つのSaaS製品のテストおよび品質保証プロセスの改善をリードするシニアクラスのソフトウェアエンジニアインテストを募集しています。
■募集背景
現在,当社では授業支援システムである「schoolTakt」と教育機関向けのプラットフォームである「まなびポケット」の開発を2チーム体制で行っています。
これらの製品開発において,テストの自動化は一部されているものの,最終的なQAプロセスの多くは社内のQAチームや社外の受け入れテストに依存しています。
より迅速な市場への適応が求められ,機能が肥大化していく中で,このような人力中心のQAプロセスは製品開発に置けるボトルネックとなりつつあります。
これを解消するため,テスト自動化をリードしてくれるフルタイムのソフトウェアエンジニアを募集することになりました。
■本ポジションの役割
・ソフトウェアエンジニアとして
募集ポジションがテストエンジニアではなくソフトウェアエンジニアインテストであるのは,第一にコードによって問題を解決するソフトウェアエンジニアであることを求めているからです。
コードを読む,コードを書くというソフトウェアエンジニアリングによって,組織のテストを加速させることを期待します.。
・ シニアソフトウェアエンジニアリングインテストとして
当社で明確にテストを主業務とするポジションを設置することは初の試みとなります。
そのため,このポジションには以下のような役割を期待しています。
- 製品開発をおこなうソフトウェアエンジニアおよびQAチームと共同して,テスト自動化と品質の向上を主導します
- 上記目的を達成するための方法論,フレーム,ツールを導入または開発し,継続的にプロセスの改善を行います
- ソフトウェアテスト領域に関する標準または知識体系を活用し,テスト計画の作成と最適化を行います
- それらの取り組みを社内に浸透させるため,他のソフトウェアエンジニアおよびジュニアレベルのソフトウェアエンジニアリングインテストを指導します
・その他の担当領域
codeTaktの開発組織では明確に固定化されたポジションはありません。
専門性を突き詰めるために,特定のロールで集中的に業務を行うか,あるいは周辺領域に手を出すかは本人の裁量に委ねられます。
シニアソフトウェアエンジニアリングインテストには,テスト文脈でのソフトウェアエンジニアリングを主導することを期待しますが,一方でインフラストラクチャの改善やプロダクションコードへのコミット,新しい社内プロジェクトへの参加などは比較的自由に行うことができます。
■業務内容詳細
- Turnipを使用した仕様化テストの推進
- Cypressを使用したE2Eテストの実装
- テストメトリクスの追加とトラッキング
- テスト効果の測定と最適化
- 非機能テスト(負荷テスト・セキュリティテスト)の自動化
- テストパイプラインの改善
■配属チーム体制
新たに設置される開発組織横断的なソフトウェアエンジニアリングインテストチームに所属していただきます。
最初は特定の製品開発チームにおけるスクラム開発のメンバーとして単一製品のテストプロセス改善をしていただくことを想定しておりますが,これは我々の課題を共有した後,最初のシニアソフトウェアエンジニアリングインテストの方と相談して決定したいと考えております。
参考までに,現在の製品開発チームの編成を記載します。
■開発メンバーの裁量
- フロントエンドエンジニア: 2名
- バックエンドエンジニア(フロントも触る): 2名
**まなびポケット開発チーム**
- バックエンドエンジニア(フロントも触る): 4名
その他,サービス横断のSREが2名と,業務委託で非常勤のソフトウェアエンジニアが3名ほど居ます.
■必須条件
- RubyおよびRuby on Railsでの開発経験
- TDD,BDDを推進した経験
- Dockerを使用した開発の経験
- Jenkins, CircleCI, WerckerなどのCIシステムを利用・構成した経験
- Terraform, Ansible, SaltStack, AWS, GCP, Azureなどのテクノロジーを活用してテスト環境の配備と構成管理を行った経験
- ソフトウェアエンジニアリングの力で製品の品質を担保しながらデリバリを加速させるという意志
■歓迎条件
- Cypressを使用したE2Eテストの設計・実装経験
- Turnipを使用した仕様化テストの設計・実装経験
- SQuBOKに関する知識
- JSTQB認定