Cypressとソフトウェアテストの基礎知識 :学習記録#2

はじめに

主にCypressについて、その学習記録を残します。
Cypress以外にも、ソフトウェアテスト一般的なものやエンジニアの教養的なもの(テストは意識してます)も学習したので、前回からタイトルを変更しました。
前回の記事については、こちらを参照してください。
bonomodel.hatenablog.com

モチベーション

業務の中で、Cypressによるテスト自動化に取り組み始めています。
Cypressによるテスト自動化を実践するために必要と思ったものを、少しずつ進めています。

Cypressとは

www.cypress.io
主にE2Eテストの自動化に使われる、テストフレームワークです。
JavaScript/TypeScriptで書けます。

やったこと

Cypress
  • Advanced Cypress(by Filip Hric)

testautomationu.applitools.com
Cypressの実践的な使い方を学べました。
APIを通じてアプリケーションの動作をテストしたり、複数のアサーションをする方法などがよかったです。

  • Cypress with TypeScript(by Filip Hric)

testautomationu.applitools.com
一通りやりました。
CypressでTypeScriptを使うメリットを感じるためにも、もっと使う必要があると感じました。

  • Test Automation for Accessibility(by Marie Cruz)

testautomationu.applitools.com
一通りやりました。
Cypressのプラグイン以外にも、色々とAccessibilityチェックする機能の紹介がありました。

  • Acceptance Test Driven Development for the Front End(by Lewis Prescott)

testautomationu.applitools.com
ATDDの解説とそれを小さく実践する講座でした。
受け入れテスト(Cypress)をして、それが通らない場合は単体テスト(Jest/Testing-library)をする。
その結果に合わせて開発コード(React)をリファクタリングして、テストが通るようにする。
といった具合でした。
個人開発などで実践してみないと、その良さがまだ分かっていないかもしれません。

TypeScript
  • Learn TypeScript(Lessonのみ)

www.codecademy.com

フロントエンド、CypressでTypeScriptが必要になるためやりました。
Free会員なのでLessonのみですが、なかなかやりごたえがありました。
TypeScriptに限らずですが、手を動かさないと実際理解できないことが多いと思いました。

CI/CD

Github Actions for Testing(by Matthias Zax)
testautomationu.applitools.com
とても難しかったです。
テストコードを使用頻度の高いものにするためにも、まずは小さく実践しておきたいです。

DevOps
  • Effective DevOps ―4本柱による持続可能な組織文化の育て方

www.oreilly.co.jp
DevOpsは文化というのを、初めて知りました。
今までDev(開発)・Ops(運用)という、技術上の循環プロセスぐらいに思っていました。

ユーザーストーリー

www.oreilly.co.jp
E2Eテストの学習をしているときに、たまに見かけることがあったので読んでみました。
個人的にまとめると「限られたリソースの中で実現可能なものを考慮して、ユーザーにとって使いやすく価値のあるサービスを作る」といった感じだと思います。
思いつきを形にするため、ただ手を動かすだけでは・・・ということなのかもしれません。難しいです。

マイクロサービス

www.oreilly.co.jp
モノリス/マイクロサービス/モノリポあたりの話からはじまって、中立的(and 批評的/経験的)に書かれていると感じました。
マイクロサービスという概念は、Google Cloud Professional Cloud Architectで覚えたきりでした。
単純にモノリスが古くて変更が必要で、マイクロサービスが革新的で良いという二項論ではないとわかりました。
アーキテクチャーってこんなに多くのことを考慮するのかと思いました。個人的にVault(HashiCorp)の話が面白かったです。
www.vaultproject.io

ソフトウェアテスト一般
  • ISTQB Foundation Level(by TM SQUARE)

www.youtube.com
ソフトウェアテスト一般的な知識を得たいと思い、ISTQBのFoundation Levelの上記講座を一通り視聴しました。
各セクションで、小問がいくつかあります。
テストマネジメントは結構間違えました。

www.sbcr.jp
テスト技法の内容が濃かったです。
ソフトウェアテストについて一通り学べました。
教科書として、よいコンテンツだと思いました。

www.kinokuniya.co.jp
ソフトウェアテストについて、網羅的に触れられていました。
言葉が理解しやすかったです。
基礎的なことだけではなく、実務での受け止め方、考え方などにも触れられていました。
テスト自動化のセクションは、特にためになりました。

さいごに

Cypressとソフトウェアテストの基礎知識について、学習記録を書きました。
久々に、紙の本をよく読みました。
図書館でソフトウェアエンジニアの本を借りることができるのは、とてもありがたいです。
アウトプットとのバランスは大事だと思いますが、本でのインプットもいいですね。