以下の記事はQiitaの@okmttdhrさんが記述した「フロントエンドのテストについて考える@2019/12」の紹介記事です。
Webフロントエンドのテストに関して、数年前に比べるとかなり手法が確立されました。そんな中、やはりテストそのものに対する考え方というのはずっと役に立っていると感じます。
この記事では、何をどのようにテストするのか、テストで何を目指すのか。そのようなことを書いてみたいと思います。
TLDL
全体的に抽象的でポエムっぽい記事となっております!!
テストは品質をあげない
テストはソフトウェアの品質を測る指標にはなりますが、テストそれ自体は品質を上げるわけではありません。
例えば、むやみにカバレッジをあげることはコストを増やしますし、あまり意味もないでしょう。そのため、テストの目的や種別、それぞれで担保すべき要素を理解しておくことが重要だと考えます。
テストの役割とは
テストをすることで、結果的には品質に貢献しますが、あくまでひとつの要素として捉えておくことが必要です。「品質」は思うより大きな言葉で、そもそもの技術的なアーキテクチャはもちろん、技術以外にも多くのステークホルダーが関わっています。
ソフトウェアにおけるテストの役割は、ひとことでいうと、信頼できるソフトウェアをつくることだと考えます。それはむしろ、開発者視点での役割が大きいです。
例えば、以下のようなことが達成できます。
- 機能追加、変更、削除時に既存の機能を壊さない可能性を上げることができる-
- 開発中に予期せぬエラーを見つけやすくなり、時間を節約できる
- 例えエラーが見つからないとしても、コードの観点で機能が担保されていれば、信頼できるコードをデプロイできる
- テストファーストのプロセスでは、テストケース(仕様)から実装を考えることができ、設計がしやすくなる
テストの種別とフロントエンド
テスト種別の整理をしながら、フロントエンドのテストについて考えてみます。
ざっくり説明すると、入門コース最後の節では、
- VirtualBox上に構築したUbuntu環境から
- Node.js,Express,Webpack,PostgreSQLにて制作したGitHub認証入りのWebサービスを
- テストコードやCI、脆弱性対策も完備して
- Herokuにgit pushしてデプロイする
|
|
|
|
|
Related posts:
【コラム】「キャリアパスと評価制度を刷新」Gunosyエンジニア組織が取り組む改革の裏側を聞いてみた
【コラム】コードを書かない系エンジニア(プリセールスエンジニア)の仕事と価値
【Column】24 Programming Languages That Pay Top Salaries: Scala and More
【Kotlin】MockKはKotlin独自の言語仕様をほぼ網羅しているモックライブラリ
【ニュース】日本で活躍する外国人エンジニア向けコミュニティ”CodeGate”発足のお知らせ
【特集記事】ITエンジニアに必要な基礎スキル6つ|おすすめの勉強法を紹介!
【Kotlin】Unit Testing Firebase with Kotlin
【Analytics】Native Analytics on Apache Cassandra with Knowi: Tutorial
【Column】99% of Successful Software Engineers Practice These 10 Habits and Skills
【Swift】7 Awesome Open Source SwiftUI Projects to Inspire You (Part 2)
【Swift】7 Awesome Open Source SwiftUI Projects To Inspire You
【機械学習】Machine Learning: Google Colab- Why, When and How to Use it
【Column】The Future of Code Is in Your Browser
【Firebase】Top 3 open-source Firebase alternatives for 2020
【Docker】TIME TO SAY BYE BYE DOCKER !!! Era of Docker is over...
【JavaScript】The webpack plugin I can't live without
【特集記事】プログラミングスクールで「飛躍成長」する方法論【失敗を極力回避】
【特集記事】プログラミング初心者が知っておきたいサイト
【JavaScript】6 Reasons Why You Should Learn JavaScript
【Node.js】Node.jsでサーバーサイドJavascriptに挑戦
【Flutter】初めてのアプリを公開するまでに参考にしたサイト一覧
【Flutter】社内でFlutterのハンズオンを行ったので、資料を公開します
【Kotlin】Sequences vs Iterable in Kotlin
【Python】35 Questions To Test Your Knowledge of Python Sets
【Azure】How To Host an Angular Static Website on Azure
【Python】The Python Standard Library — modules you should know as a data scientist
【AWS】Getting started with Amazon MQ
【React】How to Deploy Your Static Sites for Free
【Column】5 Technologies to Pick Up During Quarantine and Improve Your Software Engineering Skillset
【Column】Productivity Tips For Programmers