並び順

ブックマーク数

期間指定

  • から
  • まで

281 - 320 件 / 545件

新着順 人気順

coverageの検索結果281 - 320 件 / 545件

  • 【Ruby版】xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義) - give IT a try

    はじめに テストダブル(Test Double)について、わかりやすく解説した技術記事はないかな〜と探していたところ、こちらのブログ記事を見つけました。 goyoki.hatenablog.com とても詳しく解説されていたので、まさに打ってつけだったのですが、ふだん僕はRubyを使っているのでサンプルコードをRubyにしてみたいな〜と思いました。 そこで今回のエントリでは、原著者の id:goyoki さんの許諾をいただいた上で、上記のブログ記事の説明文を維持したまま、サンプルコードだけをRubyに書き直してみました。(goyokiさん、どうもありがとうございます!) ただし、Ruby版のコードにあわせて説明文を改変した箇所もいくつかあります。 それでは以下がRuby版の「xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の

      【Ruby版】xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義) - give IT a try
    • CircleCI (Performance Plan) vs. Github Actions - Diary

      CircleCI (Performance Plan) vs. Github Actions 結論: CircleCI を買おう 現在ユビレジでは CI は CircleCI (Performance Plan)と TravisCI を使っていて、 CircleCI: サーバーサイド(いろんな言語がある) Web フロントエンド(Rails アプリのなかで webpack が動いていたり、 create-react-app で作られたペラっとしたものがあったりいろいろある) TravisCI: iOS アプリ というような感じで使い分けている。 Performance Plan なんだから iOS のも Travis から引っ越せばいいんじゃねえの?と思わんでもないのだが、 Travis の annual 課金がまだ残ってる iOS の CI と TravisCI と CircleCI に

      • Web フロントエンドのレガシーコードを置き換えるためのテストの考え方 - ドワンゴ教育サービス開発者ブログ

        この記事は、ドワンゴもスポンサードしていた JSConf JP 2021 にて、「Web フロントエンドのリプレースを支えるテストの考え方」というタイトルで berlysia がトークした内容をもとに再構成したものです。トークのアーカイブもご覧いただけます。 この記事は ドワンゴ Advent Calendar 2021 の3日目の記事です。 speakerdeck.com 宣伝 『ドワンゴ EdTech Talk』と題した事業説明イベントを 12/8(水) に開催します。 ドワンゴの教育事業で提供するオンライン学習サービス「N予備校」のライブ配信の授業を体験いただきながら、教育事業での取り組みを知っていただくためのイベントです。 最後までご参加いただくと N 予備校の有料会員相当の教材を 3 か月間無料で利用できる ように用意をしております。 Web 開発を学ぶ教材として好評をいただいて

          Web フロントエンドのレガシーコードを置き換えるためのテストの考え方 - ドワンゴ教育サービス開発者ブログ
        • Goにおけるテスタブルな時刻の取り回し

          Photo by steve_jon on Unsplashはじめにはじめまして。Finatext で保険サービスの開発(主にサーバーサイド)をしているすがやです。 いきなりですがみなさん時をかけてますか? 私はかけてます。 …時刻を扱う実装というのは、得てして問題を生みやすいものです。 この記事では時刻の取り回しで生じる問題と、弊社のGoでのサーバー実装におけるそれらの問題との向き合い方を説明します。 時間に起因する課題unit testしづらい問題語り尽くされた話題ではありますが、現時刻に依存した実装はunit testしづらいという問題があります。 たとえば単純な例として呼び出し時点が休日であるかを判定するコードがある場合を考えます。 // IsHoliday 休日か func IsHoliday() bool { dayOfWeek := time.Now().Weekday()

            Goにおけるテスタブルな時刻の取り回し
          • 僕がRSpecでsubjectを使わない理由 - give IT a try

            はじめに 僕は折に触れて「RSpecではなるべくsubjectを使わない方がいい」という発言をしています。 Qiitaとか見てるとRSpecのsubjectを愛用している人が多そうな印象なんだけど、僕はほとんど使っていません。「subjectは原則使わない。明らかにメリットがあるときにだけ例外的に使用する」が僕のポリシーです。ほら、RSpecの(元)メンテナさんもそう言ってるし。 https://t.co/Rp5EiIxCVb #Qiita pic.twitter.com/pMlN35ihEG— Junichi Ito (伊藤淳一) (@jnchito) 2019年5月28日 そもそもの話として、RSpecではsubjectは無理に使わない、というのが僕の持論です。なぜなら無理にを使うと、いびつなテストコードができやすいから。基本はsubjectなしで書く。明らかにsubjectが有効なと

              僕がRSpecでsubjectを使わない理由 - give IT a try
            • TDD with git. Long live engineering.

              Kaigi on Rails STAY HOME Edition (https://kaigionrails.org/) Video: https://www.youtube.com/watch?v=fyvUDLJvpp8&feature=youtu.be

                TDD with git. Long live engineering.
              • TDD研修 by t_wada さん を開催しました - Classi開発者ブログ

                こんにちは。エンジニアの原です。 先日、「テスト駆動開発」の翻訳者として知られるt_wadaさんこと和田卓人さんをお招きして、テスト駆動開発ワークショップの第1回目をオンラインで開催しました。 今回はその様子をお届けします。 本日は Classi 株式会社様にお招きいただき、1日コースの TDD ワークショップをオンラインで行いました。参加される皆様のレベルが高めなので反転学習の要素を取り入れた研修を設計しましたが、予想以上に効果があったと手応えを感じています。ご参加くださいました皆様、ありがとうございました!— Takuto Wada (@t_wada) December 15, 2020 きっかけ Classiでは毎年外部講師をお招きして勉強会を行っています。 新卒研修を行う中で、「テストコードを実装する際の勘所」をどう伝えようかという話があり、第一人者のt_wadaさんをお呼びして研

                  TDD研修 by t_wada さん を開催しました - Classi開発者ブログ
                • 今さら聞けないビジュアルリグレッションテストをChromaticで始める - Sansan Tech Blog

                  Bill One Entry*1グループの秋山です。 1. はじめに 2010年代前半に登場したReactやVue.jsに代表される宣言的UI実装は、大規模なSPAの構築を可能にしました。その一方、フロントエンド領域に新たなアーキテクチャが導入されたことで、それまでWebアプリケーション開発で定石とされたテスト手法を適用しづらいケースが増え、新たなベストプラクティスが求められるようになりました。 その要請に応える形で、2010年代後半にはフロントエンドのテスト手法に緩やかなパラダイムシフトがありました。この記事ではそのパラダイムシフトを振り返りながら、フロントエンドで必要なテストについて考察し、最後にChromaticを用いたビジュアルリグレッションテストを紹介します。 2. Testing Pyramid と フロントエンド テストを語る際によく持ち出されるメタファとして、Testing

                    今さら聞けないビジュアルリグレッションテストをChromaticで始める - Sansan Tech Blog
                  • sqlcとdockertestでデータベースを使ったテストを書こう | gihyo.jp

                    Goにおけるデータベース操作とテスト Goでデータベースを操作する際には、標準パッケージであるdatabase/sql、GORM、entなどの様々な選択肢が存在します。多くのライブラリではGoのコードを定義してSQLを生成しますが、sqlcはSQLをコンパイルしてGoのコードを生成するのが特徴のライブラリです。 このアプローチには、最終的に実行されるSQLが明らかであることやデータベースとやりとりするためのデータ構造を自分で定義する必要がないことといったメリットがあります。また、コンパイル時にSQLを解析し型や引数名の間違いを検出できます。そしてなにより、非常にシンプルです。 本記事では、sqlcの一歩進んだ使い方としてdockertestと組み合わせたテストの書き方について紹介します。dockertestとは、Dockerコンテナを立ち上げてテストを実行するための使いやすいコマンドを提供

                      sqlcとdockertestでデータベースを使ったテストを書こう | gihyo.jp
                    • Vue.jsのユニットテスト環境作成方法と見るべきドキュメント | DevelopersIO

                      はじめに おはようございます、加藤です。Vue.jsのユニットテスト環境作成の方法をまとめました。もし、このブログが公開から時間が経っているなら情報が古い可能性が高いです、ご注意ください。 なぜわざわざこんな事を言うかというと、私がこのブログを書いた理由は簡単に環境作成できるにも関わらず古い情報にぶつかって無駄に時間を溶かしたからです。。。 tl;dr Vue.jsのユニットテストの導入方法 マウンティングオプションは mount と shallowMount どちらを使うべきか 見るべきドキュメント 環境作成までがメインでユニットテストの作成方法についてはどのドキュメントを何の為に読んだかをまとめています。 ブログを書く経緯 最近Vue.jsの基礎を勉強したので自主4連休中に、Techpitで販売されているVue.js/Vuexを使ってTrello風アプリを作成しよう!を買ってサンプルア

                        Vue.jsのユニットテスト環境作成方法と見るべきドキュメント | DevelopersIO
                      • 開発時の動作確認ツールとしてCypressのE2Eテストを導入した話 - visible true

                        ユビーAI問診は、Ubieが提供する医療機関向けのプロダクトです。患者さんに対して問診を実施し、医師向けのカルテを作成します。現在は大きく分けて、タブレットとスマートフォンの2つの利用方法があります。 タブレット用、スマートフォン用の画面 これらはどちらもWebアプリケーションとして実装していて、フロントエンドはReact/TypeScriptで書いています。 問診のプロセスは画面遷移が多い ユビーAI問診は紙の問診票で書くような定型的な質問だけでなく、来院した目的に合わせて様々な質問を行います。 例えば「頭が痛い」といった症状を入力した場合、発症時期や部位、痛みの程度、持続時間、経過、頻度などを掘り下げて、更にそれらの回答内容から疑われる疾患に関連する質問を重ねていきます。あるいは「足をひねった」など外傷に関する場合は、スポーツをしていたかや事故かといった状況を聴取したりします。問診の長

                          開発時の動作確認ツールとしてCypressのE2Eテストを導入した話 - visible true
                        • gomockを完全に理解する

                          この記事は 3/27 に開催されたCAMPHOR- DAY内で発表した内容を元にした記事です。 アーカイブはこちら(共有してるスライドの画面が黄色くなっていることは終わってから知りました🥺) この記事では gomock や mockgen の基本的な使用方法から、 gomock の内部の動きまでを紹介します。この記事を読み終わったあなたは思わずgomock 完全に理解した と言っていることでしょう。 基本的にGoの文法を知っていればgomock自体を知らなくても理解できるような説明にしているつもりです。 この記事ではv1.5.0の仕様をもとに話しています。 golang/mock(gomock) とは go 公式が出しているインターフェース定義からモックの生成を行うことができるライブラリです。 生成したモックを扱うパッケージも含まれます。 この先の説明では gomock と呼ぶことにしま

                            gomockを完全に理解する
                          • 発表スライド『DOMのテストがどんどん書きたくなるTesting Libraryの世界への招待』 | Marginalia

                            PHPカンファレンス福岡2023で『DOMのテストがどんどん書きたくなるTesting Libraryの世界への招待』というタイトルの発表をしました。

                              発表スライド『DOMのテストがどんどん書きたくなるTesting Libraryの世界への招待』 | Marginalia
                            • Python開発を円滑に進めるためのツール設定 Part.2

                              2019年9月16、17日、日本最大のPythonの祭典である「PyCon JP 2019」が開催されました。「Python New Era」をキャッチコピーに、日本だけでなく世界各地からPythonエンジニアたちが一堂に会し、さまざまな知見を共有します。プレゼンテーション「Python開発を円滑に進めるためのツール設定」に登壇したのは、Atsushi Odagiri氏。講演資料はこちら ユニットテストツール「pytest」 Atsushi Odagiri氏(以下、Odagiri):では次にpytestです。pytestもけっこう有名になってきたツールです。flake8とかmypyは静的チェックのツールなので、あいつらは実行させない、つまりコードの内容として「何か危ないぞ」とか「型違うよ」というのをチェックしてくれるツールです。pytestは結局のところユニットテストツールなので、テストで

                                Python開発を円滑に進めるためのツール設定 Part.2
                              • テスト未経験から中上級者へのガイドライン!「Jestではじめるテスト入門」出版プロジェクト! - PEAKS

                                なぜ執筆プロジェクトを立ち上げたのか? 2020年の年末から年明けに開催された技術書典10で「はじめてのJest入門」を執筆しました。私自身はIT業界に約10年いますが、受託案件やR&Dのようなプロジェクトに参加することが多く、テストについての経験があまり得られないまま過ごしてきました。そんな中で社内のメンター&メンティープログラムでTDD(Test-Driven Development:テスト駆動開発)について学ぶ機会があり、セッションを通して学んだことを記憶に残す意味でも、この本を書くことに至りました。しかし、前回の書籍ではTDDやテスト自体の概念についてはあまり触れず、セッションで利用したJestの基本的な機能や使い方についてフォーカスしました。 前回の技術書典10のイベントを通じて、同じような悩みや課題感を持った方多くがいることを知ることができました。JavaScriptは元々フロ

                                  テスト未経験から中上級者へのガイドライン!「Jestではじめるテスト入門」出版プロジェクト! - PEAKS
                                • t_wadaさんによるTDD研修をワードクラウド・名言5選で振り返ってみた - Link and Motivation Developers' Blog

                                  (※以下は去年の弊社のQiita アドベントカレンダーに投稿したものです。) リンクアンドモチベーションで、QAエンジニアをしています、代慶と申します。 先日のレガシーコード改善のワークショップに引き続き、和田卓人(t_wada)さんにTDD(テスト駆動開発)に関してワークショップを開催してもらいました。 本記事では、t_wadaさんの頻出していた言葉や名言と共に、当日の研修での学びの概要を伝えていきたいと思います! 当日の流れ 当日は、10人のエンジニアが10時から16時まで研修を受講しました。 前半は、座学メインで、適宜質問にも答えていただきました。 後半は、実習メインで、TDDの実践を行い、t_wadaさんとの公開1on1の時間を設けていただきました。 ※今回の講義は、前もってTDD Boot Campの動画の視聴も行い、よりTDDの理解を深めることができました。 TDDの概要 TD

                                    t_wadaさんによるTDD研修をワードクラウド・名言5選で振り返ってみた - Link and Motivation Developers' Blog
                                  • pytest でテストケース毎に DB を自動的に初期化して、テスト開発体験を向上させる - SalesNow Tech Blog

                                    概要 Web バックエンドのテストコードを書く場合、その多くは DB に依存していることが多いです。 DB 関連のテストは、テストデータの準備やテストケース毎の DB 処理化を適切に行うことが重要ですが、手間がかかる場合あるため、Mock で擬似的にテストしてしまうことも多いかと思います。 ただ、Mock を使ったテストは本質的な問題を検知できない意味のないテストになってしまう可能性があり、可能な限り DB の Mock を行わずに、実際の DB を使用してテストすることが望ましいと考えています。 本記事では、pytest、sqlalchemy、PostgreSQL を使った場合に、テストケース毎に DB を簡単に初期化しつつ、テストケース毎の前提データ登録も簡単うことでテスト開発体験を向上させる方法を紹介します。 前提環境 本記事では、以下の環境を前提として説明いたします。 python

                                      pytest でテストケース毎に DB を自動的に初期化して、テスト開発体験を向上させる - SalesNow Tech Blog
                                    • React でつくるフォーム UI の単体テストと TDD

                                      はじめに 最近「単体テストの考え方/使い方」を読みました。 普段フロントエンドエンジニアとして実装をしている中で、自分が作っている単体テストについての言語化をサポートしてくれました。 この記事では、フォーム UI の実装を通して、コンポーネントに対する効果的な単体テストについて考察し、具体的なテストの書き進め方の一例を提示してみます。 最終的な成果物 この記事で実装するフォーム UI の最終的な成果物は codesandbox で確認できるようにしています。右のペインの「Tests」をクリックするとテストも実行できます。 注意 この記事は「単体テストの考え方/使い方」(以下、本書)の内容に触れていますが、読んでいなくても理解できるように補足をしているつもりです。それぞれのトピックで、文中に本書の該当ページの番号を「(p123)」のように表示しています(いずれも初版のものです)。 react

                                        React でつくるフォーム UI の単体テストと TDD
                                      • rspecを読みやすくメンテしやすく書くために

                                        はじめに 読みやすくメンテナンスしやすいRSpecを書けていますか? RSpecはというかRubyはというか柔軟なので色々な書き方ができてしまいます。 ある程度の規模のテストコードでは、油断するとどこで定義されている let なのかわからないものが登場したり、なぜか作られる(あるいは作られない)謎のレコードでテストが失敗したり、そういった辛い目にあったりするのではないでしょうか。 僕がRSpecを書くときに意識していることをまとめてみました。 これを実践するようになってつらい現象にあうことはずいぶんと減り、ずいぶんと読みやすくなったんじゃないかなと思っています。 ※効果には個人差があります。 Ruby on Railsを使ったアプリケーションのテスト向けですがRuby on Rails以外でも使えると思います。 主に以下の影響を強く受けています。 RSpecとセットで使われることが多いFa

                                          rspecを読みやすくメンテしやすく書くために
                                        • Go言語で定数として扱いたいmapを毎回アロケートさせて性能劣化した話 | フューチャー技術ブログ

                                          はじめに失敗談をテーマにした連載の3本目です。 TIG DXユニットの原です。21年度4月に新卒で入社し、2年目となります。 参加しているプロジェクトで、数百万件のデータを処理する機能を担当したことがありました。 本記事はその際の失敗と、その失敗から得た経験を共有するため、執筆しました。 内容のサマリ 本来フィールドで宣言すべき定数的に扱いたい変数を、関数内で毎回生成しreturnしてしまったので呼び出す度に毎回アロケートが発生し性能劣化してしまった Benchmark Test、Profiling、Escape Analysisでどういう挙動になってしまっていたか調べてみた 内容本記事では、まずどのような状況であったかを説明し、どのような順番で問題を解決したかの順で説明します。 主にGoのテストとProfilingに関した内容です。 Goのテストについての関連記事として、Goのテストに入

                                            Go言語で定数として扱いたいmapを毎回アロケートさせて性能劣化した話 | フューチャー技術ブログ
                                          • 「単体テストの考え方/使い方」が主張するたった一つのこと

                                            はじめに 読書会をやってみました オープンロジのエンジニアのrikuto(@riku929hr)です。 社内で「単体テストの考え方・使い方」というテストに関する有名な本の読書会を実施し、1回1時間、15回の開催を経て読み切りました。 原著は「Unit Testing Principles, Practices, and Patterns」で、Oreilly Learning Platformでも読むことができます。 400ページにもわたる本で、読み切るのには大変な手応えがありました。 たぶん読書会のようなものを開催しない限り、僕自身読みきれなかったかもしれません。 しかし読んでみると、著者が主張しているのはごくシンプルなことでした。 この記事のタイトル、ちょっと嘘ついてます タイトルには、「主張するたった一つのこと」としていますが、細かく言えば1つではありません。 この本が主張することはそ

                                              「単体テストの考え方/使い方」が主張するたった一つのこと
                                            • [FastAPI] Python製のASGI Web フレームワーク FastAPIに入門する - Qiita

                                              PythonのWeb frameworkで、Flaskのようなマイクロフレームワークにあたります。 パフォーマンスの高さ、書きやすさ、本番運用を強く意識した設計、モダンな機能などが強みです。 FastAPIはStarletteの肩に乗る形で書かれており、非同期処理が扱いやすいです。 特に、以下の様な特徴があります。 ASGI websocketのサポート GraphQLのサポート バックグラウンドプロセスが扱いやすい python type hintによる自動ドキュメント生成 (Swagger UI) pydanticをベースとしたdata validation 率直に言って、responderに非常に似ています。(でた時期も近いですし、responderもStarletteがベースなので) ですが、下の2つはFastAPIの方がよっぽど使いやすく設計されています。 以下の観点から総合的に

                                                [FastAPI] Python製のASGI Web フレームワーク FastAPIに入門する - Qiita
                                              • みんなで書くGoのエンドポイントテスト - daisuzu's notes

                                                Webアプリケーションサーバーに何か大きな変更をしたいけど、既存のテストだと心許なかったので各エンドポイントにHandlerからのテストを追加することにした。 ただ全部のテストを自分1人で作っていくのはボリューム的に現実的ではなかったので、どうしたらチーム全員が書きやすいテストになるか考えて色々と整備してみた。 テストの書き方がある程度決まっている 期待する結果(want)を全て書かなくても良い テストの前後で必要な処理がわかる 具体例 テストの書き方がある程度決まっている エンドポイントごとにスタイルがバラバラだと都度どう書くか考えなければいけなくなってしまうため、基本的にはリクエストとレスポンスだけテーブルに指定するスタイルが良さそうだと考えた。 簡略化すると以下のような形式。 func TestFoo_Get(t *testing.T) { tests := []struct { n

                                                  みんなで書くGoのエンドポイントテスト - daisuzu's notes
                                                • Goでテストのフィクスチャをいい感じに書く | メルカリエンジニアリング

                                                  Merpay Tech Openness Month 2022の6日目の記事です。 こんにちは、Merpay Credit Design Teamでバックエンドエンジニアをしている@youxkeiです。 テストを書く際、その前提条件としてデータベースの状態をフィクスチャとして準備して、データベースにデータを投入することがよくあります。このフィクスチャはYAMLなどの外部ファイルに書かれることもありますが、この記事ではテストコード上にGoで記述する方法を考えていきます。 この記事では、データベースはリレーショナルデータベースを想定していて、具体例として架空の図書館蔵書管理システムのデータベースを使っています。 素直にモデルを使う 多くの場合、以下のようにデータベースのそれぞれのテーブルに対してモデルが定義されています。 package model import ( "time" ) type

                                                    Goでテストのフィクスチャをいい感じに書く | メルカリエンジニアリング
                                                  • 第4回 テストダブル ~忠実性と決定性のトレードオフを理解する~ | gihyo.jp

                                                    自動テストを書く際に使いどころをマスターしたいテクニックがテストダブル(Test Double)です。テストダブルを効果的に使えばテストの網羅性、速度、再現性を向上させますが、使いどころを誤れば変更や改善の妨げになりかねません。今回は、テストダブルの利点と注意点をまとめます。 テストダブルとは何か テストダブルとは、自動テストに使用する偽物、代用品のことです。たとえば、データベースや外部サービスの動作を模倣した偽物(テストダブル)を作り、自動テストから使います。 自動テストで偽物を活用するテクニックを「モック」(⁠Mock)と呼ぶ方も多いですが、より正確には、テストに偽物を使う技術を総称してテストダブルと呼びます。この場合の「ダブル」は身代わりや影武者のようなイメージでとらえてください。テストに使う身代わりなのでテストダブルです。テストダブルの種類として詳しくはスタブ(Stub⁠)⁠、スパ

                                                      第4回 テストダブル ~忠実性と決定性のトレードオフを理解する~ | gihyo.jp
                                                    • AWS 認定トレーニング「Advanced Architecting on AWS」を受講してみた | DevelopersIO

                                                      お疲れ様です。AWS 事業本部のヒラネです。 AWS 認定トレーニング「Advanced Architecting on AWS」を受講してきたので内容のご紹介や感想をお伝えしたいと思います。 お疲れ様です。AWS 事業本部の平根です。 AWS 認定トレーニング「Advanced Architecting on AWS」を受講してきたので内容のご紹介や感想をお伝えしたいと思います。 AWS トレーニングとは AWS トレーニングとは、AWS の利用方法の知識とスキルを身に付けるための公式教育プログラムです。 クラスメソッドのメンバーズプレミアムサービスにご加入いただいているお客様の場合は、 特別割引価格で受講いただけます! 提供トレーニングの詳細やお申込みは以下 URL をご参照ください。 今回は、トレーニングの中でも「Advanced Architecting on AWS」を受講しまし

                                                        AWS 認定トレーニング「Advanced Architecting on AWS」を受講してみた | DevelopersIO
                                                      • テストコードのリファクタリングが目指すもの/DXD 2021

                                                        学生時代にソフトウェア工学を学び、オブジェクト指向分析/設計に傾倒。執筆活動や講演、ハンズオンイベントなどを通じてテスト駆動開発を広めようと努力している。 『プログラマが知るべき97のこと』(オライリージャパン、2010)監修。『SQLアンチパターン』(オライリージャパン、2013)監訳。『テスト駆動開発』(オーム社、2017)翻訳。『Engineers in VOYAGE』(ラムダノート、2020)編者。テストライブラリ power-assert-js 作者。

                                                          テストコードのリファクタリングが目指すもの/DXD 2021
                                                        • 複数のAPIエンドポイントをまたぐテストをgo testで実行するための仕組み - Pepabo Tech Portal

                                                          こんにちは。技術部技術基盤チームの@k1LoWです。 久しぶりにオンラインで画面越しに会話した弟からLightning Boltというバンドを教えてもらい、うろたえながらもなかなかにハマっています(Apple独自規格のアレではありません)。音源よりも、まずは是非ライブ動画を観てほしいです。 今回は、複数のAPIエンドポイントをまたぐテストを go test で実行するための仕組みについて紹介します。 複数のAPIエンドポイントをまたぐテストを書きたい 現在私はGo言語によるAPIサーバーの開発に参加しています。HTTPでリクエストを受け、データの永続化にはリレーショナルデータベースを使う、よくあるAPIサーバーです。 APIエンドポイントの設計にはOpenAPI Specification v3とそのエコシステムを使用しており、openapi-generator でサーバーとクライアントの

                                                            複数のAPIエンドポイントをまたぐテストをgo testで実行するための仕組み - Pepabo Tech Portal
                                                          • TDD in a React frontend

                                                            2021-01-19 React, tddTDD in a React frontendNowadays, only a few professional developers are left that seriously doubt the value of test-driven-development and test-driven-design (tdd). But the reality of many codebases I have seen is that tdd is often limited to the backend, where the "business logic" lives. Part of this is due to a stigma that frontend development is not "real software developme

                                                              TDD in a React frontend
                                                            • GitHub - Typescript-TDD/ts-auto-mock: Typescript transformer to unlock automatic mock creation for interfaces and classes

                                                              A few years ago we've created this project with the idea in mind that typescript transformers would be easier to configure. Unfortunately the typescript team has no intention to improve the developer experience. You can see more information at this link. We believe that stop developing new features is the best decision to inform who is currently using it and who find it for the first time. We will

                                                                GitHub - Typescript-TDD/ts-auto-mock: Typescript transformer to unlock automatic mock creation for interfaces and classes
                                                              • 4年後までにソフトウェアテストの70%を生成AIが作り、コードの品質は向上するようになるとの予測、IDC

                                                                4年後までにソフトウェアテストの70%を生成AIが作り、コードの品質は向上するようになるとの予測、IDC 調査会社のIDCは、4年後の2028年までに生成AIベースのツールがソフトウェアテストの70%を作成できるようになり、手動テストの必要性が減り、テストのカバレッジが向上することで、ソフトウェアのユーザービリティとコードの品質向上が実現するとの予測を発表しました。 同社によると、生成AIによるテストスクリプトの生成や管理などを含むテスト自動化は日本を除くアジア太平洋地域で特に人気が高まっており、開発者とDevOpsの専門家がこれらの技術を活用することで、ソフトウェア開発全体の自動化をより推進していくことになるとのことです。 また生成AIはレガシーアプリケーションのコードに対するリファクタリングも促進するとしており、2027年までにリファクタリングに関わるコードの変換や開発タスクの50%が

                                                                  4年後までにソフトウェアテストの70%を生成AIが作り、コードの品質は向上するようになるとの予測、IDC
                                                                • GitHub Actionsを使ってGoプロジェクトのCI/CD及びカバレッジ計測をおこなう | おそらくはそれさえも平凡な日々

                                                                  GitHub Actionsを遅まきながら使ってみて、自分のアクティブなGitHub上のGoのOSSプロジェクトで知見がたまったので、共有するものである。 GitHub Actionsについて 非常に良い。VCSとCI/CDの統合は体験が良い。各種イベントをハンドリングできるが、そのイベントが元々Webhookで提供されていたものなので、Webhookを弄っていた身からすると非常に親しみやすかった。コードpush以外のイベントもハンドリングしてプログラマブルに扱えるので夢が広がる。 使い勝手とか具体的に良くなった点 リポジトリ直下の.github/workflows配下に既定のYAMLをpushすると、その設定にしたがって自動でアクションが動いてくれる。ブラウザ操作必要ないのは快適。 GitHub上でいろいろ完結できる Windowsのテストもできる! GITHUB_TOKEN 管理もうま

                                                                  • Next.js の Jest / React Testing Library でモック (mock) を含めた render で開発効率を高めよう | fwywd(フュード)powered by キカガク

                                                                    Next.js でテスト駆動開発を進める時に必ず関門となる各種機能のモックに関するベストプラクティスを紹介します。 今回は Router などの機能をモックした render を作成して、共通のコンポーネントとして利用することを目標としましょう。 バージョン情報 Node.js:15.11.0 React:17.0.2 Next.js:10.2.2 Jest:26.6.3 React Testing Library @testing-library/react:11.2.5 Router を使用した際の問題点 next/router

                                                                      Next.js の Jest / React Testing Library でモック (mock) を含めた render で開発効率を高めよう | fwywd(フュード)powered by キカガク
                                                                    • テスト技法「同値分割」を信頼していいのかわからなくなった - 若くない何かの悩み

                                                                      これまで同値分割を信頼できる手法だと信じてきました。最近になってどうして同値分割が信頼できる方法なのかその理由を私が説明できないことに気づきました。この原因は2つあります: 同値分割の分割の基準が不明確であること 後述するいくつかの仮定を満たさない場合、ある同値パーティションの代表値の出力が正しければその同値パーティションの他の値の出力も正しいといえる根拠に乏しいこと この2つから、不明確な基準の同値分割はその信頼性の説明ができないこと、同値テストは後述するいくつかの仮定が満たされたときのみ有効な手段でありいずれかの仮定が満たされない場合はさして信頼できないことが導かれます。 この記事ではこの結論に至るまでの過程について詳しく説明していきます。なお誤りのご指摘は大歓迎です。ぜひ皆さんで議論しましょう。 同値分割とは 後述する複数の文献の同値分割の説明に共通しているのは以下の2点です: 入力

                                                                        テスト技法「同値分割」を信頼していいのかわからなくなった - 若くない何かの悩み
                                                                      • TEST Study #1「品質とスピード」 #TEST_Study

                                                                        📝 イベントレポートも発信しています 📝 コチラから:https://pr.forkwell.com/events/test-study-01/ ⏳プログラム 0:00 〜 待ち時間 8:07 〜 オープニング 14:33 〜 基調講演「『質とスピード』初演からの変化」テスト駆動開発者 和田 卓人 氏 @t_wada 48:24 〜 「視聴者Q&A / パネルトーク」テスト駆動開発実践者 和田 卓人 氏 × Autify, Inc. CEO/共同創業者 近澤 良 氏 / モデレーター Autify, Inc. Test Automation Specialist 末村 拓也 氏 🐦 気づき・感想をシェアしてね 参加者全員で、この勉強会からの気づきを最大化しましょう! 以下の Twitter ハッシュタグでツイートをお願いします。 #TEST_Study URL:https://

                                                                          TEST Study #1「品質とスピード」 #TEST_Study
                                                                        • “オブジェクト指向”と“テスト駆動開発”は非常に相性がいい 2010年前半におきたツールのムーブメント

                                                                          受け入れテスト駆動開発(ATDD)が2013年からどのように変化してきたかについて、デロイトトーマツコンサルティング合同会社執行役員のkyon_mm氏とBASE BANK株式会社テックリード兼マネージャーの東口氏がトークをしました。全4回。1回目は、ATDDの歴史とkyon_mm氏の試みについて。 ATDDについて8年越しのリプライ kyon_mm氏(以下、キョン):今日のイベントについて説明します。みなさんconnpassでお集まりいただいたと思うんですが、1990年代に広まりはじめたTDD(テスト駆動開発)について、2013年くらいに私がちょっと話をしました。 先日、日本でも有数の優秀なエンジニアたちが集ってプレゼンテーションする「July Tech Festa」というカンファレンスの中で、東口さんがATDD(受け入れテスト駆動開発)のプレゼンテーションをしていたんですね。そのときに私

                                                                            “オブジェクト指向”と“テスト駆動開発”は非常に相性がいい 2010年前半におきたツールのムーブメント
                                                                          • TypeSpec、Orval、Storybook を使ってフロントエンドのモック生成を自動化する

                                                                            はじめに フロントエンド開発において、効率的かつ一貫性のあるモック生成は非常に重要です。本記事では TypeSpec、Orval、Storybook の 3 つのツールを使用して自動生成でモックを実現する方法を紹介します。 TypeSpec は、大規模な API を提供するために Microsoft が開発し、使用している新しい API 記述言語です。 Orval は、OpenAPI 仕様から TypeScript のクライアントコードを生成するツールです。これにより、最新の API 仕様に基づいたクライアントコードを常に保持し、API との通信がスムーズに行えるようになります。 Storybook は、コンポーネントを独立して開発・テストするためのインタラクティブなツールです。コンポーネントの見た目や動作を個別に確認できるため、UI の一貫性を保ちながら効率的に開発を進めることができます

                                                                              TypeSpec、Orval、Storybook を使ってフロントエンドのモック生成を自動化する
                                                                            • 和田卓人さん(t-wadaさん)をお招きし、「質とスピード」の社内講演会を開催しました - STORES Product Blog

                                                                              2022年6月7日に、テスト駆動開発者の和田卓人さんをお招きし、社内講演会をオンラインで開催しました! 経緯 弊社では、2022年3月にテクノロジー部門のマニフェストとバリューができました。CTO 藤村が「和田さんの「質とスピード」のお話はテックバリューにも通じるところがあるのでは?」と思い、和田さんのお話をみんなに聞いてもらおうとお招きすることになりました。 結論:めっちゃ盛り上がりました 和田さんの講演会をアナウンスした時の盛り上がり 事前アナウンスでも盛り上がったのですが、当日はもっと盛り上がりました! 和田さんのアドバイスを受けて、講演会専用のSlackチャンネルを作成したのですが、講演当日の投稿数は1,223!リアクション数は1,540でした!月に一度開催される全社レビュー会での投稿数が数百なので、桁違いの盛り上がりです。同時視聴数も200人を超え、エンジニアだけでなく、色んな職

                                                                                和田卓人さん(t-wadaさん)をお招きし、「質とスピード」の社内講演会を開催しました - STORES Product Blog
                                                                              • ちょうどよい Rails E2E テスト/enough-good-rails-e2e-test

                                                                                Rails には system test (spec) と呼ばれる、Capybara を使った自動ブラウザテストの仕組みが備わっています。これはとても便利で強力なテストではありますが、けして万能ではありません。実行時間が長くなりがちですし、テストコート量も多くなりメンテナンスが大変です。 Ruby でのこのレイヤのテストの先駆けであろう Cucumber からの歴史を振り返りながら、「ちょうどよい」活用の度合いを考えたいと思います。

                                                                                  ちょうどよい Rails E2E テスト/enough-good-rails-e2e-test
                                                                                • Goの並列テストでよくあるバグ(tt := tt忘れ)に対する対策 - Qiita

                                                                                  どうもナレッジワークのtenntennです。 本記事は、Gopher塾で扱ったテストの話で、参加者の方から質問が出た並列テストにおけるよくあるバグについての解説とGo 1.20以降で入る対策について書きます。 並列テストとサブテスト Goでは、テスト関数内で(*testing.T).Parallelメソッドを呼び出すとテストを並列に実行できます。テストを並列に実行することでテストを効率よく行い、実行時間の削減が見込めます。 また、*testing.T型には、サブテスト(子テスト)を実行するためのRunメソッドがあり、サブテストを並列に実行できます。Goではテーブル駆動テストがよく用いられため、各テストケースがサブテストとして実行されます。テストの効率化を考えて、各テストケースをParallelメソッドを用いて並列に実行することが多いです。 並列テストでよくあるバグ サブテストを並列に実行す

                                                                                    Goの並列テストでよくあるバグ(tt := tt忘れ)に対する対策 - Qiita