2024年6月21, 22日に開催された『Scrum Fest Osaka 2024』 において登壇した際の資料です。 プロダクトバックログアイテム(PBI)はチームの認識の統一や実装・テストの効率化に直結する重要な要素です。 本セッションでは、過去に参加した現場での失敗事例とその原因・背景を分…
2024年6月21, 22日に開催された『Scrum Fest Osaka 2024』 において登壇した際の資料です。 プロダクトバックログアイテム(PBI)はチームの認識の統一や実装・テストの効率化に直結する重要な要素です。 本セッションでは、過去に参加した現場での失敗事例とその原因・背景を分…
GitHub Copilot、みなさん使ってますか?すでに多くの方が利用しており、「ないと困る」という方から「提案の質に問題がある」「まだまだ使えない」という方まで、様々な意見を聞きます。 筆者はGitHub Copilotに対して非常にポイティブな立場です。GitHub Copilotは使い方次第で開発速度を格段に向上させることを身をもって体験しており、これからの時代においてはGitHub CopilotなどのAIツールを使いこなせるかどうかで、個人の開発速度に非常に大きな差が出ると考えています。 重要なのは使い方次第と言う点です。前述のように様々な感想が溢れているのはAIツールの習熟度が大きく影響しているようにも感じます。AIツールは静的解析同様、利用者側の手腕が大きく問われるツールであると筆者は感じています。コマンドプロンプトエンジニアリングという言葉もあるように、AIツールを使いこ
はじめに この記事は レガシーコード改善ガイド: 保守開発のためのリファクタリング を参考に手を動かしてみて、ある程度自分の中で体系的にまとまった知識のアウトプットです。 この記事で扱う内容 この記事で扱うのは主にレガシーコードで単体テストを書く際のハードルになりがちな 依存関係の排除 に関する手法を紹介します。 この記事を読んだ後に、 『この観点を持っておけば単体テストをスムーズに書いていけそう!』 『今までモック使ってたけど意外とモック使わなくても書けるね!』 となったらいいな、と思います。 ちなみに、今まであんまりテスト書いたことないよーて人は以下の記事など参考にして一度やってみてください。 前提の話: この記事の本旨は「テスト書きにくいプロダクトコードも依存関係を排除すれば楽にテスト書けるよ」なので、それ設計的にアウトでは?リファクタリング耐性低くない?みたいな話は度外視してます。
僕自身は龍が如くシリーズは、クロヒョウ2、極1、極2、0、3、4、5、6、0とやって、7はRPGだし主人公違うしなぁと思って、買うだけ買って後でやろうと積んでいたところ、CEDECのすごいテストの話を聞いて、(オリジナル版を積んでいたのに)インターナショナル版を買って始めてしまうぐらいインパクトがあり(そして積んでたのを後悔したぐらいよかった)ました。それ以降、維新極、7外伝、8は発売日に買ってプレイしてます。 こちらにその講演の詳細なレポートがこちらにあります。 https://www.famitsu.com/news/202009/11205564.html その8の発売前に龍が如くスタジオの技術責任者の方がXのアカウントを開設して、C++のコードを投稿されていたのですが、それに対してエンプラ開発目線で意見しているようなツイートを見かけて、「いや、システムの特性全然違うから」と思い筆を
和田 卓人さん(t_wadaさん)に「予防に勝る防御なし - 堅牢なコードを導く様々な設計のヒント」を社内で講演いただきました! こんにちは、ウォンテッドリーDev Branch VPoE 室長の髙橋です。 ウォンテッドリーの開発組織であるDev Branchでは、外部から有識者を招いて勉強会を開催したり、技術顧問として知見を取り入れるなど、プロダクト開発により強い組織となるためにさまざまな施策を行っています。 今回、「テスト書いてないとかお前それ @t_wada の前でも同じ事言えんの」 でおなじみのt_wadaさん(和田 卓人さん、以下和田さん)に「予防に勝る防御なし - 堅牢なコードを導く様々な設計のヒント」をウォンテッドリー向けにカスタマイズして講演いただきました。 このストーリーでは、今回の講演の経緯から社内の反応・Q&Aまで、講演に関する詳細をご紹介いたします。 社内講演のきっ
保守しやすく変化に強いソフトウェアを支える柱 自動テストとテスト駆動開発、その全体像 ~Software Design 2022年3月号「そろそろはじめるテスト駆動開発」より 今回、Software Design 2022年3月号 第2特集「そろそろはじめるテスト駆動開発 JavaScriptでテストファーストに挑戦」の第1章「保守しやすく変化に強いソフトウェアを支える柱 自動テストとテスト駆動開発、その全体像」を本サイトに掲載します。第2章以降については、本誌『Software Design 2022年3月号』電子版(Gihyo Digital Publishing、Amazon Kindle)をご購読いただければ幸いです。 第1章では、混同されることの多い自動テスト関係の概念を、自動テスト、テストファースト、テスト駆動開発の3つの段階に分け、それぞれの効果や注意点を説明します。ソフ
2024/01/15(月) 12:00 〜 13:00 t-wadaさんが後世に残したい、実録レガシーコード改善 https://findy.connpass.com/event/304101/ テストコードが無いコードを引き継いだところからはじまる、実際に2018年に行った受託開発案件のエ…
Yoshiki Shibata (developer) (End-user) release feedback (developer) (End-user) QA test (developer) (End-user) QA test (system test) (developer) (End-user) QA test (system test) (integration test) (developer) (End-user) QA test (system test) (integration test) (developer) (End-user) QA test (system test) (integration test) (unit test) (developer) (End-user) QA test (system test) (integration test)
テストを書いてないというチームには色々理由があると思いますが、「何をテストすべきかわからない」「書き方がわからない」「どのくらいメリットがあるかわからない」という意見は多いのではないでしょうか?テスティングフレームワークの選定や使い方を学ぶのは重要ですが、それ以上にテストの目的や戦略を学ぶことが重要です。チーム開発においてテストを活かすのは相応の知識とスキルが必要になりますが、活かせればテストは開発スピードを維持・促進する飛び道具になり得ます。 本稿は筆者が取り組んで実際に高いチーム満足度と速度を得られた、テスト戦略についてまとめたものです。
皆さんこんにちは。 CTO-Office の香川とEC開発-Bグループの竹原です。 11/28に 和田卓人氏(id:t-wada)を講師としてお招きしてテストとリファクタリングのためのワークショップを開催いたしました。 技術者正社員のうちプログラミングをすることの多いメンバー全体の約1/3にあたる総勢53名が参加しての開催となりました。 本記事ではまず第一弾としてワークショップの概要や目的、全体の流れについて簡単にご紹介いたします。 また第二弾(2024年1月公開予定)では、運営とワークショップの問題の作問に関わったメンバーにそこでの学びや実践について紹介いただきます。 開催に至った経緯とMonotaRO DOJO MonotaRO DOJO とは 社内の課題とワークショップの目的 開催経緯 ワークショップの全体像と開催までの段取り ワークショップの全体像 概要 タイムテーブル 開催までの
2023/12/20(水) https://findy.connpass.com/event/303813/
この記事は 株式会社ログラス Productチーム Advent Calendar 2023 18日目の記事です。 はじめに ログラスの龍島(@hryushm)です。 ソフトウェア開発において、「シフトレフト」すなわち開発の早い段階でテスト計画を立て、実施していくことが全体的なコスト削減や価値提供の早期化につながるとよく言われています。 この記事では、シフトレフトによってもたらされる効果をログラスでの実例を用いて紹介した上で、なぜ効果が出るのか?を「抽象度」というキーワードから紐解いてみようと思います。 本記事ではスクラム開発においてPBIを完了させる中でシフトレフトしていくことを念頭に書いていきますが、ソフトウェア開発の任意のタイミングにおいて適用できる概念だと考えています。 テスト設計を実装前にやることの有用性 まずシフトレフトによって何が起こるのか?を考えます。PBIに書かれた受け入
テスト駆動開発(Test-Driven Development: TDD)は、テストを書くことでソフトウェア開発をガイドするソフトウェア構築手法である。 1990年代後半にKent Beckがエクストリームプログラミングの一部として開発したものである。 基本的には、以下のシンプルな3つのステップを繰り返して実行する。 これから追加したい機能についてのテストを書く そのテストをパスするまで機能のコードを書く 新旧のコードをリファクタリングして適切な構造にする テストケースのリストを書き出す → ひとつのテストを選択する → テストを書く(レッド) → テストをパスさせる(グリーン) → リファクタ → ひとつのテストを選択する 学んだことがあればリストを更新する この3つのステップ(レッド・グリーン・リファクタと呼ばれる)がプロセスの中心だが、 最初にテストケースのリストを書き出すという重要
アジャイル型の開発が導入されていない現場であっても、そして一人であっても、実践可能なアジャイルに関するプラクティスは存在します。 例えば、自動テストや、テストファースト、テスト駆動開発(TDD:Test Driven Development)です。ユニットテストフレームワークを使ってテストコードを書いて開発しながらテストを実行する「自動テスト」、実装の前にそのテストコードを書く「テストファースト」、テストと実装を繰り返しながらインクリメンタルに設計・開発を行うのが「TDD」。これらプラクティスのなかで、はじめの一歩となるのが自動テストですが、1人で実践するには、どこからはじめるか、どうテストを組み立てればよいのか、あるいは自分のテスト方法は適切なのか、不安を持つこともあるでしょう。 そこで本稿では、さまざまなチームや組織へのテスト手法の導入を支援し、精力的に講演や執筆などを行ってきたこの分
あのUnit Testing Principles, Practices, and Patternsの本の方のpodcastを聞いて、メモ書きながらでないと聞き流しちゃうので、メモを書いておきます。 Unit Testとは? 抽象的(ハイレベル)に定義すると、開発者が書いたコードに対して、その開発者が書くテストすべて。 詳細的(ローレベル)には、一つの振る舞い(behaivor)をカバーする自動化されたテスト。どれだけテストが早く始まり(quick)、速く実行されるか(fast)、他のテストから独立している(isolated)。 このどれかが達成できないとそれはユニットテストにならず、Integration Testになる。 Unit Testいる? Integration Testだけで良くない? Unit Testに反対する人のUnit Testは価値が低く、信頼できないものになってい
[CEDEC 2023]「テストエンジニアが伝える テストを実施する前に考えるべきテストの話」聴講レポート。開発が参加し,欠陥を未然に防止するテストの大切さ ライター:箭本進一 ゲーム開発者向けカンファレンス「CEDEC 2023」で,「テストエンジニアが伝える テストを実施する前に考えるべきテストの話」と題された講演が行われた。ソフトウェアを作る前に一歩立ち止まり,必要になるテストについて打ち合わせをすれば,コストや手間を削減できるという。ソフトウェアのテストといえば,完成後に行うものというイメージがあるが,その前に行うべきテストとは,どのようなものなのだろうか? 開発が参加し,欠陥を未然に防止するテストの大切さ 10X / B-Testing Qualityチームの風間裕也氏 講演を行ったのは,10X / B-Testing Qualityチームの風間裕也氏。ソフトウェアのテストに関す
こんにちは、クライアントエンジニアの竹澤(@to4iki)です。 Mirrativでは、リアルタイムの配信視聴時のコメントやギフト機能を実現するために、WebSocket ベースの仕組みを利用して、サーバー・クライアント間でPub/Subのメッセージングを行っています。*1 サーバーからのHTTPレスポンスをマッピングするように、ペイロードのJSONを受け取り、それをクライアントで扱う型に変換して使用していますが扱いにくい点がありました。本記事では改善に取り組んだ内容と進め方を紹介します。 目次 課題 ゴールと進め方の認識あわせ 1. 最初にゴールの定義を行う 2. 段階的な進め方の方針と見通しを立てる ゴールまでの道筋を可視化する 3. 技術的な懸念事項などを先に潰し作業をパターン化する 動作検証に利用する再利用可能なサンプルのペイロードを定義する Decodable準拠のレスポンスでI
こんにちは!コドモン開発部の加藤です。 すっかり暑くなってきましたね。我が家では猫が換毛期を迎えて、家中毛だらけになりながらも日々なんとか暑さを乗り切っています。 最近コドモンでt_wadaさんにレガシーコード改善ワークショップを行っていただきました。 今回はそのワークショップの様子についてレポートしていきます! レガシーコード改善ワークショップの概要 t_wadaさんの紹介 ワークショップの目的と内容 目的 1.午前の部 2.午後の部 ワークショップ中のハイライト 午前の部 活発な実況チャンネル🗣️ テストを書いただけでは設計はよくならない、を実感する😬 質問コーナーではE2E肥大化の課題に注目が集まる👀 午後の部 最初のテスト作成をライブコーディングで学ぶ💪 実践を始めると意外と手が動かない……🥺 人が1on1を受けている姿をみられるの貴重👏 まとめ レガシーコード改善ワー
このコラムの主なテーマは、信頼できる実行結果にできるだけ短い時間でたどり着く自動テスト群の構築です。本稿では、テストダブルをうまく活用してテストピラミッドを構築する戦略を立てます。 信頼性の高い自動テスト群を求めて 自動テスト全体の中長期的な信頼性を守るために、図1のようにLargeからMediumへ、MediumからSmallへテストサイズを適宜下げ、テストピラミッドを構築します[1]。テストサイズとは、単一プロセスに閉じたテストをSmall、単一マシンに閉じたテストをMedium、そういった制約がないテストをLargeテストと呼ぶ分類基準です。 図1 テストピラミッド サイズダウンを考えるとき、テストダブルの活用が思い浮かびます。テストダブルとは、自動テストに使用する偽物、代用品のことです。単一プロセスや単一マシンに収まらない外部依存を偽物に置き換え、テストサイズを下げます[2]。 テ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く