タグ

関連タグで絞り込む (163)

タグの絞り込みを解除

testingに関するcyber_snufkinのブックマーク (160)

  • スピード感重視なのでテストは書かない。テストはなぜ開発を遅くするか - Qiita

    あまりにバズってしまったので、前書きを追加 ここまでバズってしまって正直すまんかった。 この記事はもともと愚痴記事をマイルドにして投稿しただけなので「テストを勧める」とか「テストを信奉する」とかそこまで強い意図は特にありません。(私がテスト好きなのは否定しません) 「テスト書こう」に対して「そんなコストはない」と言いながら、いろいろ問題が生じる現状を愚痴りたかっただけです。愚痴るだけだと生産性がないから、なんでこんなに認識が違うんだろうと原因を考えた結果、テストを書くことに対する技術で実際にコストが大きく異なるなと気づいて書いた次第です。 この記事の対象は「テストを書く技術がなく、テストを書く気がない」組織に所属する人です。 アジャイル開発において「テストコードは当然」なのか?という記事で(私の記事をきっかけとして)テストコードの「徹底」とか「カバレッジ100%」とかを批判し、トレードオフ

    スピード感重視なのでテストは書かない。テストはなぜ開発を遅くするか - Qiita
  • GitHub - mikeerickson/phpunit-pretty-result-printer: PHPUnit Pretty Result Printer -- make your PHPUnit tests look pretty!

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

    GitHub - mikeerickson/phpunit-pretty-result-printer: PHPUnit Pretty Result Printer -- make your PHPUnit tests look pretty!
  • ゲームでよく見落とされるテストケースとその再現手法 - Qiita

    システムの開発をしていれば、開発したものをテストすると思います。 単体テストや結合テストなど、テスト手法はいくつか存在しますが、想定していなかったケースに対してテストを行うことは難しいです。また最後はシステムテスト(実際に動かして、触ってみるテスト)を行うことになると思います。 (テスト手法などについてはこちらを参照) テストを行うには相応の時間がかかり、テストに時間をかけられない場合もあります。また、開発者以外の人がテストを行うことも多くあります。 そして、いくらテストを行っても、バグを全て発見、修正することはできませんし、実際にゲームを公開し、運用していくことで見つかるバグも多くあります。(ユーザーは基的に開発時には想定していなかったことも行なってきますので...) 実際の開発段階では見落とだったしがちな割と特殊なテストケースを(実際に自分がデバッグするときの備忘録として残すために)

    ゲームでよく見落とされるテストケースとその再現手法 - Qiita
  • フロントエンド・テストツール比較 Puppeteer #02テスト編 - Qiita

    ・ログイン後の一覧画面に遷移して、ID/パスワードのアサーションとキャプチャ ・リストで以下の要素を登録してキャプチャ(入力したものが、画面にリンクとして反映される) 入力値:javascript, ruby, scala ・リストの順番を入れ替えてキャプチャ 別タブの操作 別タブを開くリンクをクリックする (別タブの操作)タイトルをアサーション・キャプチャ (別タブの操作)タブを閉じる 元のタブでキャプチャする ブラウザバック・フォワードの操作 リストの任意の項目(同タブリンク)をクリックする タイトルをアサーションして、キャプチャ 一覧画面に戻る、進むを行い、それぞれでキャプチャする テストコード 上記で用意したテストケースを網羅できるテストコードを書いていきます。 const puppeteer = require('puppeteer'); const loginUrl = 'ht

    フロントエンド・テストツール比較 Puppeteer #02テスト編 - Qiita
  • テストで実際に見たウェブサーバの「遅い」状態とは - Qiita

    さくらインターネットのアドベントカレンダー25日目が空いてしまったので、ウェブサーバのチューンナップについて書くことにしました。 私は今日からお休みですが、さくらインターネットは年末年始も休まずに働いていますので、ご安心ください。 年末年始のシフトに入ってくれた社員の皆さんに感謝です。 ということで、責任を持って空いたカレンダーの埋め合わせをさせて頂きますw サーバのレスポンスが遅いとは? なんだかサーバのレスポンスが悪いなぁってことは皆さんも体験されたことあると思います。 原因としては大きく分けて2種類あり、ひとつはApacheやnginxなどのウェブサーバソフトウェアの設定において同時に処理できる上限に達しているケースと、サーバ自体の負荷が高まっているケースです。 前者はApacheでいうとMaxClientsを調整することで対応できますが、そもそもサーバの性能以上にMaxClient

    テストで実際に見たウェブサーバの「遅い」状態とは - Qiita
  • 組織にテストを書く文化を根付かせる戦略と戦術 / Strategy and Tactics of Building Automated Testing Culture into Organization

    2017/12/19 Tech Night @ Shiodome # 6 https://techsio.connpass.com/event/72585/

    組織にテストを書く文化を根付かせる戦略と戦術 / Strategy and Tactics of Building Automated Testing Culture into Organization
  • [社内勉強会レポート] 『テスト駆動開発』読書勉強会 #8 | DevelopersIO

    はじめに こんぬづは、これまでなんとなく見ていなかったんですが、ガールズアンドパンツァーを一気見した田中です。なぜでしょう、毎話目をぐしょぐしょにしながら見きってしまいました。ガルパンはいいぞ。 さて題に入っていきましょう。今回からは付録Cを読んでいきます! この会の趣旨 この会の趣旨については、第一回のまとめをご覧ください。 それではまとめていきます。 付録C: ユニットテスト周辺の知識の整理とTDD拡張の試み 概要 ユニットテスト周辺の歴史や語彙を整理したり、内側と外側の回転があることについてまとめてあります。 話し合われた内容 GOOSに興味が出た TDDに流派があることを知った 「モックを活用すれば、(中略)設計の順番と時間を制御できることを発見しました。」とてもわかる。 ↑実装の要求レベル高いよね。設計にレイヤ構造を取り入れる考えとかが必要になるし。 付録C: TDDのTは「テ

    [社内勉強会レポート] 『テスト駆動開発』読書勉強会 #8 | DevelopersIO
  • テストがなかった無法地帯にテストを導入して開発速度を1.7倍にした話 - Qiita

    テストがなかった無法地帯のプロジェクトに自動テストを導入して、開発速度を1.7倍にした話をします。 自動テストがなぜないのか 自動テストのないプロジェクトには、そうなる理由が必ず存在します。よくみる理由は、「時間がないから1」「テストの書き方がわからないから」「無理やりテストを書いたつらい経験があったから2」といったものです。今回のプロジェクトの場合は、以下の2点でした: 自動テストの書き方がわからないから レビューがテスト代わりだったから まず、チーム編成が変わって私ともう一人がチームに加わるまで、実装者の中に自動テストの経験者はいませんでした。このような状況では、自動テストは困難になります。なぜなら、何をどうやってどこまでテストするかを決めるには、多少の慣れが必要だからです。この慣れがないと、何をしたらいいかわからないという状態に陥りがちで、結果として自動テストが後回しにされてしまいま

    テストがなかった無法地帯にテストを導入して開発速度を1.7倍にした話 - Qiita
  • 業務用 Web アプリケーション開発のテスト自動化 - Qiita

    ここでは Web 上で動作するシステムに対する自動テストの書き方をまとめたものを紹介します。一般的な業務用 Web アプリケーションを主軸として考えているため、業務 SE の人たちにも理解して貰えるように説明していきます。 テストツールなどのインストール方法や使用方法は省略しています。そちらについては参考になるような URL を記載しておきます。 最初は準備や考え方から初めて、次にテストの方法やコードを見ていきます。そして最後はまとめとして QA などを記載していきます。 対象となる読者 自動テストがどんな仕組みなのかわからない 自動テストを現場に導入したいけど、どうしたらいいのかわからない 自動テストの書き方は知っているけど、どこから手を付けていいのかわからない 開発環境、テストツールなど 開発環境、言語、ライブラリ、実行環境 Visual Studio 2015 C# ASP.NET

    業務用 Web アプリケーション開発のテスト自動化 - Qiita
  • スナップショットテストを使いPublicなAPIをテストする - Qiita

    ライブラリを書いていると、公開するAPIのスキーマをテストしたいことがあります。 例えば、以下のような非常に小さなライブラリ。 const hello = 'hello' module.exports = name => { return `${hello} ${name}` } module.exports.first = 1 module.exports.noop = () => {} ここで、公開されているAPIは、module.exportsで公開したFunctionとfirstとnoopです。 しかし、APIを変更する必要が出て、firstを以下のようにnumberからfunctionへと変更したとします。

    スナップショットテストを使いPublicなAPIをテストする - Qiita
  • swiftで 依存関係逆転の原則 を使ってテストしやすい設計にする - Qiita

    今開発しているプロダクトで、既存のMVCのコードをクリーンアーキテクチャ(+DDD風味)で置き換えているのですが、 依存関係逆転を使ってドメイン層をどこにも依存させないような作りにしています (依存とは、参照している状態。ということにします) 脳内整理がてら、依存関係逆転にいたるまで順序立てて書いていきます (「依存関係逆転の原則」という言葉を知らなくても読めると思います) 依存関係逆転の原則 を使う動機 コードをテストしやすくする 変更に強くする 多少コストは増えますが、テストが圧倒的に書きやすくなるメリットがあります。 また最後まで見ればわかるのですが、コード量もそれほど変わらないので、慣れてしまえば気にならないコスト感かと思います。 フェーズ1 下位レイヤーに依存したコード /** 検索結果を返すクラス **/ public class SearchService { let rep

    swiftで 依存関係逆転の原則 を使ってテストしやすい設計にする - Qiita
  • 3年以上運用しているアプリにUIテストを導入した #orecon_ios #fastlane_study_jp - Qiita

    10/3に開催された俺コン Vol.1 Day.2にて発表した資料です。 UIテストの辛み いきなり初期画面が起動する 毎回要素を検索するのが面倒 遅い 今回は「いきなり初回画面が起動する」点と「毎回要素を検索するのが面倒」な点を改善したいなと思いました。シミュレーターが遅い問題はBluepill等を利用したりお金で解決するのが良いかと思います。 UIテストを導入する為にやった事 アプリ起動時に文字列でViewControllerを指定 UIテストからViewControllerを指定してテスト ページの要素を整理 UIテストからモックを渡してテスト 下記に具体的に書いていきます。 1. アプリ起動時に文字列でViewControllerを指定 アプリ起動時に文字列でViewControllerを指定して起動出来る様にしました。こちらの方法はiOSDC 2016の@dealforestさん

    3年以上運用しているアプリにUIテストを導入した #orecon_ios #fastlane_study_jp - Qiita
  • スタブ・モックは本当に悪者なのか?〜テスト駆動開発をやめて、なお残すべき習慣とは (2)

    技術詳細は外側へ寄せるポイントは、中心となる対象ドメインは何か?中心から排除したい要素は何か?を考慮して区分けすることです。中心のドメインから排除したい項目の代表例が、データベースアクセスや外部Webシステムやメッセージングといった詳細の技術要素です。ドメイン駆動設計の設計判断を取り入れている場合は、オブジェクトへのアクセスするためのRepositoryのインタフェースのみを中心ドメインに入れ込み、Repositoryの実装(特定のデータベース種類やSQLなど実装詳細)は外側に追いやります。同様に、インタフェースのみを中心にいれてメッセージングや他のWebシステムのアクセス等の実装の詳細は外部に追いやります。 うまく区分けできれば、中央に残った純粋なビジネスについてのルールや状態遷移についてをユニットテストやリファクタリングを継続することができます。リファクタリングによる設計改善を継続する

    スタブ・モックは本当に悪者なのか?〜テスト駆動開発をやめて、なお残すべき習慣とは (2)
  • BackstopJSではじめるビジュアルリグレッションテスト - astamuse Lab

    こんにちは。デザイン部でフロントエンドエンジニアをしているkitoです。 今回は、BackstopJSを使ったビジュアルリグレッションテストについて書きたいと思います。 ビジュアルリグレッションテストとは視覚的な回帰テストのことで、具体的にはスクリーンショットを撮影して差分抽出して行うテストです。 近年のWebフロントエンド開発では、SassやWebpackのような開発環境が整うに従ってスタイルシートをモジュール化することが増えています。 それはスタイルの汎用性を高めることに大きく貢献していますが、一方で、あるパーツのスタイル修正が想定外の場所で悪影響を及ぼしてしまう可能性をもつようになりました。 この問題に対処するために、Enduring CSSのような新しいタイプの設計手法も考えられてはいますが、既存のサービスに導入するにはかなり敷居が高いでしょう。 そこで注目したいのが、ビジュアルリ

    BackstopJSではじめるビジュアルリグレッションテスト - astamuse Lab
  • SeleniumとWebDriverの最新事情~標準化が進み、さらに強力なテストツールへ! その影でSelenium IDEは……

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    SeleniumとWebDriverの最新事情~標準化が進み、さらに強力なテストツールへ! その影でSelenium IDEは……
  • Siegeによる負荷テストでWebアプリをスケールさせる方法

    目標とするトラフィックできちんと稼働するか、テストしていますか? テストツール「Siege」を使った負荷テストの実際の手順を解説します。 単純なWebアプリケーションの構築なら難しいことはありません。Web開発コミュニティは親切で、Stack Overflowなどのプラットホームでは多くの議論があり、さまざまなWebサイトにはレッスンやチュートリアルがあります。 アプリをローカル環境に構築し、サーバーにデプロイ、友人に公開するだけならほとんどの人ができます。もし、有名になったアプリを実際に作ったことがあれば、この記事は役に立つでしょう。「高トラフィックでもアプリが安定して稼働できることを確認する方法を学びたい」という明確な動機を持っているからです。 Webアプリをブラックボックスだと考えると、リクエストを待ち、処理し、リソース(HTML、JSON、XMLなど)をレスポンスとして返すだけのア

    Siegeによる負荷テストでWebアプリをスケールさせる方法
  • iPhone/Android含むブラウザ自動テストの最終兵器Selenium WebDriverとは

    Webアプリケーションのテスト自動化をサポートするツール「Selenium WebDriver」は2011年にリリースされました。 Selenium WebDriverは広範なWebブラウザのサポートを行っていた「Selenium1(Selenium RC)」と高速軽量で汎用的なWebブラウザエミュレータの機能を持つ「WebDriver」を統合したものです。 稿では、Selenium WebDriverを簡単に試してみたい方や自動テストの実施を検討している方のために、前後編に分けて紹介します。Selenium WebDriverの特徴を整理するとともに、Selenium WebDriverを利用したWebアプリケーションに対する簡単な自動テストの実装、実施手法について解説します。 稿で使用する用語の説明 Selenium WebDriver Selenium WebDriverはSel

    iPhone/Android含むブラウザ自動テストの最終兵器Selenium WebDriverとは
  • JavaScriptのテストダブル、定番Sinon.jsと新星testdouble.jsどっちを選ぶ?

    JavaScriptのテストダブル、定番Sinon.jsと新星testdouble.jsどっちを選ぶ? テストダブルは、難しいテストを簡単に実行できる代替コードです。 これまではSinon.jsがJavaScriptのテストダブルを作成するには不可欠なツールでしたが、最近、testdouble.jsという新しいライブラリーが話題になっています。Sinon.jsと同様の機能を備えていますが、いくつか違いがあります。 この記事では、Sinon.jsとtestdouble.jsのできることを紹介し、長所と短所を比較します。Sinon.jsがデファクトスタンダードのままになるか、それとも挑戦者がその座を勝ち取るのでしょうか? 注意:テストダブルをよく知らない人は、まず私が書いたSinon.jsチュートリアルを読むことをおすすめします。この記事で紹介する用語の理解を深めるのに役立ちます。 この記事で

    JavaScriptのテストダブル、定番Sinon.jsと新星testdouble.jsどっちを選ぶ?
  • 2017年JavaScriptのテスト概論 | POSTD

    稿は、JavaScriptのテストについて最も重要な根拠、用語、ツール、アプローチなどの知識を身に着けることを目的とした簡略版ガイドブックです。稿で検討する数々の側面に関する最新の秀逸な記事も紹介しつつ、私たちが経験的に得たことも多少付け加えたいと思います。 Facebookによるテスト用フレームワークであるJestのロゴをご覧ください。 見てお分かりのように、このフレームワークは「苦痛のない」JavaScriptのテストをスローガンに掲げています。しかし、 “次のように言う人” もいます。 苦痛のないテストなんてあり得ない。 実際、Facebookはこのスローガンを掲げるだけの素晴らしい理由があります。一般的にJSのデベロッパは Webサイトのテストにあまり満足していません 。JSのテストには制限があり、実装が難しく、低速である傾向があります。 一方、正しい戦略を立てて適切にツールを

    2017年JavaScriptのテスト概論 | POSTD
  • ブラウザテストツール総まとめ・2016年夏版 - Qiita

    GitHubのスターは2016年7月30日調べ。ただし、登場年によるバイアスが激しいので、この件に関してはあまり参考にならないですね...。 E2Eテストツール Nightwatch 総合的なE2Eテストツール。WebDriver実装(独自)と、アサーションライブラリが一体となっているのが、使いやすいような使いにくいような。 http://nightwatchjs.org/ https://github.com/nightwatchjs/nightwatch 書き方はこんな感じ。 module.exports = { 'Demo test Google' : function (client) { client .url('http://www.google.com') .waitForElementVisible('body', 1000) .assert.title('Google')

    ブラウザテストツール総まとめ・2016年夏版 - Qiita