タグ

テストに関するdmizuno55のブックマーク (48)

  • 第8回 脆いテスト ~継続的な変更と改善を阻むテストの原因と対策~ | gihyo.jp

    連載の主なテーマは、信頼できる実行結果にできるだけ短い時間でたどり着く自動テスト群の構築です。連載の区切りとして、なぜ自動テストを書いてメンテナンスしていくのか、そしてそれに立ちはだかる「脆いテスト」(⁠fragile test)について整理します。 自動テストを書く動機 自動テストを書く動機には、不具合混入を防止する、問題箇所の絞り込みを容易にする、動く仕様書やサンプルになるなどいろいろありますが、最大の動機は、変化を抱擁し、ソフトウェアの成長を持続可能なものにすることだと筆者は考えています。 ソフトウェアを取り巻く世界は変わりました。ソフトウェアは世界を飲み込み、事業と一体化しました。事業を取り巻く市場もエンドユーザーのニーズも刻々と変化する時代においては、より速く、より安全に変化する力が求められます。コードを変更しなければ動き続けることが期待できる時代ではもうなく、決められたものを

    第8回 脆いテスト ~継続的な変更と改善を阻むテストの原因と対策~ | gihyo.jp
  • 【考察】テストコードのきれいな書き方 - Qiita

    作ったものが想定した動作をしているか。 それを確認するために、テスト(試験)を行います。 検証したいことがちゃんと実現できて確認が取れているのであれば、その品質自体は割と気にされないことが多い印象です。 保守・運用・追加開発 をしていくプロジェクトが多くあると思います。 その作業の中で、改善を取り入れていくこともあると思いますが、その中でも一番後回しにされるのが、テストコードの改善のように思います。 推測ですが、「コストによるメリット・リターンが少なすぎる」ことが理由かな…と(開発者目線ではリターンが大きいのですが、運用者目線ですとリターンが少なく見えてしまう)。 であれば、最初からある程度綺麗なものがどういうものかを考え、作成しておけば良いのではないか・・! ということで、考察していきたいと思います。 前提 考察をするにあたり、言語化した時の表現や意味のズレが発生しやすい部分もあると思い

    【考察】テストコードのきれいな書き方 - Qiita
  • ChromeのNET::ERR_CERT_INVALIDを強制スキップする方法 - ゆうきのせかい

    MacのMAMPで作ったローカルのテスト環境をHTTPS化したら、Chromeで「この接続ではプライバシーが保護されません NET::ERR_CERT_INVALID」と表示されてしまった。 困った事に、「詳細設定」を押しても「危険性を理解した上でアクセスする」のオプションがなく、どう頑張ってもテストサイトの画面が見れない...。 こんな時に強制的にスキップしてサイトを表示する方法をメモしておきます。 ChromeNET::ERR_CERT_INVALIDをスキップする隠しコマンドChromeブラウザのエラーが表示されている画面で、 半角英数モードでthisisunsafeとキーボード入力するだけです。 「え、そんな隠しコマンドあったん?」とビックリしたのですが、騙されたと思って試してみてください。 入力が完了すると、直後に画面が自動的にリロードされ無事にサイトが表示されるようになりまし

    ChromeのNET::ERR_CERT_INVALIDを強制スキップする方法 - ゆうきのせかい
  • Goのテストに入門してみよう! | フューチャー技術ブログ

    2020/08/15更新: 「テストの失敗をレポートしたい」と「サブテストの一部のみ実施したい」の章を追加 はじめにTIG の辻です。今回は春の入門祭りということで Go のテストに入門してみよう!という記事です。 書いた背景ですが Go の標準ライブラリのコードリーディング会で testing パッケージにチャレンジしてみましたが、難しすぎてわからん。そもそも Go のテストって何ができるんだっけ?という話になり、基的な内容をなるべく具体例をまじえながらまとめました。 ざっとどんなことができるんだろう、という index になれば幸いです。 TipsGo に組み込まれているテストの仕組みの中に、ベンチマークに関するテストと Example テストというサンプルコード用のテストも含まれているのですが、この 2 つは対象外にします。基礎的と思われる内容から順に並べてみました。 はじめに T

    Goのテストに入門してみよう! | フューチャー技術ブログ
  • 性能テストの概念的な話 - Qiita

    はじめに 一般的なWebシステムを念頭に、性能テスト(performance testing)の概念的なところについて少しまとめてみました。 個別のツールや、チューニングについての記事は多いですが、大枠のフレームについての記事があまりなかったので、書いてみましたが、誤りなど指摘いただけますと幸いです。 最初性能テストの話をまとめようと思っていたのですが、考えてみたら、要件があり、設計があり、テストがありと、一連の流れが必要なのでした。 まずはテストプロセスの定義から。定義についてはこちら1を参照しています。 (テストに関する用語はなんでもそうですが、定義している団体や個人によって、意味合いが異なっています。なので、ここに書いたことはそれを念頭に置いて頂ければと思います。人によって、高負荷テスト、高負荷試験etc...なんでもありですしね) テストプロセスの定義 性能テスト(performa

    性能テストの概念的な話 - Qiita
  • 第8回 性能テスト:ソフトウェアテスト基本テクニック|gihyo.jp … 技術評論社

    性能とは 今回は「性能テスト」について紹介していきますが、その前に「性能とは何なのか」ということを考えてみたいと思います。性能とは何なのか?一言で言うと「システムが処理結果を返す力」です。 たとえば、インターネット上のショッピングサイトで商品を買ったことがある方は多いと思いますが、その時のことを思い浮かべてください。あなたは、とあるショッピングサイトにアクセスし、気に入った商品を選んでカートに追加し、商品購入の画面へ進み、商品を送ってもらう住所や決済のためのクレジット番号を打ち込み、やっとの思いで「商品購入」のボタンを押しました。しかし、なぜか何分たっても結果が返ってきません。不安になったあなたは一度ブラウザを閉じ、再度購入をしてみようとしたところで、やっと結果が返ってきました。それまでの時間、約3分。このような場合、あなたならどう感じますか? もちろんイライラしますよね? そう、この「シ

    第8回 性能テスト:ソフトウェアテスト基本テクニック|gihyo.jp … 技術評論社
  • 負荷テストの基本的な考え方と進め方(前編) - Qiita

    番前の負荷テストのお手伝いというお仕事が年に数回まわってきます。始めて負荷テストに取り組まれている方や単体での負荷テストしか経験のない方とお供すると勘違いや楽観的過ぎる計画になっていて修正をお願いさせていただくことがよくあります。 そこで、初心者向けに小生の経験から負荷テストのポイントをいくらかアドバイスしたいと思います。なお、小生は負荷テストの専門家ではないので、Qiitaに投稿されている専門家の方々の立派な記事もあわせて参考にしていただければと思います。 この記事で扱う負荷テストの定義 この記事では次の要件を対象とします。 システムテスト(総合テスト)の段階で行う負荷テスト。 分散ノードが十数台規模、データ量も数百GB程度までの中規模までのシステム。 基はロードバランサで負荷分散するWebシステムでバックエンドにデータベースが控える構造であるが、一部C/Sもあり。 この記事で書くこ

    負荷テストの基本的な考え方と進め方(前編) - Qiita
  • 負荷テストのすすめかた入門 - pTune.jp

    負荷テストはシステム開発において、リリース後の運用にかかわる重要なテストです。システムが事前に想定しているキャパシティを確保できているか、性能限界が来た場合にどのような対応をしたらよいか、高負荷障害の原因は何かなどを確認することが可能です。 しかしながら、時間的な制約等から実施されないケースも多くあります。そのため、十分な知識がないケースもあるようです。 この記事では、ディーネットがどのような形で負荷テストを進めているのかをご紹介していきます。また、負荷テストサービスの内容が気になる方はこちらをご覧ください。 負荷テストサービス(ptune)について 全体の流れ 負荷テストは次のような流れで進めていきます。 目的設定 現状調査 負荷テスト設計 負荷テスト準備 負荷テスト実施 結果分析 結果報告 (必要に応じて)チューニングを実施し、効果測定のために負荷テスト実施 以降で、それぞれの概要につ

  • 開発者向けのテストの本いろいろ

    なんかおすすめなテストないですかねえ? と、某所で(テストをメインの業務にするのではなく)普通に開発をされている方に聞かれたので、 プログラミングは普通にできる テストについては学んだことはない とはいえテストエンジニアになるわけではなく、開発者としてテストが知りたい という人向けに、2021年現在で普通に入手できるをいくつか挙げてみます。

    開発者向けのテストの本いろいろ
  • Python と Playwright でブラウザを自動操作させるコードを自動生成したよ - Qiita

    Playwright が昨年1年間で大幅パワーアップしていたので、使い方を確認したときの記録のまとめです。 ブラウザを自動操作できるということは、簡単なスクレイピングやブラウザ側のテスト自動化が簡単にできるようになります。 特に、Python での解説がまだまだ少なかったので、自分の学習を含めてまとめました。 今回は入門編ということで全体像をつかみつつ使用方法の流れを確認していただければありがたいです。 Selenium や Puppeteer を使っている方も、一度試す価値ありと思っています。 選定した理由 ブラウザのテストを Python で自動化したかったんです。 私なりの要件がありまして、非常にわがままな要件でしたが余裕ですべてクリアしました。 Python で書けること。社内で Python を使える方が多いので。pytest と連携してくれるとなおうれしい。 Docker コン

    Python と Playwright でブラウザを自動操作させるコードを自動生成したよ - Qiita
  • プログラミング上達したい人に繰り返し読んで欲しい4冊|erukiti

    プログラミング上達したいんだったら、四の五の言わずに、 ・クリーンアーキテクチャ ・レガシーコード改善ガイド ・アジャイル・サムライ ・リファクタリング 系のどれか を、全部最低5回読み返して欲しい。それでプログラマとしては圧倒的に成長できるんだから、マジで読んで — Next.js + Hasura 最速プロトタイピング @技術書典9 出す予定 (@erukiti) July 27, 2020 先日、こういうツイートをしたらバズってしまいまして。これらのを理解できるまで読みこめばプログラマとして成長できますよーというもので、 ・ クリーンアーキテクチャ ・ レガシーコード改善ガイド ・ アジャイルサムライ ・ リファクタリング 系のどれか(例えばリファクタリング第二版) の4冊を挙げました。いろいろな人の感想を読んで、補足が必要そうだなと思ったので記事として書きなおしています。 追記

    プログラミング上達したい人に繰り返し読んで欲しい4冊|erukiti
  • 機械学習を記事配信に採用したママリ - 0から構築したレコメンドエンジンのアーキテクチャ設計 - エンジニアHub|Webエンジニアのキャリアを考える!

    機械学習を記事配信に採用したママリ - 0から構築したレコメンドエンジンのアーキテクチャ設計 コネヒト株式会社が運営する女性向け情報サービス「ママリ」では、2019年12月に記事配信で機械学習によるレコメンドエンジンを構築、2020年初頭にテストが完了しました。 機械学習を採用した背景、設計したアーキテクチャとテストの結果について伺いました。 コネヒト株式会社が運営する、女性を対象とした情報サービス「 ママリ」は、2014年のリリース以降、着実にユーザーを増やし、2020年3月現在、アプリ会員数は240万人(日で2019年に出産した中で3人に1人が利用)、ママたちが集まるオンラインコミュニティとして定着しています。 ママリでは2019年12月、サービス内に掲載する記事の配信について機械学習を採用したレコメンドエンジンへ変更し、2020年初頭にテストが完了、いよいよ正式リリースとなりました

    機械学習を記事配信に採用したママリ - 0から構築したレコメンドエンジンのアーキテクチャ設計 - エンジニアHub|Webエンジニアのキャリアを考える!
  • テストコードを書き始める前に考えるべきテストの話 #DevSumi / Developers_Summit_2020

    以下のイベントの投影資料です。 https://event.shoeisha.jp/devsumi/20200213/session/2364/ 発表時の諸注意など http://nihonbuson.hatenadiary.jp/entry/2020/01/31/090000 お問い合わせは https://twitter.com/nihonbuson まで。 【発表資料中のURL】 P2 Agile Testing Fellow https://agiletestingfellow.com/ P15 ISTQBテスト技術者資格制度 Foundation Level シラバス 日語版 Version 2011.J02 http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.J02.pdf P20 概説テスト分析 http://ww

    テストコードを書き始める前に考えるべきテストの話 #DevSumi / Developers_Summit_2020
  • メンバーに恨まれそうな3つのコードレビュー施策を徹底したら、逆にメンバーが爆速で成長した話 - Qiita

    ある程度経験を積んだレビュワーがやりがちな失敗は、 指摘しやすいコーディング規約違反だけ指摘している というもの。 コードレビューで指摘するべき欠陥とは、必ずしも規約違反だけではなく、 仕様考慮もれや機能的なバグ、非機能的なセキュリティやパフォーマンス上の問題点も含まれる。 一つ関数に対して複数の視点でソースチェックをしないといけないが、 人間は同時に複数のことは考えられない。 そこでどうすればいいかと情報をあさっていたところ、 われらがIPAがセキュアプログラミング講座というWEBページで、 四回に分けてレビューすることを提唱していた。 1回目はどこに何があるか、 2回目は可読性が確保されているか、規約にのっとっているか 3回目は機能性 4回目はセキュリティ といった具合である。 IPAの講座では4回目はセキュリティに限定しているが、 担当していたプロダクトは、非機能面はセキュリティはも

    メンバーに恨まれそうな3つのコードレビュー施策を徹底したら、逆にメンバーが爆速で成長した話 - Qiita
  • iOS TestFlight

    概要iOSは開発したアプリをリリースする前自分のテスターまたはテストバージョンの公開URLを使ってテストができるTestFlightシステムを持ってます。ここではTestFlightを使って開発したアプリをテストする方法について話します。 このブログはシリーズです。下記のブログも確認してください。 iOSデバイステストiOSビルドやテストiOS開発者登録iOS証明書(Certification)iOS App store 登録Fastlaneを使ってアプリのデプロイを自動化するアップル開発者プログラムApple Developer Program)の登録や証明書(Certification)の設定が出来てない方は上のブログを参考してください。 リリース用アプリ生成アップルが提供してるTestFlightを使ってアプリをテストする場合アプリストアコネクト(Apple Store Connec

    iOS TestFlight
  • テスト駆動開発:実はそれは設計技術です

    テスト駆動開発(TDD)は、より優れたソフトウェアを持続的に早く提供するための確立された手法です。TDDは単純な考えに基づいている。製品コードを書く前に失敗するテストを書くことです。新しい行動が必要ですか?失敗するテストを書いてください。しかし、この一見単純な考えをうまく実行するには、スキルと判断が必要です。 TDDは当に設計のためのテクニックです。TDDの基礎は、小規模なテストを使用してボトムアップを早急に設計することであり、システムへの信頼を構築しながら迅速に何らかの価値を得ることです。よりよい名前はテスト駆動設計かもしれません。 設計方法としては、集中と単純さです。目標は、開発者が価値を提供する上で不要な余分なコードを書くことを防ぐことです。問題を解決するのに必要最小限のコードを書くことです。 多くの記事がTDDを行うことのすべての利点を誇りにしています。そして多くの技術会議の講演

    テスト駆動開発:実はそれは設計技術です
  • 通信系テストのためのサイトのススメ:example.com、httpbin.org、badssl.com - 病みつきエンジニアブログ

    HTTP通信の機能を持ったプログラムをテストするときに、どこにアクセスするか、迷うことがある。(モックが使えるならそれがいいけど) そんなときにおすすめな、example.comとhttpbinとbadssl.comを紹介してみる。 example.com 名前がそのままだが、example.com はちゃんと動くサイトである。よくサンプル文字列として(例えばメールアドレスとかで)仕込んでたのだが、最近まで当に生きたサイトだとは知らなかった。 亜種に example.org とか example.netもある。RFC 2606に定義されているそうで、第三者に悪影響が及ばないことを保障することができるとある。Wikipediaにも記事がある。 ただ、あくまで普通のウェブサイトであり、「403をテストしたい」といった特殊なテストには合わない。そんな人にhttpbinをおすすめしたい。 htt

    通信系テストのためのサイトのススメ:example.com、httpbin.org、badssl.com - 病みつきエンジニアブログ
  • SwiftでXCTestを使って単体テストとUIテストをしてみよう! - Takahiro Octopress Blog

    iOSアプリケーション開発でのテストとは さて、日はiOSアプリケーションを開発する際のテストについて書きたいと思います。 元々、Objective-Cでは下記のテスト用のライブラリが使われてきました。 Kiwi GHUnit Specta しかし、これらはあくまでもObjective-C時代にApple公式のテストフレームワークが充実する以前から活躍していたものです。今後、Swiftが普及するにつれて、これらのテストフレームワークもSwiftに最適化したものになっていくかもしれません。 とは言え、AppleもいつまでもOSSのテストフレームワークがなければならない状況は避け、Xcode内で完結することを目指していくかもしれません。 後ほど詳しく説明しますが、Xcode7からUIテストが新たに追加されたのも、その流れだと思っています。 日は特に XCTest に焦点をあてた、iOSにお

  • 我が名は神龍……どんなテストもひとつだけ自動化してやろう - Qiita

    『我が名は神龍……どんなテストもひとつだけ自動化してやろう』 じゃ、じゃあ!このブラウザテストを自動化してください! Chromeで https://kids.yahoo.co.jp/ にアクセスして 検索ワードに ねこ と入力して さがすをクリックして 検索結果にネコ - Wikipedia が含まれていることを確認して 検索結果に 買い方 を追加して さがすをクリックして 探しているのは「の飼い方」?と表示されることを確認して クリックするとの飼い方で再検索されて 検索ボックスを不倫で上書きして さがすをクリックして このページは表示できませんと出ていることを確認 『よかろう……たやすい願いだ』 まずはライブラリのインストールと初期設定をしてやろう…… # [ライブラリのインストール] # CodeceptJSとPuppeteerをインストールします。nodeとnpmが必要ですので

    我が名は神龍……どんなテストもひとつだけ自動化してやろう - Qiita
  • Facebook製のJavaScriptテストツール「Jest」の逆引き使用例 - Qiita

    はじめに みなさん、日頃JavaScriptのテストはどのように行っていますか? 昨今ではAngularJSやReactJSを始め、JavaScriptのフレームワークやライブラリを使用してのフロントエンドの開発が当たり前のようになってきております。 ではそのフロントエンドJavaScriptのテストはどんなツールを使っていますか? mochaやpower-assert、chaiKarma、Jasmine等を組み合わせて使用してテストしているでしょうか。 前置きが少し長くなりましたが、Facebookが開発したオールインワンな「Jest」というツールのReactでのHowto的な使い方から実際のテストでの使用例を交えて紹介したいと思います。 ちなみにこのJest、最近リリースされて話題になったパッケージ管理のYarnでも使われています。 対象バージョン Jest:22.0.4 Reac

    Facebook製のJavaScriptテストツール「Jest」の逆引き使用例 - Qiita