タグ

testingに関するshimookaのブックマーク (288)

  • テストがなかった無法地帯にテストを導入して開発速度を1.7倍にした話 - Qiita

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

    テストがなかった無法地帯にテストを導入して開発速度を1.7倍にした話 - Qiita
  • TDD を体験する本「テスト駆動開発」 - Shin x Blog

    TDD の原典である テスト駆動開発 が、t_wada さんによって再翻訳されるということで興味を持っていたところ、見誌を送って頂きました。ありがとうございました。早速、拝読させて頂きました。 以前の翻訳版である「テスト駆動開発入門」が出版された頃、XP や他の xUnit などは読んだのですが、書は未読でした。テストをコードで書くことや自動化には興味があったので、おそらく手に取ったことはあったと思うのですが、購入には至りませんでした。 当時は、新しい開発プロセスの一つとしてテストの自動化を捉えていましたが、それを日々の開発で当たり前に行っている中で書に触れてみてどのように感じるかという視点で読み進めました。 書は、三部構成となっています。第 1 部 と 第 2 部 では、TDD を実践しながらコードを書き上げていく過程を解説しています。第 3 部は、テストに関する様々な話題が

    TDD を体験する本「テスト駆動開発」 - Shin x Blog
    shimooka
    shimooka 2017/10/25
    『TDD を行うかどうかという話とテストを書くか書かないかは別』
  • 技術的負債の返済 – レガシーコードをリファクタリングで救うには | プログラミング | POSTD

    レガシーコードをうまく手なずけて、もう一歩成熟させるにはどうすればいいのでしょう?この投稿では、大規模なレガシーウェブアプリケーションと格闘してきた私が学んだことを紹介します。レガシーコードをうまく手なずけて 、もう一歩成熟させるにはどうすればいいのでしょう?この投稿では、大規模なレガシーウェブアプリケーションと格闘してきた私が学んだことを紹介します。 レガシーコードはリファクタリングで救出可能 耳寄りなお知らせがあります! リスたちは毎年何千もの木を植えてくれています 。まあ自分たちが隠したドングリのありかを忘れてしまった結果ですけどね。そしてもうひとつ。 あなたのプロジェクトも救出できる のです。 ボスから任されたプロジェクトが どんなに醜い泥まみれのレガシーコードだったとしても 、そこには 必ず 道があります。道は曲がりくねっていて、木陰にはモンスターが待ち構えていることでしょう。

    技術的負債の返済 – レガシーコードをリファクタリングで救うには | プログラミング | POSTD
    shimooka
    shimooka 2016/12/28
    『自明ではないビジネスロジックと、(たとえ単純なコードであっても)誤動作が致命的な問題につながりかねない部分のテストを書いておくくらいがちょうどいいのではないか』
  • フリーエンジニアのIT案件ならレバテックフリーランス

    2016年11月3日(祝)、大田区産業プラザPiOにて開催された国内最大のPHPイベント「PHPカンファレンス2016」。レバテックフリーランスでは、カンファレンスセッションの登壇者のひとり・和田卓人氏にインタビューを実施しました。 テスト駆動開発の先駆者として知られる和田氏ですが、今回の講演テーマは「PHP7で堅牢なコードを書く-例外処理、表明プログラミング、契約による設計」。あえてテスト以外のテーマを設定した理由をはじめ、PHPの優位性や今注目している言語、初心者エンジニアへのアドバイスなど、幅広くお話を伺ってきました。 <この記事の要約> 1. PHPの良い点は、ゆるふわな言語に見せかけて堅牢なコードも書けるところ。悪い点は、覚えることが多くて難しいところ。 2. テストを書いていればコードの品質が高いわけではない。また、テストが書けないくらい問題を抱えたコードでも、中から改善してい

    フリーエンジニアのIT案件ならレバテックフリーランス
  • フロントエンドにテストを導入 - Qiita

    2016-8-8 ※webpack単体の記事を書きました。よろしければこちらもどうぞ step by stepで始めるwebpack 2016-5-16 ※karma単体の記事を書きました。よろしければこちらもどうぞ step by stepで始めるKarma 記事は画面のJavaScriptのテストとかまったくやったことない方 Mocha?webpackkarma?それぞれの解説記事はよく見るけど全体像がよくわからんという方向けです。(数日前の自分です) 全体を通して導入の流れを解説した記事があると全体像が理解しやすいのではと思い書いてみました。 前提 Nodejs,npm,chromeが導入済みであること 流れ Step 表題 目的

    フロントエンドにテストを導入 - Qiita
  • たった1人から始める社内テストコード文化

    # -*- coding: utf-8 -*- from __future__ import absolute_import, unicode_literals # テストする関数 def add(a, b): return a + b # テストコード 関数名はtest_ から始めるのがpytestでのお作法 def test_add(): assert add(1, 1) == 2 assert add(1, 2) != 2 >>> $ py.test ../tests/test_add.py =============================================================================== test session starts ================================================

    たった1人から始める社内テストコード文化
    shimooka
    shimooka 2016/03/17
    一連の経緯に加え『振り返り』までまとめてあるのはすごく分かりやすくて良い
  • テストがうまくいかないプロジェクトに捧ぐ、正しいテストの考え方 - Qiita

    この記事の対象者 プロジェクトでテストを書いている。(書いたことある) テストが重要らしい事は知っているが、テストの恩恵をそこまで実感できていない。 結局手動テストに依存したバグフィックスをしている。 はじめに 私はテストの設計手法、実装に関する知識は多く持っていましたが、知らなかったことはテストの考え方でした。 テストが重要らしいことを知っている人は多いと思います。 しかし、実際に恩恵を実感できていない人もいると思います。 事実、 テストが重要だと発信している人 と、 テストが重要らしいことを知っている人がいます。 後者の人は、とりあえずテストを書く事ができます。しかし、テストに時間を割く割りに、最終的には手動テストでバグを発見することに依存している事も多いかなと感じます。 世間ではテスト書くのが当たり前、テストは重要!という風潮であるのに、何故テストが重要であると実感できないのでしょう

    テストがうまくいかないプロジェクトに捧ぐ、正しいテストの考え方 - Qiita
  • FuelPHPで開発したWebAPIをVAddyで脆弱性テストする話 - Qiita

    FuelPHP Advent Calendar 2015 の18日目を担当します @hmukaida です。よろしくお願い致します。 今回は、FuelPHP で開発している WebAPI を VAddy というクラウド型Web脆弱性検査ツールを使ってテストする話をしたいと思います。FuelPHP 部分は弱めかと思いますが、18日目が空いていたので参加させていただきました。 はじめに フレームワークを使った開発では、ユニットテストやE2Eテストを行うのはもはや日常になってきているかと思います。当然私達の現場でも実施しています。 特にセキュリティ対策としては、各種サーバでの対策もそうですが、フレームワーク独自の対策を施したり、IPAの安全なウェブサイトの作り方を読み込み実践したりと様々取り組んできました。 しかし、数あるAPIの様々なリクエストにどれくらいの脆弱性が潜んでいるのか不安でなりませ

    FuelPHPで開発したWebAPIをVAddyで脆弱性テストする話 - Qiita
  • できる開発者の酷いコードとのつきあいかた | readwrite.jp

    ただの一行も酷いコードを書いたことがないというのは可能性としてあり得なくはないが、実際にはとても考えにくいことだ。 現実には、あなた自身も他の開発者と同じくセキュリティ欠陥を作ってしまったりUIの配置ミスなどをやってしまうことだろう。なにもあなたがダメな開発者だからというわけではなく、人間である以上しかたがないことなのだ。 開発者たちはみな人として仕方のない弱点を抱えていることから、「最高の開発者」と呼ばれる人々は自分が作るコードやインフラで起こりうる最悪の事態を想像し、それに備えている。以下、最高の開発者たちがおこなっていることだ。 大混乱を前提に考える数年前、Netflixが「Chaos Monkey」およびクラウドベースの管理ツール「Simian Army」の一部をオープンソース化した。かいつまんで言うと、Chaos Monkeyは、AWSインフラで幅広く動いているインスタンスをラン

    できる開発者の酷いコードとのつきあいかた | readwrite.jp
  • JavaScriptのテスト環境の参考URLメモ(2015-03時点) - msakamoto-sfのはてなブログ

    2015-03-30 JavaScriptのテスト環境の参考URLメモ(2015-03時点) JavaScript TDD JavaScriptのテスト環境、テストライブラリってどうなってるのか、参考URLをまとめてみました。 結論:ライブラリが数種類あり、それぞれがどこのレイヤーをカバーするのか異なる。そのため、組み合わせはもとより出力形式、CI環境との連携、なにをどこまでテストするのか、開発者のスキル、アプリケーションのライフサイクルなど多数のパラメータのバランシングが必要となる。ライフサイクルの短い使い捨てなら、バランシングのためのコストも無視して「えいやっ」で決めても良いが、そもそもテスト環境の整備が必要なプロジェクトであれば、ライフサイクルもそれなりの規模が想定される。技術者の自己満足や、流行り廃りに焦って拙速な判断を下さないよう厳重な注意が必要とされるだろう。数年後、流行り廃り

    JavaScriptのテスト環境の参考URLメモ(2015-03時点) - msakamoto-sfのはてなブログ
  • クックパッドにおける Jenkins の活用 - How We Use Jenkins? // Speaker Deck

    At Jenkins user conference 2015 Tokyo

    クックパッドにおける Jenkins の活用 - How We Use Jenkins? // Speaker Deck
  • PHPUnitを便利にするライブラリ幾つかつくった - gong023の日記

    年末年始+αの時間で PHPUnit をちょっと便利にするライブラリを幾つか作ったのでそれぞれ書いておく。 assert_chain https://github.com/gong023/assert_chain PHPUnit で一つの変数について詳しくアサーションをかけたい場合、以下のように書くことがあると思う。 <?php $arr = [ 'intKey' => 1, 'stringKey' => 'foo', 'boolKey' => true, ]; $this->assertNotEmpty($arr); $this->assertArrayHasKey('intKey', $arr); $this->assertSame(1, $arr['intKey']); $this->assertArrayHasKey('stringKey', $arr); $this->asser

    PHPUnitを便利にするライブラリ幾つかつくった - gong023の日記
    shimooka
    shimooka 2015/01/15
    assert_chainはイイね
  • 短気なプログラマのためのPHPUnitクックブック

    「今までテストを書いたことがないから、そろそろテストを書かなくては・・・」という、PHPUnitもテストのこともまだ知らないプログラマにとって、一番最初に欲しいのは「何から始めたらよいのか」を知るためのガイドです。 書は、PHPUnitを使ったテストの書き方を、短時間で知るための小冊子です。これだけ読めば、PHPUnitでテストを書いていけるようになります。 書が特徴的なのは、ユニットテストの形式的な書き方だけを単純に説明したではないということです。書では、PHPUnitによるテストを、オブジェクト指向の原則に沿った、良いコードへリファクタリングしていくための道具、と位置づけています。その流れに沿って、必要最低限の基礎知識や、実際にありそうなサンプルコードで使い方が説明されています。モック(テストダブル)を使ったテスト、フィクスチャを使ったテスト、APIのテストといった対象ごとのP

    短気なプログラマのためのPHPUnitクックブック
  • PHPUnit コードカバレッジの向上事例を紹介します

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめに こんにちは、ヤフーメール エンジニアの小沼俊治です。 開発者の皆さんの中には、CIにユニットテストの自動化を導入して、日々開発されるプロダクトの品質維持に務めている方々も多いのではないでしょうか? 私の担当サービスでもxUnitを使ってプロダクトコードにテストコードを作成して、CIツールのジョブで定期的にユニットテストを実行して品質維持に活用しています。 そして、それらテストコードがきちんと品質維持に貢献されていくためには、プロダクトコードのビジネスロジックをどれだけ網羅できているのか? と言う観点が重要になってきます。 その観点の達成状況を確認する指標の1つとして、ユニットテストを実行した時に行われるコードカバレッジ解

    PHPUnit コードカバレッジの向上事例を紹介します
  • [Symfony] AliceBundleで自動テストのfixtureをyml化しよう

    この記事は Symfony Advent Calendar 2014 の 16 日目の記事です。 みなさん Symfony2 で自動テストを書くとき、fixture はどうやって作っていますか。Symfony 公式ドキュメントで紹介されている DoctrineFixturesBundle を利用している方が多いかもしれませんね。 今回�は fixture を簡単に作ることができる hautelook/AliceBundle を紹介したいと思います。この Bundle を導入すると fixture を yml で書けるようになるほか、様々な便利機能が利用できます。DoctrineFixturesBundle 単体の時と比べ fixture が格段に書きやすくなるので、Symfony を使うすべての人にオススメしたい Bundle です。 動作確認環境 Symfony2.3Symfony2.6

    [Symfony] AliceBundleで自動テストのfixtureをyml化しよう
  • グリーのQAチームとテストエンジニアリングへの取り組み | GREE Engineering

    こんにちは、やまもと@テスト番長です。 このエントリーは「GREE Advent Calendar 2014」13日目の記事です。 最近はグリーのQuality Assurance部のテストエンジニアリングチームを担当しています。 品質管理を行う部署のため、エンジニアブログに顔を出すのは初めてなのですが、 今回はグリーのQA体制のご紹介および、テストエンジニアリング面からの 取り組みをご紹介させて頂きたいと思います。 グリーのQA体制について QAチームは、2011年の夏にカスタマーサポートチームから派生する形で組織されました。 2012年に起きたカード複製の不具合や未成年課金の問題など、多くのトラブルを経験・奔走しつつも徐々に体制を整え、現在は社員20名・協力会社の方々も加えると50名ほどのグループとなっています。 ネイティブゲーム、ウェブゲーム、ガレージスタジオ&プラットフォーム、テス

    グリーのQAチームとテストエンジニアリングへの取り組み | GREE Engineering
  • プログラムに証明が付く日 | RANDMAX

    この記事は「Theorem Prover Advent Calendar 2013」6日目の記事です。 http://qiita.com/advent-calendar/2013/theorem_prover 神田「野らぼー」にて、地下の薄暗い店内で… 「そう言えばこないだ隣で起こってたポインタオーバーラン、対応大変そうだったですけどちゃんと家に帰れてたんでしょうかね、新婚なのに…」 「ヌルポとかポインタオーバーランとか、どうして無くならないんだろうね。その時はみんな手を抜いてるつもりなんて毛頭なくて、一生懸命考えて大丈夫だと思ってるはずなんだけどね。レビューもして、それでも起こった後でみんなでソース見てみると、なんで気づかなかったんだよ!ってことになる。」 「人間って、そういうの苦手なんでしょうねきっと。ほら、『何かほかにありませんか』って聞かれても出てこないじゃないですか。静的な解析っ

    プログラムに証明が付く日 | RANDMAX
  • システムテスト自動化の基礎知識とMonkeyTalkの使い方

    連載目次 システムテストの自動化とは テスト自動化ツールの紹介に先立って、連載で扱う「システムテスト」の位置付け、またシステムテストのうち、どのテスト(テストタイプ)を自動化していくのかについて説明します。 システムテストの定義 システムテストとは、ユニット(単体)テスト、統合(結合)テストをパスしたアプリを対象として実施するテストレベルであり、スマートフォンアプリでは以下の位置付けで行われるテストに当たります。 ビルドされたipa/apkファイルをシミュレーターもしくは実機にインストールしてUIを操作する サーバーと通信するアプリの場合、ステージングもしくはプロダクション環境に接続する 組織のQA担当者(独立したテストチーム)が実施する システム(アプリ)の基設計に基づき、その要件を満たしていることを実証する テストレベルの概念や、より一般的なシステムテストの位置付け、またそれを自動

    システムテスト自動化の基礎知識とMonkeyTalkの使い方
  • javascript におけるユニットテストについて (2013/01)

    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

    javascript におけるユニットテストについて (2013/01)
  • GitHub - sebastianbergmann/phpunit: The PHP Unit Testing framework.

    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 - sebastianbergmann/phpunit: The PHP Unit Testing framework.