I hate flaky tests. We repeatedly run our suite of tests during development time and on every commit, so if a test is flaky, developers quickly learn not to trustit.It’s so easy tojust retry and assume everything is fine. This is the worst of both worlds because the test isn’t providing value as an indication that something needs to be fixed andit drags out the review-merge cycle with test rer

はじめに この記事は レガシーコード改善ガイド: 保守開発のためのリファクタリング を参考に手を動かしてみて、ある程度自分の中で体系的にまとまった知識のアウトプットです。 この記事で扱う内容 この記事で扱うのは主にレガシーコードで単体テストを書く際のハードルになりがちな 依存関係の排除 に関する手法を紹介します。 この記事を読んだ後に、 『この観点を持っておけば単体テストをスムーズに書いていけそう!』 『今までモック使ってたけど意外とモック使わなくても書けるね!』 となったらいいな、と思います。 ちなみに、今まであんまりテスト書いたことないよーて人は以下の記事など参考にして一度やってみてください。 もくじ テスト駆動不具合修正 or リファクタリング手順 なぜテストが書けないのか 依存関係を排除できればテストは書ける 依存関係を排除するためのカギになる考え方 書けない単体テストがなくなる2

バグは“数千パターンのテスト”をすり抜けた ―NTTデータ「2023/10/10 全銀ネット障害」について説明NTTデータグループは2023年11月6日、10月10日に発生した全国銀行データ通信システムの障害に関する記者説明会を実施、現時点で判明している障害の概要について説明を行うとともに、再発防止策に向けたタスクフォースの設立などについて明らかにしました。会見の冒頭、NTTデータグループ 代表取締役社長本間洋氏は、今回の障害により全国の預金者や金融機関をはじめとする社会全体に大きな混乱をもたらしたことを謝罪し、今後の原因究明と再発防止に向け、全国銀行試験決済ネットワーク(以下、全銀ネット)とともに全力をかけて取り組むことを明言していました。本記事では会見の内容をもとに、現時点で判明している10月10日の事故の原因についてレポートします。2023年10月10日 ―なにが起こったのか
「アジャイルテストの4象限」についてのやりとりをTwitterでみていて、James Bach、Michael Boltonの両氏が何年か前に公開していた『The New Agile Testing Quadrants』という資料を読み直してみました。 The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Together - James Bach from Ho Chi Minh City Software Testing Club www.slideshare.net 今Twitterで話題になっているのは全然違う文脈ですが、この記事では彼らの批判と提案について紹介します。 作者について JamesとMichaelのお二人は、『Exploratory Testing 3.0』(探索的テスト3.0

可用性や安全性を高めつつ、ソフトウェアをシンプルにすることは不可能だ。カオスエンジニアリングから継続的検証へ(中編)。JaSST'23 Tokyo基調講演Netflixが始めた「カオスエンジニアリング」は、現在では大規模なシステムにおける可用性向上の手法のひとつとして確立し、広く知られるようになりました。 そのカオスエンジニアリングという手法を定義したのが、元Netflixカオスエンジニアリングチームのエンジニアリングマネージャーを務めていたCaseyRosenthal(ケイシー ローゼンタール)氏です。 そのローゼンタール氏が、ソフトウェアのテストに関わる国内最大のイベント「ソフトウェアテストシンポジウム2023 東京」(JaSST'23 Tokyo)の基調講演に登壇し、「Chaos Engineering to Continuous Verification」(カオスエンジニアリ

複雑なシステムでは、すべての要素が正しくても障害が起きる。カオスエンジニアリングから継続的検証へ(前編)。JaSST'23 Tokyo基調講演Netflixが始めた「カオスエンジニアリング」は、現在では大規模なシステムにおける可用性向上の手法のひとつとして確立し、広く知られるようになりました。 そのカオスエンジニアリングという手法を定義したのが、元Netflixカオスエンジニアリングチームのエンジニアリングマネージャーを務めていたCaseyRosenthal(ケイシー ローゼンタール)氏です。 そのローゼンタール氏が、ソフトウェアのテストに関わる国内最大のイベント「ソフトウェアテストシンポジウム2023 東京」(JaSST'23 Tokyo)の基調講演に登壇し、「Chaos Engineering to Continuous Verification」(カオスエンジニアリングから継続

What’s Hurl? Hurl is a commandline tool that runs HTTPrequests defined in asimple plaintext format.It can chainrequests, capture values and evaluate queries on headers and body response. Hurl is very versatile:it can be used for both fetching data and testing HTTPsessions. Hurl makesit easy to work withHTML content, REST / SOAP /GraphQLAPIs, or any other XML / JSON basedAPIs. #Go hom
JavaScriptのメモリリークを検出するフレームワーク「MemLab」、メタがオープンソースで公開 メタ(旧Facebook)は、JavaScriptアプリケーションのメモリリークを検出するフレームワーク「MemLab」をオープンソースとして公開したと発表しました。 We’ve open-sourced MemLab. #MemLab is aJavaScript memory testing framework that automates leak detection and makesit easier to root-cause memory leaks. 1/2 https://t.co/vo6Gzv56ud — Engineering at Meta (@fb_engineering) September 12,2022 Metaが展開しているFacebook、Fac

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

3.結果を見てみる このHotspotsの下に出力されている左の数値がバグが起こりやすい度合いを表すスコア、右が対象のファイルになる。 メチャクチャ簡単に導入できるので、 リファクタやコードレビューなどで目星をつけるという意味では有用なツールな気がしました。 背景の説明googleでは、チェックイン前にユニットテストやコードレビューが行われているが、コードが大量になってくると、ユニットテストやコードレビューをすり抜けたバグも少なからず発生してします。googleではこの問題に対処するために、独自の「バグ予測アルゴリズム」を採用して、コードの品質向上を図っているらしいので、そのアルゴリズムについて調べてみました。 ソフトウェアなどのバグ発見手法には、「ソフトウェアメトリクス」というものがあります。 ソフトウェアメトリクスの特徴 ソースコードを静的に分析 モジュールや関数の行数、ネストの深

上流品質を担保するために必要な3つのこと 高橋寿一氏(以下、高橋):Dailyで上流品質を担保するために必要な3つのことです。単体テスト、リファクタリング、要求仕様、ユーザーストーリーのテストケース展開という3つのアクティビティをしっかりやっていただくと、上流でも品質がかなり担保されていくんじゃないのかなと思っています。 単体テストに関しては、基本的には「網羅率を担保してください」みたいなことなので、シンプルです。ただ、まだまだ知られていませんが、0から70パーセントとか80パーセントに持ってくるのは地獄のような作業なので、だいたいみなさん諦めちゃうんです。 でも、テクノロジーが進んでいるのでそこまでやる必要はなくて、「2:8の法則」ですよね。ソフトウェア全体の2割の危ないところだけをテストすれば、だいたい品質は担保されますという。超いい加減な言い方をしましたが、そういうものがあります。

世界中のITエンジニアが悩まされている原因不明でテストが失敗する「フレイキーテスト」問題。対策の最新動向をJenkins作者の川口氏が解説(前編)。DevOps Days Tokyo2022 世界中のITエンジニアが悩まされている問題の1つに、テストが原因不明で失敗する、いわゆる「フレイキーテスト」があります。 フレイキーテストは、リトライすると成功することもあるし、失敗する原因を調べようとしてもなかなか分かりません。GoogleやFacebookやGitHub、Spotifyといった先進的な企業でさえもフレイキーテストには悩まされています。 このフレイキーテストにどう立ち向かうべきなのか、Jenkinsの作者として知られる川口耕介氏がその最新動向を伝えるセッション「Flaky test対策の最新動向」を、4月21日、22日の2日間行われたイベント「DevOps Days Tokyo 2

統合テスト vs 単体テスト、なぜ統合テストの方が重要なのか――CoderPadが解説:テストピラミッドとテストトロフィー コーディング面接に使われるWebサービスなどを手掛けるCoderPadは2022年3月29日(米国時間)、エンドツーエンドテスト、統合テスト、単体テスト、静的テストを比較し、統合テストの重要性を解説したブログ記事を公開した。 概要は以下の通り。 最近では、多様なテストやプログラミング言語に対応した開発者向けツールが出回っている。 エンドツーエンド(E2E)テストでは、「Cypress」「Puppeteer」「Webdriver」「Selenium」などのツールが選択できる。単体テスト、統合テスト、静的テストのツールは、特定の言語向けのものが多い傾向にある。「JUnit」「Jest」「pylint」「mocha」や、「Visual Studio」のビルトイン単体テスト機

こんにちは、辰巳です。 第3回は「スナップショットテスト」をテーマにお送りします! 「組織が拡大する中で、十分な設計情報がない状況でも、複雑に改修が積み重なったソフトウェアをいかに安全かつ正確に変更できるか?」本記事では、数多くの大幅なシステム変更の経験を経て、この課題に対してモノタロウがいま実践しているグッドプラクティスを紹介します。本記事の初出は、 Software Design2021年10月号「Pythonモダン化計画(第3回)」になります。過去の連載記事は以下を参照ください。 第1回 Software Design連載 2021年8月号Python製のレガシー&大規模システムをどうリファクタリングするか 第2回 Software Design連載 2021年9月号 「テストが無い」からの脱却 スナップショットテストの可能性を追求する モノタロウは、事業者向けの間接資材を販売

アルプのQAエンジニアをしている nametake です。 最近QAチームが発足し、プロダクトチームと協調してテストプロセスを改善しています。 QAチームはまだ発足したばかりで、QA専任は私1人です。それに対しプロダクトチームは3つあり、私自身がアルプ全体のQAプロセス改善や採用にフォーカスしているのもあり、各プロダクトチームに入っての活動は出来ていません。 その代わりQAコーチとして「開発チーム内のQA関係のことは積極的に壁打ち相手になります」という方針を社内に共有し、プロダクトチーム内のQA関係の課題の解決指針を一緒に決める、という活動をしてきました。 来た相談を打ち返し続けていたところ、プロダクトチームからやってくる相談の傾向として「どこまでやれば大丈夫なのかという不安」が根っこにに多くあることに気づきました。 対象機能ごとに、どこまでテストをするべきかというのは異なるため、1つの解

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く