テストに関するcarolina04のブックマーク (33)

  • 【読書】Unit Testing Principles, Practices, and Patterns

    読書】Unit Testing Principles, Practices, and Patterns 感想 「テストは分類器」であるととらえ、混同行列における偽陽性を取り除くことが、単体テストで注力すべき柱であるという視点が得られたのが大きい。偽陰性を出さないことも重要ではあるが、プロジェクトの持続的な成長の観点からは偽陽性を出さないようなテストを書くことが最も重要である、と意識するだけでもテストの書き方は変わる。どうすればそのようなテストを書けるのか?という疑問にも答えが示されている。 数学的な背景のある著者は、プログラミングのガイドラインは数学的な定理と同様に第一原理から導出されるべきであるとの立場に立っており、書は一貫して根的な問いから徐々に論拠を構築して、最終的な結論に至るようなボトムアップ式の展開となっており、非常に理解しやすく腑落ちするところが多かった。 単体テストや統

    【読書】Unit Testing Principles, Practices, and Patterns
  • data-testidはいつ使うべきか?そもそも使うべきなのか? | フューチャー技術ブログ

    Playwrightあるいはそのロケーターの元ネタとなっているTesting Libraryでは、DOMを指定する方法として data-testid 属性を扱ったクエリーを提供しています。どちらでも getByTestId(ID文字列) メソッドを使い、この属性値を使った要素の取得が行えます。しかし、ドキュメントを見ると、PlaywrightもTesting Libraryも、「他の手法が使えないときの最終手段」としています。 In the spirit of the guiding principles, it is recommended to use this only after the other queries don’t work for your use case. Using data-testid attributes do not resemble how your

    data-testidはいつ使うべきか?そもそも使うべきなのか? | フューチャー技術ブログ
    carolina04
    carolina04 2023/11/29
    Testing LibraryもPlaywrightも、どちらもリファレンスでは同じような並びに並んでいることがわかります。アルファベット順ではないです。この順番で利用を検討していけば良いという推奨の順番と考えても良い
  • 【フロントエンド】コンポーネント指向 React / Vue のテスト方針 - Qiita

    はじめに 今回紹介するのは、ReactVue などの「コンポーネント指向のフロントエンド開発」における「テスト方針の考え方」と、それを実現するための「方法論」です。 初めて React などのコンポーネント指向のテストを書くとき、どういう考え方・方針でテストを書いていくのか分からず悩んだ人も多いのではないでしょうか。 この記事ではその疑問の1つの解として、React 公式で推奨されているテストライブラリ Testing Library の開発者であり、Testing Trophy というテストコンセプト考案者でもある Kent C. Dodds の考え方とその実現方法を紹介していきます。 社内のシステムでも実際にこの Kent のコンセプトに従いテストの運用をしていますが、これによって「壊れにくいテスト」がフロントエンドReact)で書きやすくなっています。より正確に言うと「壊れる

    【フロントエンド】コンポーネント指向 React / Vue のテスト方針 - Qiita
    carolina04
    carolina04 2023/11/28
    “Kentは「テストの効率より効果に目を向けるべきだ」「ソフトウェアが正しく動くという保証こそ大切なテストを書く目的だ」という考えを広めるためにTestingTrophyというコンセプトを作った”
  • フロントエンドの書くべきだったテスト、書かなくてよかったテスト

    https://offers.connpass.com/event/299909/ 登壇資料

    フロントエンドの書くべきだったテスト、書かなくてよかったテスト
  • テスト観点とは?必要性や洗い出すための要素、つくり方を解説|ソフトウェアテストのSHIFT

    ソフトウェアテスト・ 品質保証 セキュリティ UI/UX DX カスタマーサクセス コンサルティング Our Services サービス ソフトウェアテスト・品質保証

    テスト観点とは?必要性や洗い出すための要素、つくり方を解説|ソフトウェアテストのSHIFT
    carolina04
    carolina04 2023/09/29
    “テスト観点とは、テストにおける「(テスト目的)のために(対象)の(部品)の(何)を確認する」の「何」にあたります。 これだけだと具体的にイメージしにくいと思いますので、例をあげてご説明します。 ”
  • フロントエンドテストはじめの一歩 [FLEXY meetupイベントレポート] - FLEXY(フレキシー)

    2023年6月27日に開催されたFLEXY meetupのテーマは「フロントエンドのテスト」です。 技術の進化とともにバックエンドとフロントエンドが疎結合になる今、フロントエンド領域ではテストの重要性が高まっています。 一方、現場レベルではテストコードを書いたことがなく、何から始めるべきなのか悩みを抱えているエンジニアは多いのではないでしょうか。 そこで今回は、実際にフロントエンドのテスト導入を行っている古川さん、nus3さんの2名がディスカッション。「フロントエンドテストはじめの一歩」として今、何ができるのかを実例も交えながら教えていただきました。 イベント概要 技術の進化に伴い、アーキテクチャレベルでバックエンドとフロントエンドが疎結合になった今、フロントエンド領域におけるテストの重要性について注目が集まっています。 一方でまだ手法が広まっておらず実際にテストコードを書いたことがないた

    フロントエンドテストはじめの一歩 [FLEXY meetupイベントレポート] - FLEXY(フレキシー)
  • Jestのuiテストがつらすぎるので愚痴らせてください。そしてブラウザテストで本質的なuiテストをしよう

    ここから下で話す際、主に使う言語・フレームワーク・ツールとしては - Typescript - React (Next.js) - Jest - React Testing Library - ブラウザテストツールとしてPlaywright を前提としています。ただ話す内容の質的な部分はVueでもSvelteでも、Vitestだろうがあまり変わらないだろうなと思ってます。そう思って見ていただけると助かります。 現代ではReactUIの単体テスト・インテグレーションテストを書く場合、Jest x React Testing Library を使うのが一般的かと思います。皆さんはJestでUIテストを書いていますか?Jestでコンポーネントの単体テストを書いていると辛いことがたくさんありませんか?例えば 大量のライブラリのモックによる(これってテストやる意味あるの・・・?)と感じる虚無感

    Jestのuiテストがつらすぎるので愚痴らせてください。そしてブラウザテストで本質的なuiテストをしよう
  • Web フロントエンドにおける API モック戦略

    はじめに 新規開発のプロジェクトでテスト戦略を立ててしばらく開発をしています。そのテスト戦略の内の 1 つに Web API モックの運用ポリシーを決めていたのですが、大きな問題がなく運用ができているので「API モック戦略」と大袈裟に題してみました。 特に奇抜なことはしていないですが、振り返りとしてまとめたいと思います。 目的 Web フロントエンドの開発時にモック API を利用して動作確認・自動テストをしたい 開発サーバを起動するだけでブラウザで動作確認をしたい Testing Library などを用いた UI コンポーネントの振る舞いを自動テストしたい モックデータの管理を簡単にしたい ブラウザでの動作確認と自動テストで同じモックデータを利用したい 前提 API のモックサーバは Mock Service Worker (以下 MSW と呼ぶ)を利用する。MSW のメリットや利用

    Web フロントエンドにおける API モック戦略
    carolina04
    carolina04 2023/03/11
    ルーティングに徹する人 レスポンスを出し分ける人 レスポンスを定義する人 の様な役割でファイルを分割すると、エンドポイントやテストの為のレスポンスの出し分け条件が増えてきた時も見通しがよいと感じました。
  • Datadog SyntheticsのSubtestでブラウザテストをComponent化する|Offers Tech Blog

    概要 こんにちは、Offers を運営している株式会社 overflow のバックエンドエンジニアの shun です。今回は、Datadog Synthetics 上でブラウザテストを作成する際に利用できる Subtest についてご紹介します。 Datadog Syntheticsとは? Datadog という SaaS の一機能で、主にブラウザテストを GUI で作成し、定期実行 or CI 経由の実行を可能にしてくれるものです。 ブラウザテストの作成を大量に行う際、当然メンテナンスコストもかかってきますが、今回ご紹介する Subtest を用いると、比較的メンテナンスがしやすい形になります。 Subtestとは? 簡潔にいうと、一度作成したブラウザテストを他のテスト上でも使い回せるようにComponent化できる 機能です。フロントエンドのように Props 設計なるものは考慮不要で

    Datadog SyntheticsのSubtestでブラウザテストをComponent化する|Offers Tech Blog
  • jest-html-reporters

    Jest reporter English | 简体中文 Jest test results processor for generating a summary in HTML Example page https://hazyzh.github.io/report.html Installation # yarn yarn add jest-html-reporters --dev # npm npm install jest-html-reporters --save-dev Usage Configure Jest to process the test results by adding the following entry to the Jest config (jest.config.json):

    jest-html-reporters
  • フロントエンドのテストのモックには msw を使うのが最近の流行りらしい

    皆様フロントエンドのテストを書いていらっしゃいますでしょうか? フロントエンドのテストを書くときには API コールする処理を全てモックする必要があります。外部の API をコールする処理をテストに含めると API サーバーが落ちているなどの外部の要因によってテストが失敗してしまう可能性がありますし、テストを実行するたびに実際に API をコールしてしまうとサーバーに負荷がかかってしまうなど外部に対しても悪影響を与えてしまいます。 さて、従来のモックする手段としては Jest のモックを利用して axios や fetch などのモジュールをモック化する手法がよく使われていたかと思います。 最近のテスト手法として API コールをモックする際に Jest ではなく Mock Service Worker (以下 msw )を使用する手法が注目されています。実施にどのように使用されているのか

    フロントエンドのテストのモックには msw を使うのが最近の流行りらしい
    carolina04
    carolina04 2022/04/26
    “テストを書く時にベストプラクティスとして「できる限りモックを使用しない」という観点があります。モックを多く使用すると、テストの信頼性が損なわれるためです”
  • ビジュアルリグレッションテストのすすめ

    日々いろいろなWebサイトの制作や修正を対応していく中で、修正したページとは関係ない(と思っていた)ページで表示が崩れてしまったことってありませんか? 私はたびたび経験があります。 毎回目視で全ページをチェックすれば防げるのかもしれませんが、それは現実的ではありません。 自動で全ページをチェックしてくれて不具合があれば教えてくれる、そんな便利なツールがあればと何度も思いました。 どうやら現代の技術でそれは作れるみたいです。ビジュアルリグレッションテストというらしいです。 ビジュアルリグレッションテストとは ざっくりいうと「見た目の比較」をするテストのことです。 変更前のWebサイトのスクリーンショットを用意しておき、変更後のスクリーンショットを撮り比較することで、どこが変わったか差分を表示し確認することができます。 どうやって使うの ビジュアルリグレッションテストを導入するための方法はいく

    ビジュアルリグレッションテストのすすめ
  • (自分の) JavaScript のユニットテストの書き方

    (社内用ドキュメントの公開版) テストのポリシー 前提として、ユニットテストを導入するコストを、限界まで低くすることを目指す。テストが根付いていない言語環境や文化では、放っておくとテストが書かれないまま実装が進行し、結果としてテスト不可能な巨大な雪だるまが完成する。こうなるとメンテコストが高いE2Eを大量に書かないといけなくなり、テストの実行時間が膨れ上がっていく。 そうなる前に、ユニットテストを書きやすい環境を維持し、ユニットテストとして問題を切り分けられるような環境を維持する。とにかく書きやすさを重視し、一つのユニットテストを書くオーバーヘッドを限界まで下げる。 最初の一つを早い段階で書く 自分の経験的には、ユニットとテストの最初の一つを書いたらあとは自然とその周辺で増えていく。サンプルがあったら人はコピペする。逆にいうと最初の一つを書かない限り一切書かれない。まず一つ用意するのが大事

    (自分の) JavaScript のユニットテストの書き方
    carolina04
    carolina04 2022/03/22
    ユニットテストを導入するコストを、限界まで低くすることを目指す。テストが根付いていない言語環境や文化では、放っておくとテストが書かれないまま実装が進行し、結果としてテスト不可能な巨大な雪だるまが完成
  • Common mistakes with React Testing Library

    Common mistakes with React Testing LibraryMay 4th, 2020 — 15 min read Hi there 👋 I created React Testing Library because I wasn't satisfied with the testing landscape at the time. It expanded to DOM Testing Library and now we have Testing Library implementations (wrappers) for every popular JavaScript framework and testing tool that targets the DOM (and even some that don't). As time has gone on,

    Common mistakes with React Testing Library
  • UI テストの何が辛かったのか - 実装の詳細をテストするということ(翻訳) - Adwaysエンジニアブログ

    こんにちは。自称 Kent C. Dodds ファンの梅津です。 最近はまっていることは Kent のブログを読み漁ることです。 これは Kent C. Dodds が書いた Testing Implementation Details を翻訳したものです。 kentcdodds.com Enzyme のテストの辛さ 実装の詳細をテストすることの弊害 Testing Library による解決方法 などが解説されています。 また、最後の方に「テストは何のために、誰のために書くのか?」が語られているのですが、いやーこれが当に深い! 元の記事が書かれたのは 2018 年ですが、とてもいい内容だったので今更ながらまとめてみました。 皆さんも是非読んでみてください。 Testing Implementation Details 実装の詳細をテストすることは災いの元です。 なぜそうなるのか?そして

    UI テストの何が辛かったのか - 実装の詳細をテストするということ(翻訳) - Adwaysエンジニアブログ
    carolina04
    carolina04 2020/12/09
    実装の詳細とは、あなたのコードのユーザーが通常使用したり、見たり、知ったりすることのないものです。
  • 組織にテストを書く文化を根付かせる戦略と戦術(2020秋版) / Strategy and Tactics of Building Automated Testing Culture into Organization 2020 Autumn Edition

    ソフトウェアテストシンポジウム 2020 新潟 JaSST'20 Niigata 基調講演 2020年9月28日(月) http://www.jasst.jp/symposium/jasst20niigata.html

    組織にテストを書く文化を根付かせる戦略と戦術(2020秋版) / Strategy and Tactics of Building Automated Testing Culture into Organization 2020 Autumn Edition
  • 開発チームの生産性・健全性を客観的に知るためにリポジトリ履歴から機械的に可視化するツールを作った - Qiita

    はじめに ソフトウェア開発のチームの生産性や健全性というものは、内部の体感的として理解できるものの、外部の人間からは見えにくいものです。こういった情報の非対称性は開発チーム外の人々との関係の中での問題の原因になってきました。 また、複数の開発チームやプロダクトを束ねるEM、CTOや、管理職にとってそれぞれの状況を客観的な数字やグラフで可視化することは、全体的な戦略を考える上でも重要な参考情報になります。ですが、アンケートやプロジェクト管理を増やすほど、どんどんと開発メンバーに負担をかけてしまうことになり、計測のし過ぎによる疲れなども誘発してしまいます。 稿では、gitリポジトリのログ情報から、いくつかのグラフを生成し、チームの状況を可視化するためのツールgilotを作成したので、その目的と意図、そして使い方、注意点を解説します。 アプローチ方法 gilotのアプローチは、git log

    開発チームの生産性・健全性を客観的に知るためにリポジトリ履歴から機械的に可視化するツールを作った - Qiita
  • bugspots を実際に利用してみて - Qiita

    bugspotsについて igrigorik/bugspots グーグルのバグ予測アルゴリズムを実装したツール「bugspots」について グーグルのバグ予測アルゴリズムを実装したツール「bugspots」、オープンソースで公開 - Publickey 上記記事が参考になります。 面白そうだし、品質あがるのであればやってみたい、やってみよう。 やってみるぞ 導入の仕方は、READMEに書いてある通りで動くので割愛。 実行。go。 $bugspots . Scanning . repo Found 1234 bugfix commits, with 1234 hotspots: Fixes: - fix a comment - Fixed index hogehoge Hotspots: 0.8875 - Gemfile.lock 0.8478 - Gemfile 0.7712 - app/

    bugspots を実際に利用してみて - Qiita
  • JaSSTソフトウェアテストシンポジウム-JaSST'15 Hokkaido レポート

    基調講演 セッション1 「探索的テスト - アジャイル時代の効率的なテストを考える」 高橋 寿一 (「知識ゼロから学ぶソフトウェアテスト」の著者) 講演資料 (PDF : 4,036KB) セッションの内容 現代のソフトウェア開発は、ウォーターフォールモデルから、アジャイルへと進んでいるように思えます。その開発スタイルは品質よりスピードを重視しているのではないでしょうか。例えばGoogleではテスト担当者という職種の人がほとんどいなく、開発者だけでソフトウェア品質を担保しています。そういった状況の中、私たちのテスト手法は旧来の方法でよいのでしょうか? 講演では、日ではあまり実践されていない、スピード・効率重視の探索的テストを紹介します。また、ただ探索的テストを紹介するのではなく、旧来のテスト手法との比較やGoogleMicrosoftといった米国西海岸の開発スタイルと対比しながら説明

  • ビジョナリー・QA:グロービスQAチームの理想と3つのゴール|グロービス・デジタル・プラットフォーム

    「究極的には、QAチームは無いのが理想」と言い切るグロービスQAチームが少数精鋭で挑むチャレンジをご紹介します。アジャイル開発の品質のあり方、そして理想に至る短期・中期・長期のゴールとは? 結論ファーストはじめに、エントリーの要約を載せておきます。 スピードの速いアジャイル開発において、もはや品質はQAエンジニアやQAチームだけが保証するものではありません。企画からリリースまで関わるチーム全体で創り上げていくものなのです。ビジネス価値向上への貢献を使命とするグロービスQAチームは、開発チームから独立した立場でスピードと品質を両立すべく工夫したテストはもちろん、データドリブンの品質改善活動や、SM・POやステークホルダーへのアプローチを通じた上流からの品質向上および組織の品質文化醸成に取り組んでいます。QAチームがいなくても高品質のプロダクトが素早く提供される組織こそが、グロービスQAチー

    ビジョナリー・QA:グロービスQAチームの理想と3つのゴール|グロービス・デジタル・プラットフォーム
    carolina04
    carolina04 2020/09/02
    PO(Product Owner)やSM(Scrum Master)を含む開発チームとの綿密なコミュニケーションを取って認識の相違を防ぐと同時に、探索的テストを最初に行ってテスト対象の特徴を早期に把握します。それをもとにMind Ma