タグ

testに関するmizogucheのブックマーク (83)

  • なぜE2Eテストでidを使うべきではないのか |Autifyブログ

    こんにちは。AutifyのSET(Software Engineer in Test) 、末村(@tsueeemura)です。 皆さん、E2Eテストしてますか?以前はほぼSelenium一択みたいなところがありましたが、最近はPuppeteerやCypress、TestCafeなどいろいろなフレームワークがあり、ついつい目移りしてしまいますね! さて、どのフレームワークを使うにせよ、E2Eテストを書く上で共通で意識しないといけない重要なファクターがいくつか存在します。 その一つが ロケータ です。操作や検証の対象となる要素を指定するためのキーのことです。 ロケータにはCSSセレクタやXPathが利用でき、idやclass、name といった属性を利用するのが一般的です。 今回はこのロケータについての話を書こうと思います。 ロケータとは 要素を一意に指定できさえすればロケータに使うものは何で

    なぜE2Eテストでidを使うべきではないのか |Autifyブログ
  • E2Eテストコードのメンテナンス性に立ち向かう - Qiita

    はじめに E2Eテストコードを書くにあたって、一番の心配事は テストが壊れる ことでしょう。 アプリ側の変更に伴いテストをすべて書き直すことを恐れるQAエンジニアは多いと思います。 例えば 機能はまったく変わってないのに、デザインリニューアルでテスト全部書き直しだ〜〜〜! みたいなやつですね。 ここでは、自分が実際に「メンテしやすい」テストコードを試行錯誤する過程で得られた気づきをまとめていきたいと思います。 なお、自分の活動範囲は主にWebアプリのテストですので、基Webアプリの話題になりますが、「いやネイティブアプリはこうやねん」みたいなツッコミもお待ちしております。 また、文中に登場するサンプルコードは CodeceptJSで記述しています。 使ったことがない方は気合で読んでください。 メンテしやすい vs メンテナンスフリー はじめに強くお伝えしておきたいことは、メンテナンスしや

    E2Eテストコードのメンテナンス性に立ち向かう - Qiita
  • 20 万行超のコードベースをテストせずにリファクタリングリリースした話 - MonotaRO Tech Blog

    こんにちは、鈴木です。 20 万行を超えるアプリケーションのほとんど全てのソースコードを変更し、テストを行わずに番リリースしました。 「それってテストいるんですか?」問題 いきなりですが質問です。ソースコードを 1 バイトでも変更したら再テストする必要はあるでしょうか。「絶対に再テストすべき」という方もいれば、「状況によるしケースバイケースかな・・」という方もいらっしゃると思います。 ケースバイケースと考える方は、どのような場合にテストを行わなくて良いと考えるでしょうか。例えば、コメント内の誤字を修正した場合はどうでしょうか。ローカル変数の名前を typo していたので修正した場合、デッドコードを削除した場合はどうでしょうか。 こんなことがありました ある日、Python のソースコードを眺めていると、「# $Id」のような CVS 時代のコメントがありました。いまやソースコードは Gi

    20 万行超のコードベースをテストせずにリファクタリングリリースした話 - MonotaRO Tech Blog
    mizoguche
    mizoguche 2018/10/09
    "結論は「抽象構文木 (AST: Abstract Syntax Tree) が変化しない変更であればテスト不要」"
  • スピード感重視なのでテストは書かない。テストはなぜ開発を遅くするか - Qiita

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

    スピード感重視なのでテストは書かない。テストはなぜ開発を遅くするか - Qiita
    mizoguche
    mizoguche 2018/07/31
    “簡単に言ってしまえば、テストのやり方を知らければテストを書くのは難しい。テストを書く技術がなければ、当然テストのコストを高く見積もる”
  • テスト自動化の理論と技術と戦略:LINE Developer Meetup Tokyo #39 - Testing & Engineering - LINE ENGINEERING

    テスト自動化の理論と技術と戦略:LINE Developer Meetup Tokyo #39 – Testing & Engineering By Hiroyuki Ito | 2018.07.09 2021.01.08LINE株式会社のSET(Software Engineer in Test)です。「SETタスクフォース」(以下「SETチーム」と表記)のリーダーとして、主にLINEプラットフォームのサーバーサイドで、テスト自動化を活用したプロダクト開発ライフサイクルの改善を立案・実施・主導しています。また、アジャイルコーチも兼務しています。 はじめに こんにちは。LINE株式会社のSET(Software Engineer in Test)の伊藤 宏幸(Hiroyuki Ito)です。 2018年6月27日(水)に、電気通信大学の西 康晴さん(以下「にしさん」と表記)をお招きして、「

    テスト自動化の理論と技術と戦略:LINE Developer Meetup Tokyo #39 - Testing & Engineering - LINE ENGINEERING
    mizoguche
    mizoguche 2018/07/10
    “「知のスケールアウト」""納得感をマネジメントする""労働ではなくミッションをシェアする""違和感をアンドン化する”
  • E2EテストをPhantomJSから、Puppeteer + Headless Chromeへ移行しました - LCL Engineers' Blog

    Webエンジニアの森脇です。LCLでは、以前より「Capybara + PhantomJS」でE2Eテストを行っていましたが、「Puppeteer + Headless Chrome」へ変更しました。 元々は、軽くPuppeteerを触ってみるだけのつもりでしたが、できが良く格的にE2Eテストへ導入することにしました。 記事では、変更の経緯や、PuppeteerでE2Eテストを実装する上でのTIPSを紹介します。なお、Capybara + PhantomJSを利用したE2Eテストは、以下の記事でご紹介しております。 techblog.lclco.com 変更の経緯 PhantomJSは古めのWebkitをベースにしているため、一部のCSSがうまく適用されず、Headless Chromeへ移行を以前より考えていました。そんな中、PhantomJSの開発が終了したこともあり、移行すること

    E2EテストをPhantomJSから、Puppeteer + Headless Chromeへ移行しました - LCL Engineers' Blog
  • 希薄化したTDD、プロダクトの成長のために必要なものは?〜『健全なビジネスの継続的成長のためには健全なコードが必要だ』対談 (6)

    テスト書くのが当たり前、だけど・・・和田:次に意味の希薄化ですね。『Test-Driven Development by Example』の出版から15年経ち、テストコードを書く人はすごく増えました。15年前は啓蒙期で、テストコードを書きましょう、テストコードの書き方はこういう感じですというのを頑張って啓蒙する必要があった。 でも、例えば今の若手プログラマーは普通にテストコードを書く。なぜなら既存システムにはテストコードが書かれているから、開発の継続、不具合の修正とか機能追加を行う際にテストコードを書くのが普通だし、テストコードが無いとレビューは通らないしみたいな話になって、テストコードがあるという生活は普通のものになっている。そうすると、なぜテストコード書くのかとか、来こういうテストコードを書きたかったんだけどとか、こういうテストを書くべきなんだけどみたいな議論はだいぶ土俵から外れてし

    希薄化したTDD、プロダクトの成長のために必要なものは?〜『健全なビジネスの継続的成長のためには健全なコードが必要だ』対談 (6)
    mizoguche
    mizoguche 2018/04/03
    “非力なモックを使うことでイライラを感じて設計の方を改善していかなきゃいけないのに、強力なモックライブラリによって…既存の機能を無理やりテストするため、カバレッジを上げるための道具に成り下がってしまっ
  • t-wadaさんのTDDワークショップが開催されました | 株式会社ニジボックス

    [markdown] こんにちはみなさん、@niisan-tokyoです。 先日 10⁄27 にt-wadaさんをお招きして、TDDのワークショップが開催されました。 t-wadaさんは最近ケント・ベック氏著の「テスト駆動開発(TDD)」についての書籍の翻訳を出版されており、 タイムリーなタイミングでワークショップが開かれたと思います。 言うまでもなく真ん中の方がt-wadaさんですね。 ちなみに、右側にいるのは昔の室長の@remoreです。 随分前に、彼もTDDについて精力的に推進しようと活動していたようです。 ## ワークショップの構成 今回のワークショップは以下のような構成でした。 * t-wadaさんによるTDDについての講義とデモ * ペアプログラミングとTDDの演習 * レビュー * 懇親会 ## t-wadaさんによるTDDについての講義とデモ 内容が盛り沢山だったので、詳細

    t-wadaさんのTDDワークショップが開催されました | 株式会社ニジボックス
    mizoguche
    mizoguche 2017/11/17
    JSON返すAPIで実践してるけどDBまで一気通貫にテストできて良いです“クラス分割するとか、影響の大きなリファクタリングもできるので、 リクエストごとのテストは良いのではないか”
  • Acceptance Testing React Apps with Jest and Nightmare | Viget

    Jest is a batteries included unit testing framework by Facebook. It's fast, feature rich, and integrates perfectly with Babel, an important tool our build pipeline. Jest allows for an exceptional unit testing experience. However I've never been able to say that about acceptance testing. Could we integrate high-level, end-to-end tests and maintain the same experience? Nightmare, an Electron powered

    Acceptance Testing React Apps with Jest and Nightmare | Viget
  • GitHub - atlassian-archive/localstack: ⚠️ **Note**: This repository is no longer actively maintained (see README below) ⚠️

    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. Dismiss alert

    GitHub - atlassian-archive/localstack: ⚠️ **Note**: This repository is no longer actively maintained (see README below) ⚠️
    mizoguche
    mizoguche 2017/06/19
    ローカルでAWSのサービスをモックしてくれるやつ
  • Rails アプリの Docker Image ビルドと Amazon EC2 Container Service へのデプロイの自動化 - Atsushi Nagase

    Rails アプリの Docker Image ビルドと Amazon EC2 Container Service へのデプロイの自動化 - Atsushi Nagase
  • RSpecとMinitest、使うならどっち? / #kanrk06 // Speaker Deck

    関西Ruby会議06で使用したスライドです。 http://regional.rubykaigi.org/kansai06/ 動画版はこちらです。 https://www.youtube.com/watch?v=XAzzA4la59E スライド作成の裏話等はブログに書いています。 http://blog.jnito.com/entry/2015/07/13/073458

    RSpecとMinitest、使うならどっち? / #kanrk06 // Speaker Deck
  • Tested be thy name

    Tested be thy name Developers often talk about different types of tests, but it seems to be a bit hard to keep track of what each type of tests is supposed to do. I decided to create a short guide from a web developer’s perspective. The confusing part is that people often mix two different things. One is testing level and the other is testing type. Another important thing is that you shouldn’t ass

  • 負荷テストツールGatlingを触ってみた - 絶品ゆどうふのタレ

    負荷ツールとしてGatlingのことを少し前から耳にする機会が増えたので、利用してみることにした。 色々既出だとは思うが、公式のQuickstartに従って試してみたのでメモ。 GUIが必要だったので、今回は手元のMacで実行。 Gatlingとは Java/Scala製の負荷テストツール。 JMaterと似た感じのツールではあるが、 ハイパフォーマンス 見やすいレポートHTML developerフレンドリーなシナリオファイル というのをウリとして謳っている。 たぶん、3項目とも対JMater(重い・レポート見づらい・XMLのシナリオつらい)を意識したメリットだろうなー。 なお、シナリオファイルは。。。 Gatling simulation scripts are written in Scala, but don’t panic! わろた。 というわけで、触ってみる Install J

    負荷テストツールGatlingを触ってみた - 絶品ゆどうふのタレ
  • テスト駆動開発とは何か、それを気に入っているのは何故か、あなたも使うべきなのは何故か | POSTD

    ペースが速い現代のソフトウェア開発環境では、テスト駆動開発(TDD)という言葉をよく聞きます。その利点だけでなく欠点についてもソフトウェア開発コミュニティでよく議論されています。TDDについて、”自己嫌悪に陥って屈辱を味わっている者に対する非現実的で効果のない道徳教育のようなものだ”と言う人もいれば [1] 、”リファクタリングを使って迅速な設計を支援するただのツールだ”と言う人もいます [2] 。 「ダメなプログラマは全てに答えを持つが、優れたテスタは全てに疑問を持つ」 Gil Zilberfeld しかし、TDDは新たな手法というわけではありません。広く知られている最も古い文献は1957年に出版されたD.D. McCracken著の『Digital Computer Programming: The First General Introduction in Book Form, St

    テスト駆動開発とは何か、それを気に入っているのは何故か、あなたも使うべきなのは何故か | POSTD
    mizoguche
    mizoguche 2015/05/28
    “新しい機能を実装する度に、その機能に加えて、それまでに実装した機能を全てテストしなければいけないということでしょうか? そう、その通りなのです。”
  • 悩んでるポイントはみんな同じ!?「Rubyistのためのテストコード相談会」の質疑応答まとめ - give IT a try

    はじめに 先週の土曜日(2015年5月16日)に西脇.rb&神戸.rbで「Rubyistのためのテストコード相談会 ~テストの書き方に悩んでいませんか?~」という勉強会を開催しました。 この勉強会は「テストコードに関する疑問や悩みをみんなで持ち寄り、みんなで解決すること」を目的にした勉強会です。 勉強会中はいろいろと興味深い議論が出たので、今回のエントリではその内容を簡単にまとめてみます。 勉強会で挙がった質疑応答 よく使うフレームワークは? RSpecが大多数、Minitestが若干名。 gemを開発するときはMinitest、RailsはRSpec、というように開発内容によってフレームワークを使い分ける、という人もいた。 Minitestってどうなの? 導入が簡単。assertメソッドだけ知っていればなんとかなる。 Railsにも対応している。Capybaraも使える。 RSpecのs

    悩んでるポイントはみんな同じ!?「Rubyistのためのテストコード相談会」の質疑応答まとめ - give IT a try
    mizoguche
    mizoguche 2015/05/20
    “権限管理や医療系のプログラムなどではあらゆる組み合わせを考慮しないと重大な問題が起きる。なので全パターンをテストする。”
  • FactoryGirlのtransientとtraitを活用する - Qiita

    FactoryGirlでテストデータを定義する時に、transientとtraitを活用すると色々捗るという話。 transientは実際に作成するデータと直接関係無い新しいattributeを定義する機能。 そこで定義されたものは実際のmodelにはセットされないしattributes_forでも出力されません。 何のために使うかというと作成時に挙動を変更するためのフラグや追加データとして利用するのが一般的です。 traitは属性の定義を一纏めにして名前を付けられる機能です。 parentを指定したfactoryの継承とは違い、traitは単体ではfactoryとして機能しません。 あるfactoryの特定の状態に名前を付けて、付け外しできるようにする、というのが主な使い方になります。 例えば、あるfactoryをある時はadminある時は非adminで作りたい時等に有効です。 個人的に

    FactoryGirlのtransientとtraitを活用する - Qiita
  • EC サービスの負荷テスト / EC performance testing

    第1回ペパボテックカンファレンスの発表資料 https://pepabo.connpass.com/event/13208/

    EC サービスの負荷テスト / EC performance testing
  • Webアプリケーション負荷試験実践入門

    2015年2月24日 ヒカ☆ラボ発表資料 Webアプリケーション負荷試験実践入門 ■スライドの目的 負荷試験の重要性を認識して頂く 意味のある負荷試験を最短距離で行うための“段取り”を持ち帰って頂く 内容的には、主にAWS上のLAMP構成のシステムに対する負荷試験ですが、負荷試験ツールに依存しない全般的に通用する話を扱っています。Read less

    Webアプリケーション負荷試験実践入門
  • 型付けを活用してテストを減らす:静的型を使ったTDD Part 1 | POSTD

    私はテスト駆動開発(TDD)について、Kent Beckの著書『 Test-Driven Development By Example 』(邦訳『テスト駆動開発入門』)で学びました。これは大変優れた入門書で、TDDにますます関心を持つようになった私は、さらにSteve FreemanとNat Pryceの著書『 Growing Object-Oriented Software, Guided by Tests 』(邦訳『実践テスト駆動開発:テストに導かれてオブジェクト指向ソフトウェアを育てる』)を読みました。このも私のお気に入りです。 ただし、両書には弱い部分もあります。現代の静的型システムがテストを補ったり、場合によっては置き換えたりできるかもしれないことには、全く触れていないのです。このようなを読んだだけでは、”typing”(型付け)と聞いてもキーボードの”タイピング”のほうを考

    型付けを活用してテストを減らす:静的型を使ったTDD Part 1 | POSTD