タグ

テストに関するFunnyBunnyDizzyのブックマーク (27)

  • 例えば, Singleton を避ける | Born Too Late

    この記事は TDD Advent Calendar jp: 2011 の 14 日目です. 前日: TDD戦略 -TDDを導入し進化させる方法- #TDDAdventJP (@kyon_mm さん) 翌日: TDDに対して思っていること (@gab_km さん) この記事の概要 TDD で開発することで設計上の問題点に気づきやすくなる Singleton はグローバル変数である Singleton の使用はできる限り避けるべきである テスタビリティを意識しよう TDD では, 原則としてユニットテストを書いてから実際のコードを実装します. なので, 自然と「テストのしやすさ (テスタビリティ)」を意識して実装することになります. そして, TDD においては一般的に, テスタビリティを意識することで, 設計が改善されるとされています. オブジェクト指向には難しい概念がたくさん登場します.

  • iOSアプリのテスト自動化本を執筆しました - やらなイカ?

    まだ校正中なのですが、iOSアプリのテスト自動化入門(仮)的な*1タイトルのを執筆しました。秀和システムさんから3月中旬ごろ発売予定です。 iOSアプリ テスト自動化入門 作者: 長谷川孝二出版社/メーカー: 秀和システム発売日: 2014/03/18メディア: 単行この商品を含むブログ (1件) を見る 【3/7追記】Amazonさんで予約はじまりましたのでリンク追加しました 昨年Androidテスト部で書いた『Androidアプリテスト技法』は、テスト技法とテスト自動化が半々という構成でしたが、書はほぼテスト自動化について特化した一冊です。 内容、想定読者 Xcode 5・iOS 7環境*2における、ユニットテストの書きかた、システムテスト〜受け入れテスト向けのツール・フレームワークのほか、ビルドやAdHoc配布の自動化、CI、メトリック(メトリクス)採取など、アプリ開発にまつわ

    iOSアプリのテスト自動化本を執筆しました - やらなイカ?
    FunnyBunnyDizzy
    FunnyBunnyDizzy 2014/02/12
    きたー!UIにもちゃんと触れてあるやつや!期待しちゃう。
  • UI AutomationでiPhoneテストが全自動に! - 今日もコーディング日和

    UI Automationという機能を用いることで、iPhoneの動作テストは ほぼ全自動で行うことができます。過去にいくつか記事があがっているのですが、 認知度低そうなのでここでも書いてみます。 テキスト入力とタップによる画面遷移の自動化 では、実際に自動化してみます。 テキスト入力してボタン押す機能の自動化です。 以下のような画面とコードのテストです。 自動化テストは、メモリリークとかのテスト行うのと同じInstrumentsから実行できます。 Runボタン押しっぱなしでProfileに切り替えることが出来ます。ここからInstrumentsを起動します。 起動したらAutomationを選びます。 自動テストの画面はこんなのです。 Recordで開始して、Scriptのところにjavascriptで描いたテストコードを 入力して、StartScriptを押します。 使ったコードは以下

    UI AutomationでiPhoneテストが全自動に! - 今日もコーディング日和
  • はてなやクックパッドの開発現場で、CIやテストはどう行われているのか?(前編)。CROSS 2014 - Publickey

    Web技術について横断的に語り合うイベント「CROSS 2014」が1月17日、都内で行われました。 そのセッションの1つ「現場に聞く!テスト/CI/DevOps、実際のところどうなの」では、フリーランスエンジニアの伊藤直也氏がセッションオーナーとして司会を担当し、クックパッドで開発まわりのエンジニアをしている舘野祐一氏、はてなでアプリケーションエンジニアをしている伏井洋平氏、KAIZEN platform Inc.の石橋利真氏らがスピーカーとして登壇。 先進的な現場でテストやCIがどのように行われ、エンジニアのチームがどのように情報共有をしているか、音で語るという注目すべき内容でした。記事ではそのダイジェストを紹介しましょう。 現場に聞く!テスト/CI/DevOps、実際のところどうなの 伊藤 今日のテーマとしてはCI(Continuous Integration、継続的インテグレー

    はてなやクックパッドの開発現場で、CIやテストはどう行われているのか?(前編)。CROSS 2014 - Publickey
    FunnyBunnyDizzy
    FunnyBunnyDizzy 2014/01/21
    「テストを書かせてくれ」って言うと、マネージングレイヤから「なんでお前は工数倍なんだよ、テストなんか書くな」全く同じこと言われながら同じことしてまするw
  • iOSのテストフレームワーク比較 – なんてこったい

    WWDC開幕で、話題の中心はもっぱらiOS 6、Mountain Lion、Retina対応Macですが、気にせずテストについて書きます。 2012年6月現在、純正のSenTestingKit以外にも多数のiOSアプリ用テストフレームワークが存在します。今まで試してきた中で、おすすめのテストフレームワークをいくつか紹介します。 標準のテストフレームワーク SenTestingKit / OCUnit Xcodeに標準で付属しているテストフレームワークです。iOSアプリのテストを初めて学ぶには、素直にSenTestingKitから始めた方がよいと思いますが、非同期処理やUIを含むテストは面倒・困難です。Google Toolbox for Macを使って少し拡張することもできます。 長所 標準で用意されているので導入が楽。 シンプルなので理解しやすい。 他のフレームワークのメリット・デメリッ

  • テストのめどい話

    最初にめどい言い訳をせねばならぬ俺は江島氏ともきょん氏とも面識はないですが、お二人ともが俺のことを知ってることを俺も知ってる程度には狭い業界であり。どちらかに肩入れしたいわけではないです。喧嘩したいわけでもないです。普段あまりここでは言及しないですが俺は今の仕事としてはテストを書いたりテストを実施したりする係をしてノリクチをしのいでおり、いわばテストは業ですので、テストに言及することは今現在の同僚に対して意図しない受け取られ方をする可能性があるので困るので、それもあって普段はここではあまりテストの話はしないわけだが、だからと言って沈黙を破ってテストの話をするのが同僚に対して含みがあるというわけでもないです。とはいえ俺は大学等で真面目にソフトウエア工学の講義を受講したことがなく、経験と勘と昔取った杵柄だけでってるので、そういう意味では若干の後ろめたい気持ちもある。で、テストって何なん俺が

    テストのめどい話
    FunnyBunnyDizzy
    FunnyBunnyDizzy 2014/01/14
    テストの位置づけをデベロッパーテスト(開発者のためのテスト)に位置づけて、開発者が不安に思わなくなるレベルまでテストを書く(カバレッジ100%にならなくても不安は取り除ける)ってTDDBCで習った
  • t-wadaのブログ

    このブログエントリでは、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent BeckがTDDの定義を改めて明確化した文章を、許可を得たうえで翻訳し、訳者の考察を沿えています。 きっかけ 2023年の年末、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent Beckは、substackにTDDに関するポストを連投して論戦を繰り広げていました。TDDはその誕生から20年以上が経ち、その間に「意味の希薄化」が発生して議論が噛み合わなくなっていました。意味の希薄化(Semantic Diffusion)とは、新しく作り出された用語が広まる際に来の意味や定義が弱まって伝わる現象です。 私(和田)はTDDと関わりの深いキャリアを歩んできました。Kent Beckの著書『テスト駆動開発』の翻訳者であることもあり、TDDの正

    t-wadaのブログ
  • テストを書く文化を育てる戦略と戦術

    at DevLOVE現場甲子園2013 2013/11/09 (土) http://http://devlove.doorkeeper.jp/events/5464

    テストを書く文化を育てる戦略と戦術
  • XMLをユニットテストする

    ソフトウエアがXML出力を作成する場合には、多くの根拠があります。XML文書は異なるアプリケーション間のデータ交換のために使われますし、webアプリケーションはわずかなXMLスニペットを使って(X)HTML出力を作成したりAJAXリクエストに答えたりします。XMLが生成されるところには多くの利用ケースがあるので、その出力は他のアプリケーションの部分と同様にテストされるべきなのです。 生成されたXMLをテストするには幾つかの方法があります。その各々が分離して使用される際のフローを持っています。 例えば、下記のようなことができます。 生成されたXMLがDTDに対して、またXMLスキーマや、或いは他の文法的代替物に対して正当であると確認することができます。残念なことに、このような文法はいつも文書中に存在するとは限りませんし、もしあったとしても、どのテストも出力の構造のみをテストするだけで、その内

    XMLをユニットテストする
  • プログラムに証明が付く日 | RANDMAX

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

    プログラムに証明が付く日 | RANDMAX
  • システムテスト自動化カンファレンス2013で「スマートフォンアプリのテスト自動化をはじめよう」をお話してきました #stac2013 - やらなイカ?

    テスト自動化研究会主催のシステムテスト自動化カンファレンス2013にスタッフとして参加&モバイル枠をいただいてお話してきました。 スマートフォンアプリの テスト自動化をはじめよう from Koji Hasegawa システムテスト自動化カンファレンス2013ツイートまとめ - Togetterまとめ 毒わば皿まで 古来より「毒わば皿まで」という言葉がありまして、これはつまり「スライドを使いまわした*1ならブログエントリも使い回せばいいじゃない」という意味なのですが、さすがに心苦しいので以下オリジナルの補足をします。 尚、スライド自体もiOSに関する記述を追記したり*2、構成を見なおしたりしています。 テストレベルについての補足 途中で言った「『ユニットテストの話はするな』という圧力」はもちろん冗談なのですが、テストレベルに関して説明不足を感じたので補足します。 スライドでは「ユニ

    システムテスト自動化カンファレンス2013で「スマートフォンアプリのテスト自動化をはじめよう」をお話してきました #stac2013 - やらなイカ?
    FunnyBunnyDizzy
    FunnyBunnyDizzy 2013/12/02
    無いよりマシから始めるTDD
  • 単体テストの実行時に非同期処理を待つ

    SenTestingKit/XCTestは非同期処理を待たずにテストケースを終了してしまうので、 直接SenTestingKit/XCTestを利用する場合には自分でNSRunLoopを回して処理の完了を待つ必要があります。 これまでSenTestCaseにfinishedフラグが追加されたサブクラスを使ったりしていたのですが、 どうしてもテストコードが明示的にならなくて悩んでいました。 いままで書いていたテストコードは以下のような感じです。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - (void)testExample { // step 1 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(queue, ^

  • 複数のiOSバージョンでのテストを自動的に実行する

    Xcode 5になってxcodebuildコマンドも進化したらしいのですが、あまり変更を追えていませんでした。 今日、ぼんやりとman xcodebuildを眺めていたら-destinationというオプションをみつけました。 これを使えば任意のiOSバージョンでテストを走らせられるなと思ってやってみました。 はじめはXCTestで実行したかったのですが、iPhoneSimulator6.0.sdkやiPhoneSimulator5.0.sdkには xctestという実行ファイルが含まれていないため、以下のようなコマンドでテストを実行することができませんでした。 (OS=7.0だと実行できます。) 1 xcodebuild test -scheme Example -destination "name=iPhone,OS=6.0" OCUnitを実行するounitという実行ファイルはiPh

  • FINDJOB!終了のお知らせ | FINDJOB!

    FINDJOB! 終了のお知らせ 2023年9月29日にFINDJOB!を終了いたしました。 これまでFINDJOB!をご利用いただいた企業様、求職者様、様々なご関係者様。 大変長らくFINDJOB!をご愛顧いただき、誠にありがとうございました。 IT/Web系の仕事や求人がまだ広く普及していない頃にFind Job!をリリースしてから 約26年間、多くの方々に支えていただき、運営を続けてまいりました。 転職成功のお声、採用成功のお声など、嬉しい言葉もたくさんいただきました。 またFINDJOB!経由で入社された方が人事担当になり、 FINDJOB!を通じて、新たな人材に出会うことができたなど、 たくさんのご縁をつくることができたのではないかと思っております。 2023年9月29日をもって、FINDJOB!はその歴史の幕を下ろすこととなりましたが、 今後も、IT/Web業界やクリエイティブ

    FINDJOB!終了のお知らせ | FINDJOB!
  • Jenkins を iOS アプリ開発に導入してみた (SenTestKit編)

    最近、iOSアプリの開発でも継続的インテグレーション(CI)を取り入れていくプロジェクトが増加傾向にあるようで、各種ツールやライブラリ、ノウハウが出回ってきているように感じられます。そこで私も早速iOSアプリ開発でのCI導入を試してみることにしました。今回の導入試験では、以下のような環境を想定して行いました。 iOSアプリの開発を、Xcode 4.X系のプロジェクトとして行う。 VCSにはgitを採用し、githubの公開リポジトリをリポジトリサーバーとして使用する。 CIサーバにはMacを採用し、プロジェクトをビルドするためにXcode 4.Xをインストールしておく。 ■必要なツールを準備する CIといったら、まずは何はなくともJenkinsです。 http://jenkins-ci.org/ ここでは導入について詳しくは挙げませんが、私は以下のを参考にしました。 https://gi

    Jenkins を iOS アプリ開発に導入してみた (SenTestKit編)
  • SikuliスクリプトでのUI操作自動化を試してみる

    SikuliスクリプトはOpenCVを使った画像認識を利用して、GUI操作の自動化を行うスクリプトです。 指定した画像に一致した領域にカーソルを動かしてクリックさせたり、キーボードでの入力をさせたりすることができます。 そこで、今回はSikuliがUIテストに利用できるのかどうかを調べるために、iOSシミュレータに対してSikuliスクリプトを試しに使ってみました。 なお、MITUIデザイングループが始めたオープンソースの研究プロジェクトであり(ソースはGitHubにあります)、現在はコロラド大学ボルダー校のSikuli Labがメンテナンスしているようです。 ダウンロードから起動まで Sikuliのサイトのダウンロードページからdmgファイルをダウンロードします。これをマウントして実行するだけです。 なお、Lion以降を利用している場合には、Gatekeeperの設定によって実行できな

    SikuliスクリプトでのUI操作自動化を試してみる
  • [Xcode 4] テストケースで、外部のデータファイルを使う|TechRacho by BPS株式会社

    Mac / iOSのテストケースを書いていて、外部のデータファイル(XML等)をテストケースから参照したい場合があると思います。 実際のアプリケーションの場合、Targetに登録されたファイルがバンドル内に存在するため、 NSString* path = [[NSBundle mainBundle] pathForResource:@"example" ofType:@"xml"]; NSData* data = [NSData dataWithContentsOfFile:path]; とすることで、データファイルの中身を取得可能ですが、 テストケースの場合そもそもバンドルが存在しないため、NSBundleからはパスが取れません。 フルパス指定するという方法もありますが、他の環境で動かなくなるため現実的ではありません。 そこで、相対指定をするわけですが、 相対指定をするためには、カレント

    FunnyBunnyDizzy
    FunnyBunnyDizzy 2013/03/15
    アプリケーションテストにしている必要がある。
  • GHUnitをやめてSenTestingKitを使う理由 - blog.ishkawa.org

    ※ はじめにことわっておきますが、GHUnitを批判したくて書いているわけではなく、 SenTestingKitが意外と使えたということを書きたくて書いています。 – 特定のテストがターミナルから実行できないという問題に遭遇した。 GHUnitは新しいXcodeやiOS SDKが出たときに対応されるまでにラグがある。 やっぱりcommand+Uでマメにテストを実行したい。 SenTestingKitではできないと思い込んでいたことが実はできた。 以下、誤解していたことについて書きます。 SenTestingKitへの誤解 実機ではテストを実行できない。 UIKitが絡むテストは書けない。 非同期のテストが書きづらい。 実機での実行 SenTestingKitで実行できるテストにはLogic Unit TestsとApplication Unit Testsがあります。 前者は実機での実

  • 何故バグ報告の99%が役に立たないのかもしくは何故プロのテスターが存在するのか - oops

    テストにはプロがいます。「お仕事」で開発する場合はQA(Quality Assurance/品質保証)部門という「テストのプロ」がテストします。 バグ修正におけるテスターの役割は極めて重要で、「プログラマの手元で任意に再現可能な状態に持ち込めれば、バグ修正は8割終わっている」と言っても当に過言ではありません。詳細聞き出しに10時間、修正30分、修正確認テスト30分、なんてのも実務ではザラです。この場合、プログラマも11時間拘束される(=時給x11時間分のコストが掛かる)わけですから、バグ修正のコストは聞き出しに掛かるコストがほとんどを占めることになります。 (誤報告一発で万単位の金が簡単に吹っ飛ぶとも言える) まずそもそもの問題として「素人」がテストを行うと以下のような論外ケースが頻繁に起こります。上に行くほどクソです。 誤報告 実際に起こったことと、現象が違う、手順が違う、設定

  • テスト自動化に関するスライドの紹介

    みなさんこんにちは。@ryuzeeです。 SlideShareでテスト自動化に関する良いスライドをみつけたのでご紹介します。 Agile Toolkit http://www.slideshare.net/nverdo/agile-toolkit-mo-conf 参考になる部分は以下の3スライドでしょう。順に説明していきます。 手動テストのコストプロジェクトの初期は以下のような状況です。 テストする項目は少ない手動でテストを完了するのも簡単まだプロダクションでもないし、問題があって影響を受けるのは限定された人だけしかし時間がたつにつれて 手動でのテストにはとても多くの時間がかかるようになる製品が出荷されてしまうと、バグによってとても多くの人が影響を受けることになってしまうという状況に変わっていきます。 右のグラフは手動でテストを行った場合のテスト時間の推移を示していますが、見て分かる通り、

    テスト自動化に関するスライドの紹介