Skillnoteにジョインして1ヶ月でやったこと、これからやりたいこと
Skillnote Advent Calendar 2025のトップバッターを務めます、QAエンジニアのyudenです。
普段はnoteしかやらないのですが、今回のアドカレを機にZennのアカウントを作成しました。
さて、前職の日本ナレッジを10月末で退職し、11月からSkillnoteにジョインしました。
そこで今回の記事では11月いっぱいで何をやり、これから何をやりたいかを書きます。
言いたいこと
- Playwrightカイゼン活動で自動テスト基盤の強化をした
- 単体・結合レベルの戦略を見直し、ピラミッドの底辺を広げたい
- 品質で選ばれるSkillnoteを作りたい
やったこと
三連休を挟み、火曜日が初めての出社日でした。
入社後はオリエンテーションをこなしつつ、初週から結合テストの実施を行いました。
並行して、現在リグレッションテストとして稼働しているPlaywrightのコードを確認し、リファクタリング・エンハンス項目がないか調査を実施しました。
自動テストの基盤強化:リファクタリングの実施
storageStateを使用した認証情報の使いまわし
セキュリティインシデントの香りがする言葉ですね・・・。
Skillnoteのシステムテストレベルのリグレッションテストは、管理者ユーザーでログイン後に何かの操作をする、というシナリオが大部分を占めています。
1回のログインの実行時間は短くとも、積み重なれば大きな時間を占めるものになります。
今後の自動テスト拡大に向けて、storageStateにログインした後のページコンテキストを保存し、各テストはそのページコンテキストを使うように修正しました。
ただすんなり修正できたかというと、いくつか壁もありました。
- 認証後のページコンテキストがテスト実行中に削除される
→テスト手順に"ログアウト"する処理が含まれおり、認証情報が更新されてしまったようです。該当ケースではログアウト処理を行わずまっさらなページコンテキストを渡してあげることで解決しました。 - 修正中に新規テストケースが追加され変更量が膨大になる
→flakyテストや新規ケース対応はある程度割り切って、後日対応とすることにしました。
ログ出力の改善
これまでテスト実施中の特に表示しておきたいメッセージを console.log()で出力していましたが、これをPlaywrightテストレポートのみに表示するようにしました。
ログの出し方、内容などは賛否両論ある話ですが、今回はGitHub Actionsで確認したいログと、Playwrightレポートで確認したいログという2つのスコープで出し方を以下のように決定しました。
Playwright Report: そのテストを実行したときの挙動が残る(リソースを削除したかどうかなど)
GitHub Actions: 各テストは関知せず、あくまでPlaywtightの実行挙動が残る(何を実行した、何が失敗した、いまどのテストを実行しているなど)
しかしテストコード中に以下のようなロギングのコードが複数行にまたがると可読性を損なうため、今後はFixturesを使用してLoggerの共通化を図っていきます。
test.info().annotations.push({
type: 'info',
description: `デモデータを削除しました。`,
});
そのほか、軽微な「面倒なこと」や「エンハンスの障害になるもの」を取り除くリファクタリングを実施しています。
まだまだタスクが山積みですが、1つずつ優先度や影響度を考えながら取り組んでいきます。
やりたいこと
テストピラミッドの上下を両側から攻略していく
システムテストレベルのE2Eリグレッションテストはすでに実装が進んでいますが、その一方で(特にフロント側の)単体・結合テストは戦略を練れていない部分が多い印象です。
大きく安定した品質基盤には、広い底辺が必要です。
すでにJestを活用したフロント単体テストが検討されていましたが、なかなか効果を実感できるようなアウトプットが出ていない状況です。(まだ開発者自身がメリットを感じられるような仕組みに出来ていません。)
そのため単体ではなく結合レベルに視野を広げ、ピラミッドの底辺の広げ方を検討かつ開発チームの方々がしっかり"テストをやる意義"を感じられるようなアウトカムを提示し、「テストをやりたい」に昇華できればと考えています。
(E2Eリグレッションでどうにかしようとすると、flakyなものがたくさん生産されて、このメンテナンス工数だけでとんでもないことになりますしね・・・)
品質で選ばれるSkillnoteを目指す
これは私のキャリアとして考えている"20年後に次の品質を作る人になる"にも繋がる話です。
Skillnoteは「つくる人が、いきる世界へ」をミッションに「日本初、世界一」のプロダクトを目指して日々邁進しています。
この「日本初、世界一」を目指すには安定した品質基盤が不可欠と考えています。
今は現地現物を大切にするプロダクト開発や、優秀なフロントランナーのメンバーに支えられて、多くのものづくり業界の方々に受け入れていただいています。
しかし今後さらにSkillnoteの輪を広げていくには、使う/使った人たちが幸せになれる等、さまざまなエンハンスが必要です。
このエンハンスの障害になりうるものは現時点で予防しておきたいと考えています。
この予防の1つが「大きく安定した品質基盤」です。
そしてこれを実現することでお客さまに「品質で選んだらSkillnoteだった」と仰っていただけるような世界も目指します。
さらにこの世界の実現により、私の20年後の目標の「次の品質を作る人になる」に向けた強固な知識・経験の土台を作ります。
最後に
Skillnote Advent Calendar 2025の1日目は、私yudenがSkillnoteにジョインしてから1ヶ月でやったことと、これからやりたい事を語りました。
もっと技術チックなお話を書いた方が良かったのかもしれませんが、それはまた別の機会に…。
それではSkillnote Advent Calendar 2025開幕です!
Discussion