タグ

TDDに関するmanabouのブックマーク (94)

  • TDDは「開発者テストのTips集」t-wada氏が改めてひも解く“本質” - レバテックラボ(レバテックLAB)

    プログラマ、テスト駆動開発者 和田卓人 学生時代にソフトウェア工学を学び、オブジェクト指向分析/設計に傾倒。執筆活動や講演、ハンズオンイベントなどを通じてテスト駆動開発を広めようと努力している。『プログラマが知るべき97のこと』(オライリージャパン、2010)監修。『SQLアンチパターン』(オライリージャパン、2013)監訳。『テスト駆動開発』(オーム社、2017)翻訳。『事業をエンジニアリングする技術者たち』(ラムダノート、2022)編者。テストライブラリ power-assert-js 作者。 日におけるテスト駆動開発(以下、TDD)のエバンジェリストとして知られる和田卓人さん。TDDが世に出て20年あまりが経ち、開発者の間でその名が広がっています。その一方で、和田さんは「TDDの来の意味を知らなかったり誤解したりしている人たちもかなり増えている」といいます。 今回は、TDDは

    TDDは「開発者テストのTips集」t-wada氏が改めてひも解く“本質” - レバテックラボ(レバテックLAB)
  • 【翻訳】テスト駆動開発の定義 - t-wadaのブログ

    このブログエントリでは、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent BeckがTDDの定義を改めて明確化した文章を、許可を得たうえで翻訳し、訳者の考察を沿えています。 きっかけ 2023年の年末、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent Beckは、substackにTDDに関するポストを連投して論戦を繰り広げていました。TDDはその誕生から20年以上が経ち、その間に「意味の希薄化」が発生して議論が噛み合わなくなっていました。意味の希薄化(Semantic Diffusion)とは、新しく作り出された用語が広まる際に来の意味や定義が弱まって伝わる現象です。 私(和田)はTDDと関わりの深いキャリアを歩んできました。Kent Beckの著書『テスト駆動開発』の翻訳者であることもあり、TDDの正

    【翻訳】テスト駆動開発の定義 - t-wadaのブログ
  • Goのテスト安定性向上のためにFlakyなテストを再試行する機能を導入する提案 - tomato3713’s blog

    Go言語にFlakyなテストへのサポートを追加する提案が面白かったので紹介します。 概要 Flakyなテストとは、コードに変更がないにもかかわらずテストが成功したり失敗したりと不安定な実行結果になるテストのことです。 テスト結果は来なら全て成功ならリリース可能、1つでも失敗すればバグがあるのでリリース不可のようにリリースの可否を判断するための情報です。 そのため、不安定なテストは書かないようにすることが大前提です。 しかし、実際にはflakyであるとわかっていても修正が難しかったり、修正するための時間がないのでそのまま残すという判断をすることもあります。 Flakyなテストは削除するというのも手ではありますが不安定であってもテストが無いよりはマシとして残すこともあると思います。 github.com この提案では、Flakyなテストを扱うための機能を追加するものです。 初めの提案内容は、

    Goのテスト安定性向上のためにFlakyなテストを再試行する機能を導入する提案 - tomato3713’s blog
  • 書評:GitHub Copilot とのペアプロ TDD でつくるローグライク RPG - 若くない何かの悩み

    記事は「GitHub Copilot とのペアプロ TDD でつくるローグライク RPG」の書評です。題名にローグライクRPGとあるのでゲーム開発のなのかなと思ってしまいますが、題は仕様の端的な表現をもたないシステムを LLM を使って真っ当に開発する方法の解説だと思います。タイトルにローグライクRPGと書いていることでゲーム開発に興味のない人の興味を失わせてしまい損をしている気がします。 背景 最近の LLM の流行を受けて私も Chat-GPT や GitHub Copilot といった LLM を開発で利用しています。端的に仕様を表現できるシステムは LLM に質問して実装を得る方が自分で実装するより圧倒的に速く正確であるという感想を抱いています。ただ端的に仕様を表現できるシステムばかりではありません。えてして価値を生んでいるシステムというのは端的な仕様の表現が存在しないもので

    書評:GitHub Copilot とのペアプロ TDD でつくるローグライク RPG - 若くない何かの悩み
  • Learn Go with Tests: テスト駆動開発を体験しながら Go を学ぼう - kakakakakku blog

    TDD(テスト駆動開発)を体験しながら Go を学べる学習コンテンツ「Learn Go with Tests」を紹介する❗️全てのコンテンツを実施してみて,非常に良かったのでまとめることにした💡 Go に入門できる TDD のサイクル (Red / Green / Refactor) を体験できる コンテンツは "35種類" もある 無料で学べる GitBook (GitHub) に公開されている 日語対応 英語版 📚 quii.gitbook.io 日語版 📚 andmorefine.gitbook.io コンテンツ一覧 なんと「35種類」もコンテンツがある❗️ Go fundamentals 🚢 21種類 Install GoGo をインストールする) Hello, world(Hello, World) Integers(整数) Iteration(反復、繰り返し) A

    Learn Go with Tests: テスト駆動開発を体験しながら Go を学ぼう - kakakakakku blog
  • UnityでTDDハンズオンRepositoryを作っている - imog

    最近更新したのでちょっと宣伝。 github.com なにこれ 最近、副業だったりプライベートなどでUnityを使う人でテストに興味ある方を対象にTDDについてお話する活動などをしています。その際に座学としてお話することもあれば、ハンズオン形式で実際に手を動かして書いてもらうということもあります。その際に使うサンプルリポジトリです。 ぜひお手元で考えながら書いてみてください。勉強会の資料などで使っていただいても大丈夫です。 なぜやってるのか ゲーム開発はソフトウェア開発の中でもかなり複雑性が高いと感じています。そして性質上変更頻度も高い。ゲームごとに作り方が変わる以上これは仕方ないことだと考えています。だからこそより変化に対応できるようにテスタビリティの高いコードになっていてほしいと考えていますがその難易度、そしてそもそものテストコード文化というものがないためにテストコードが書かれているこ

    UnityでTDDハンズオンRepositoryを作っている - imog
  • TDDのTips - BASEプロダクトチームブログ

    前置き この記事はBASE Advent Calendar 2020 13日目の記事です。 devblog.thebase.in こんにちは、BASE株式会社 Product Dev Division でバックエンドエンジニアを務めている元木です。 以前、社内で同僚のエンジニアと話していたとき、 「TDDって頭では分かっているけど、テストから書くってなかなか難しいよね」 という話がありました。 そこで、自分がTDDでプログラムを書くときに行なっているTips的なものを紹介してみたいと思います。 あくまで 「自分はこういう感じで実践している」 というものであり、 「これが正しいTDDだ!」 と主張するものではありませんので、軽い気持ちで読んでいただけたら幸いです。 そもそも、TDDとは? テスト駆動開発 (Test Driven Development) のことです。いいね? 題 前置きが

    TDDのTips - BASEプロダクトチームブログ
  • 【2024】Pythonのコード一覧!機械学習×Pythonのコツも解説 | DX/AI研究所

    AI機械学習を用いた経営問題の解決や幅広い業種へ多数のコンサルティングの経験を持つ。AIプロジェクトに関するコンサルティングだけではなく、AI人材の育成、会社全体のDX化など幅広い分野で活躍中。AIに関わる講演を多数行なっている。 今回は、機械学習でよく使うPythonのプログラムコードをアルゴリズム別に紹介していきます。 そして、機械学習といえばScikit-Learn。Scikit-Learnでよく使うコードを紹介します。最後におまけとして、PandasやNumpyでよく使うプログラムコードも紹介します。 これらのプログラムコードは、コピペで利用できるのでブックマークしておくことをおすすめします! これからエンジニアを目指して機械学習Pythonを学びたい方、エンジニア入門としてプログラムコードを書きたい方はこの記事を参考にしてください。 それでは機械学習でよく使う、Pythonのプ

    【2024】Pythonのコード一覧!機械学習×Pythonのコツも解説 | DX/AI研究所
  • Introducing Rome

    We’re excited to announce the first beta release and general availability of the Rome linter for JavaScript and TypeScript. This is the beginning of an entire suite of tools. Rome is not only linter, but also a compiler, bundler, test runner, and more, for JavaScript, TypeScript, HTML, JSON, Markdown, and CSS. We aim to unify the entire frontend development toolchain. Rome is a monolithic tool con

    Introducing Rome
  • 【初心者向け】テストコードの方針を考える(何をテストすべきか?どんなテストを書くべきか?) - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 「テストコードを書きましょう」とはよく言われるし、テストコードが大事だってことも理解できるんだけど、何をテストしたらいいの?どんなテストを書いたらいいの?と迷っている初心者プログラマさんは意外と多いのではないでしょうか? そんな方たちに向けて、この記事では僕が普段意識しているテストコードの方針を紹介します。 おことわり 来であれば具体的なコード例も豊富に入れたいところなのですが、かなり時間がかかってしまうので、いったん文章メインで記事を公開します。 もしかすると、そのうちコード例も一緒に盛り込んだ「リッチバージョン」を公開す

    【初心者向け】テストコードの方針を考える(何をテストすべきか?どんなテストを書くべきか?) - Qiita
  • フロントエンドの負債と向き合う - mizchi's blog

    某所で書いたものを公開用に書き直したもの 前提 フロントエンドでTDDは難しい、というかほぼ不可能である。なぜなら事前に副作用をデータとして表現できるか不明だからだ。たとえばあなたのプロダクトの画面の何処かにボタンを追加するために、その内部表現を事前に思い浮かべることが可能だろうか? react-redux などのFluxフレームワークは如何に副作用をアクションとして表現することで、テスト・デバッグのための情報を残すか、という視点で発展してきた側面がある。あの冗長なアクション定義は、全てデバッグのために書いていると言っても、過言ではない。それすら「Textは文字がある」といったトートロジーなデータになりがち。 フロントエンドの現実的な単体テストは、他の開発者のために、自分が書いたコードの要求を満たしているか検知する手段として、防衛的にテストアフターしておく。これぐらいしか現実的な手法がない

    フロントエンドの負債と向き合う - mizchi's blog
  • puppeteer + express + mocha で快適 TDD している話 - ジンジャー研究室

    TDD という用語を使うとテストおじさんがやってきて、それはそうじゃないとか色々言い出すと思うんだけど、それが趣旨ではないので勘弁して欲しい。予防線ここまで。 Puppeteer でテスト Puppeteer が世間的にも個人的にもブームだ。ヘッドレス Chrome を操ってクローリングしたりスクリーンショットを撮ったり色々出来る。 github.com で、あれこれと遊んでいるうちにテストに使えるんじゃね?ということに気づいたので実践してみたら快適だったという話。ブラウザ操作してテストというのは昔から Selenium というのがあり、こちらはクロスブラウザで出来たりするんだけどまあ大掛かりでだるさを感じてしまう。メリットデメリットの比較はさておき、どうせならナウいやつを使ってみたい。よし使おう。 何をテストするか 普段から画面を見ながら開発しているので、どこに何が表示されているべきとい

    puppeteer + express + mocha で快適 TDD している話 - ジンジャー研究室
  • 技術本を読む時にリポジトリを作る - 圧倒亭グランパのブログ

    @t_wadaさん翻訳の「新訳版 テスト駆動開発」の第Ⅰ部を終えました。 テスト駆動開発posted with ヨメレバKent Beck オーム社 2017-10-14 AmazonKindle このを読むにあたってgitリポジトリを作って読み進めたので、その方法を記しておきます。 読んで終わりにしたくない 読む前に、注意点として「読んで終わりにしないこと」「エンジニアリングに活かせるようにすること」を掲げました。以前、ピアソンから出版されている旧訳版を読んだのですが、今の自分に残っているのは「テストから書き始めること」くらいでした。あまりにも身についていないことに気付き、読み方を変えてみようと思いました。以前は「スキマ時間にさらっと読む」というスタイルだったので、それが原因かもしれません。 まずはリポジトリを作る そのため、今回はリポジトリを作って「開発」を行うようにしました。以下が

    技術本を読む時にリポジトリを作る - 圧倒亭グランパのブログ
  • 『テスト駆動開発』を写経するための環境構築 - ろくにメモ

    はじめに このエントリは『テスト駆動開発』を写経しようと思ったものの、環境構築から始めなければならない人向けに書きました。 テスト駆動開発 作者: Kent Beck,和田卓人出版社/メーカー: オーム社発売日: 2017/10/14メディア: 単行(ソフトカバー)この商品を含むブログ (1件) を見る まず、私の Java に対する習熟度についてですが、Java言語プログラミングレッスン 第3版(上) Java言語を始めようの上下を読破した程度で、Java 周りの開発環境は全く分かっておらず、Eclipse を軽く触ったことがある程度です。 また、テスト駆動開発や自動テストについては、興味はあったものの実際に手を動かして使ったことはないレベルなので、『テスト駆動開発』を写経して実際に体感してみようと思い購入しました。 ですが、いざ読み始めてみると「Eclipse で JUnit の使い

    『テスト駆動開発』を写経するための環境構築 - ろくにメモ
  • 『テスト駆動開発』を読んで - まめめも

    テスト駆動開発posted with amazlet at 17.10.12Kent Beck オーム社 売り上げランキング: 563 Amazon.co.jpで詳細を見る オーム社さまから電子書籍を贈いただきました。ありがとうございます。 書はテスト駆動開発(TDD)の原典で、たいへん有名なです。が、自分はわず嫌いで読んだことがありませんでした。 というか、TDD 自体もちゃんと理解したことがありませんでした。なんだろう、なんか怖かった。 そんな自分が今回このをいまさら読んでみたら、なるほどこれは確かにいいでした。なんというか、語りたくなる感じ。ということでご紹介。 紹介 テストとプログラムを交互に書いていく開発方法 TDD を、例題を用いて実演していくです。 TDD というと「プログラムより先にテストを書く」というところだけ強調されますが、正直それではよくわからないのでし

    『テスト駆動開発』を読んで - まめめも
  • TDD ✕ Property-based Testing (SwiftCheck) で数学パズルを検証してみる - Qiita

    Tl;Dr TDD、Example-based Testing、Property-based Testing を組み合わせると良い感じ(かも?) きっかけ こんなTweetがタイムラインに流れていました。 数学の先生方との飲み会の席で、次のような算数マジックを見せてもらった。 6つの数字を書く。 となりあう数字を足した値の1桁目を1段下に書く。 これを繰り返して最後に出てくる数字を、6つの数字を書き終えた瞬間に言い当てるというもの。 いま自分でも納得できたので娘にもやってみせよう pic.twitter.com/ANhVNT21cs — 三谷 純 Jun MITANI (@jmitani) 2017年7月27日 なるほどこれは面白い、と。 引用ツイートで解説がされていますが、以下のような法則があるようです。 (解説) 6つの数字をabcdefで表す。 bとeが「偶数と奇数」の組み合わせなら

    TDD ✕ Property-based Testing (SwiftCheck) で数学パズルを検証してみる - Qiita
  • A guide to TDD a React/Redux TodoList App — Part 1 | HackerNoon

    Part 1 — You’re here now. Part 2 — Link. Part 3 — Link. Part 4 — Link. This tutorial assumes some knowledge of JavaScript, the front end, test-driven-devlopment and the node package manager, with little-to-no experience of React/Redux. It’s my opinion on how it should be done at this very basic level while you’re still learning, and it should at the very least open avenues for you to pursue your o

    A guide to TDD a React/Redux TodoList App — Part 1 | HackerNoon
  • FizzBuzz 問題をテスト駆動型開発で実装する (実践編) - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    FizzBuzz 問題をテスト駆動型開発で実装する (実践編) - Qiita
  • TDD of Infrastructure as Code on CircleCI 2.0

    概要Docker + Ansible + ServerSpec + CircleCI 2.0でTDDなCIビルドを行う話です。 今僕が在籍している企業では、プロビジョニング周りはAWS OpsWorksで管理されており、Chefのカスタマイズレシピが適用されて、ポンっと環境が構築されます。 個人的にはChefとItamaeの運用はしたことがありますが、OpsWorksを除けばAnsibleの方がStar数も多く活発に使われていそうなのと、どうせならDockerとServerSpecを使ってポータブルなテスト環境を作ってみよう、それをCircleCI2.0で効率的に回そう、と思い立って、やってみました。 ディレクトリ構成. ├── Dockerfile ├── README.md ├── ansible │ ├── ansible.cfg │ ├── ci.yml │ ├── circlec

    TDD of Infrastructure as Code on CircleCI 2.0
  • FizzBuzz 問題をテスト駆動型開発で実装する (準備編) - Qiita

    先日、Microsoft の開発者向けイベント de:code2017 に初参加しました。 最新の技術動向から、レガシー系開発現場をどうマネジメントし変えていくか、と幅広いテーマの話を聞くことが出来、とても面白かったです。 中でも DO03 50 分でわかるテスト駆動開発 というセッションのライブコーディングの題材であった、FizzBuzz 問題のテスト駆動開発 がとても印象的でした。 そこで、そもそもテスト (単体テスト) とは? から振返りつつ、自分なりに実践してみました。 実践内容を順追っていくと長くなりそうなので、準備編と実践編の 2 つに分けて投稿します。今回は、準備編です。 単体テストとは 一言で言うと 単体テストとは、クラスやメソッド等の小さな単位でプログラムが仕様書通りに動作するかを確認するテストです。 単体テストの手法 主に、以下の 3 つに分けられます。 機能確認テスト

    FizzBuzz 問題をテスト駆動型開発で実装する (準備編) - Qiita