並び順

ブックマーク数

期間指定

  • から
  • まで

201 - 240 件 / 4974件

新着順 人気順

自動テストの検索結果201 - 240 件 / 4974件

  • ディープラーニングで簡単に自動テストスクリプトが作れる「Magic Pod」 | 品質向上ブログ

    今日は、今話題のAI(人工知能)技術「ディープラーニング」を使い、誰でも簡単にモバイルアプリの画面自動テストスクリプトが作成できるWebサービスのお話です。 ※2017年7月24日よりオープンβ版を提供開始しました! AppiumやSeleniumのような画面を自動操作するテストツールはとても便利ですが、一方で、こうしたツールを利用していないプロジェクトもたくさんあります。何がツールの導入を妨げているのでしょう? 筆者は、次の2つがとりわけ大きな問題だと考えています。 システムの内部情報をある程度理解しないと、テストスクリプトを書くこと・読むこと・編集することが難しく、それなりのスキルが必要。 テストスクリプトの作成に時間がかかりすぎる。特に、読みやすく変更に強いスクリプトを作成しようとすると、かなりの手間がかかる。 これらの問題を、ディープラーニングによる画像認識を使って解決しようとして

      ディープラーニングで簡単に自動テストスクリプトが作れる「Magic Pod」 | 品質向上ブログ
    • ブラウザ自動操作API入門: WebDriver APIとChrome DevTools Protocol(CDP)

      ウェブブラウザを自動操作する際には、WebDriverやChrome DevTools Protocol (CDP) などのAPIが広く利用されています。 これらのAPIを基盤に構築された様々なブラウザ自動操作フレームワークが、テスト自動化の分野で重要な役割を果たしています。 例えば、SeleniumやPlaywrightといったフレームワークを利用して、テストの自動化に取り組まれている方もいらっしゃると思います。 私もテスト自動化フレームワークの便利さを享受する一方で、フレームワークを介さずにブラウザを自動操作する方法についての興味がわいてきました。 そこで、この記事ではWebDriverやCDPが提供するAPIを直接利用してブラウザを操作する方法を基礎から探求してみることにしました。 これにより、私たちが普段利用しているフレームワークの背後にある原理を理解し、より深い知見を得ることを目

        ブラウザ自動操作API入門: WebDriver APIとChrome DevTools Protocol(CDP)
      • クックパッドモバイルアプリの開発体制とリリースフロー - クックパッド開発者ブログ

        こんにちは、技術部モバイル基盤グループの @slightair です。 今回は、クックパッドのモバイルアプリをどのような流れで開発しているか説明したいと思います。 この記事では技術的な話ではなく、どのようにして、どのようなことを考えて僕らがモバイルアプリを開発しているかに触れたいと思います。 開発体制 クックパッドにはモバイルアプリを専門で開発するようなチームはありません。 必要に応じて、誰でもモバイルアプリ開発に取り組みます。 機能追加・修正を行ったらリポジトリにプルリクエストを送ります。 プルリクエストが来たら、アプリ開発を行うエンジニア同士でレビューします。 様々な修正をひとつのバージョンにまとめるのは、僕が所属する技術部と後述するリリースマネージャーで行います。 リリースマネージャー バージョンごとに、そのリリースの責任をもつリリースマネージャーをひとり選びます。 リリースマネージ

          クックパッドモバイルアプリの開発体制とリリースフロー - クックパッド開発者ブログ
        • GitHub Projects を利用したタスク管理 - 一休.com Developers Blog

          宿泊開発チームでエンジニアをしている @itinao です。 昨年の10月に入社しました。 今回は GitHub Projects を利用したタスク管理について記載します。 なんとなーく GitHub Projects 使うと、KANBANにしてみたり リストにして使ってみたり で終わってしまいます。 もっと色々できるんだよってことが伝えられればと思います。 背景 どんな機能があるか Custom Fields Views Group by Slice by Workflows ISSUEと Pull requestの紐づけ Insights タスクの進め方 タスクの洗い出し 見積もり 現状の課題と今後の展望 まとめ さいごに 背景 一休ではチームごとにタスクの管理方法が違い、 Google Spreadsheet・GitHub Projects・Jiraなど、チームごとにタスク管理の方法

            GitHub Projects を利用したタスク管理 - 一休.com Developers Blog
          • 受託の会社が自社サービスをリリースして4年が経った現在地 - ヴェルク - IT起業の記録

            8/19でboardの正式リリースからちょうど4年が経ちました。 有料アカウントは1500社を超えたところで、会社全体の売上の4割ほどにまでに成長してきました。 単価が安いサービスなので、1500社でやっと4割かという感じがします。 現在、boardにフルタイムでアサインしているのは3人で、エンジニア1名、CS1名、自分がプロダクトオーナー&開発者&CSといったメンバー構成です。 他のメンバーは受託を軸にスポットでboardに入ったり、総務をしながらテストをやったりといった感じで兼任しています。 boardに対するスタンス これは当初から変わらず、「boardだけでやっていくぜ!」という感じでもなく、急激な成長を目指すわけでもなく、自分たちにできることを自分たちのペースで、着実に続けています。 相変わらず営業もマーケ担当もおらず、ようやくCS専任のメンバーが入り、僕の手が離れつつあります。

              受託の会社が自社サービスをリリースして4年が経った現在地 - ヴェルク - IT起業の記録
            • あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ - Qiita

              エンジニア組織を強くするための本を出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 はじめに この記事は数百万行の動的型付き言語のWebアプリケーションのリファクタリング、アプリケーションアーキテクチャの再設計の経験を基に、有効だと思われる考え方やアプローチを抜粋して紹介するものです。言うまでもなくあらゆるコードベース、アーキテクチャにおいて有効なものとは限りませんので、各々の環境や状況から適切に判断してください。

                あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ - Qiita
              • あれから 10 年。まさーるさん(石井勝さん)を偲ぶ。 - t-wadaのブログ

                今日(2015-04-25)は福知山線の脱線事故から 10 年目の 4 月 25 日。つまり、まさーるさんこと石井勝さんが亡くなられてからも 10 年になる。 まさーるさんは、一言でいえば 1990 年代後半から 2000 年代前半の日本におけるオブジェクト指向プログラミング、自動テストとテスト駆動開発、そしてアジャイルソフトウェア開発の啓蒙において大きな役割を果たされた方だ。もしも 10 年前の福知山線に乗っていなければ、いまでも日本を代表するプログラマの一人だったのではないかと思う。 まさーるさんの残した足跡は、様々なところに見いだすことができる。 Java プログラマであれば、 Quick JUnit という Eclipse プラグインを使ったことがある方が多いのではないかと思う。 Quick JUnit はテストコードとテスト対象コードの間をショートカットで行き来できる便利なプラグ

                  あれから 10 年。まさーるさん(石井勝さん)を偲ぶ。 - t-wadaのブログ
                • コードは2回書きたい - Mitsuyuki.Shiiba

                  TDD についておさらいしておきたいなと思ったので読んだ t-wada.hatenablog.jp とても良かった。自動テスト、テストファースト、テスト駆動開発のそれぞれについて、どういうものなのか・効果・注意点が分かりやすく説明されている。たしかに、自動テストは必ず使うけど、テストファーストやテスト駆動開発は状況に合わせてやったりやらなかったりする 書籍「テスト駆動開発」の付録Cと対になっているということなので、付録Cも読みたくなって読み直しておいた。そちらにはテスト駆動開発のこれまでとこれからについて書いてあるので、頭の整理ができてとてもよかった Checking Driven Development 付録Cでは、開発者自身が書く自動テストはテストではなくてチェック、ということについて触れられている。そうだなぁって思う。自動テストでは、自分が考えたとおりに動くかどうかをチェックしている

                    コードは2回書きたい - Mitsuyuki.Shiiba
                  • 2万人に聞いた、2018年の最新JavaScript事情 - Qiita

                    先日よりThe State of JavaScript 2018というアンケートが行われていたのですが、その集計結果が公開されたのでざっくりと紹介してみます。 回答者数は2万人超としか書かれてなくて正確な数は不明です。 というか全体的に大まかな集計結果しか出てなくて、もっと詳しいデータが欲しければ直接連絡しろという方針らしいです。 ちょっと残念。 The State of JavaScript 2018 Introduction 2万人以上のJavaScript開発者が回答したよ。 結果の概要はMediumに投稿してるよ。 色々なプロジェクトを紹介してるけど、その一部はスポンサーになってもらってるよ。 このアンケートはSacha Greif、Raphael Benitte、Michael Rambeauによって作成、維持されているよ。 SachaはVulcan.js、RaphaelはNiv

                      2万人に聞いた、2018年の最新JavaScript事情 - Qiita
                    • OpenAPI GeneratorでRESTful APIの定義書から色々自動生成する #OpenAPI - こまぶろ

                      APIの定義を書く:Excel仕様書はもういやだ RESTful APIを提供するサーバと、そのAPIを利用するクライアント(たとえばSPA)とを並行で開発しようとするとき、まずAPIを定義して、それに基づいてサーバ/クライアント双方の実装を進めようと考えるのは自然だと思う。 そうと決まれば、「API仕様書_20190110.xlsx」と題するファイルを新規作成し、シート別にリソース毎の定義を書き始め・・・てはいけない。せっかくAPIを定義したドキュメントを作成するなら、するのなら、ソースコードの自動生成などの恩恵も受けたい。受けられるはずだ。 少しググってみる。どうやらSwaggerというものを使えばいいらしい。Swaggerに興味を持ったタイミングで、ちょうど書店に平積みになっていた『WEB+DB PRESS Vol.108』の表紙が目に入った。そこには、「スキーマ駆動Web API開

                        OpenAPI GeneratorでRESTful APIの定義書から色々自動生成する #OpenAPI - こまぶろ
                      • Node.jsアプリ開発で参考になる記事 まとめ | DevelopersIO

                        最近は弊社のブログにもNode.js関連の記事が増えてきました。私も勉強中なのですが、社内ブログを参考にさせてもらうことがよくあります。 毎回探すのもちょっと面倒なのでClassmethid.dev()内のNode.js関連の記事をジャンルごとにまとめてみました。 1年以上前の記事もあり、情報が古い可能性があるので注意して下さい。今後も新しい記事が追加されたら更新していこうと思います。 メール送信 node.jsのいろいろなモジュール3 - Nodemailer node.js上から簡単にメールの送信ができるモジュールの記事です。 ファイル関連 node.jsのいろいろなモジュール1 - node-gzip node.js上で簡単にgzip圧縮ができるモジュールの記事です。 node.jsのいろいろなモジュール4 - Node Basic FFmpeg ffmpegという動画と音声を変換す

                          Node.jsアプリ開発で参考になる記事 まとめ | DevelopersIO
                        • 大学中退の負け組だったけど数社で内定出てる俺が一言いっておくか

                          追記 2014-04-07nao0990 設定が十分に練られていないから、一浪で大学入学して大学二年生修了後さらに二年休学の時点で22歳、なんていう基礎的な矛盾が起きるのだ。 普通に凡ミスでした、すみません。その時点で23歳ですね。他にもおかしい点があるかもしれませんが、記憶違いや身バレを恐れての改変が混ざったためと思って下さい。 nekora VBer→PHPerのジョブホッパー…PGの中では最弱。もうちょっと格好良い設定は思いつかなかったのか 一応事実として書いているので、言語だけで見るとショボい経歴ですがそのまま書いています。VB6 については弁護出来ないレベルの古さなので、格好悪いと言われるとその通りですが、それも含めて仕事をしようと思えればできる、と捉えて頂ければ幸いです。もちろん、古い言語の悪い部分に甘んじて低い技術レベルのままで仕事をしてもよいと言っているわけではありません。

                            大学中退の負け組だったけど数社で内定出てる俺が一言いっておくか
                          • たのしくなるコードレビュー - クックパッド開発者ブログ

                            こんにちは!サービス開発部でAndroidアプリの開発をしているこまたつ(@k0matatsu)です。 みなさんコードレビューしていますか? 最近ではとりいれているチームも多いと思いますが、良い効果をもたらしてくれる一方で、負荷の高い作業でもあります。 また、コードレビュー自体に馴染みの薄かった人はなにをどうしたらいいのか難しいですよね。 同僚から得たアドバイスと自分なりのノウハウをあわせて、コードレビューの指針を考えていたので公開してみようと思います。 前提として、クックパッドではGitHub Enterpriseとプルリクエストを使った開発プロセスを採用しています。 また、コードレビューの前には自動テストと静的解析ツールによる単純なフォーマット、コードスタイル、頻出バグのチェックは行われているものとします。 静的解析による機械的なチェックはコードレビューよりも低コストで有効な方法ですの

                              たのしくなるコードレビュー - クックパッド開発者ブログ
                            • CSSポストプロセッサー時代の到来

                              SassやLESSといったCSSプリプロセッサーは市民権を得たと言って良いと思う。しかしそれらCSSプリプロセッサーは開発という段階にのみ利をもたらすもので、今のところはそれ以上ではない。CSSを実際にユーザーに届けるまでには、開発だけではなくレビューとリリースという段階もある。レビューとリリースも確実性を持って効率的に行うためには、CSSポストプロセッサーと総称されるようなツール群が必要になるだろう。 この文書はFrontrend Advent Calendar 2013の4日目への記事として寄稿した。明日は@hilokiさんがスタコラサッサと書くようだ。 目次 CSSポストプロセッサーとは CSSプリプロセッサーの出力するCSS CSS Lint 開発用とレビュー用、リリース用のCSS CSSポストプロセッサーのユースケース ベンダー拡張プリフィックスの付加 Media Queries

                              • コーディングを不要にする「ノーコード・スタートアップ」が注目される理由 | Coral Capital

                                プログラミングをする人なら1度や2度は「コーディングを不要にする」という宣伝文句にイラッと来たことがあるのではないでしょうか。Coral Capital創業パートナーの澤山陽平も、そんな1人です。「最近シリコンバレーで話題の No code startups について何か書こうと思う。ハイプ気味ではあるものの注目のトレンド」と、私が伝えると、一気に顔が曇りました。 またか、というところかと思います。澤山は日本では珍しいScalaという玄人好みのプログラミング言語を使いこなすベンチャーキャピタリストです。過去10年、20年と、どれほど「コーディング不要」というマーケティングコピーが派手に宣伝されてきたかを思えば、澤山の反応は、当然かと思います。 それでも私には、いまノーコーディングと呼ばれるムーブメントから、優れたサービスや企業が出てきつつあるように思えます。 全てのコーディングが不要になる

                                  コーディングを不要にする「ノーコード・スタートアップ」が注目される理由 | Coral Capital
                                • ビジュアル仕様書共有ツール Zeplin でアプリ開発が爆速になった - Qiita

                                  デザイナーが作ったデザインをエンジニアがコードに落としこむ工程,コミュニケーションコストも大きくなかなか大変ですよね.そんな課題を解決してくれる,ビジュアル仕様書共有ツール Zeplin を使ってみたところ非常に好感触で,アプリ開発がかなり効率化されたように思うので,普及もかねてまとめてみようと想います. Zeplin は何を解決してくれるのか これまでアプリ開発の際,デザイナーさんに以下の様なビジュアル仕様書を Google Drive で共有してもらっていました. 自分はデザイナーさんみたいに 1px の細かい差異など分からなかったりするので,このようなビジュアル仕様書を作成してもらえると,正しく実装することができ非常に助かります.しかし,これには例えば以下のような課題がありました. (1) デザイナーさんのコストが大きい.上図の例はアプリの 1 画面に過ぎませんが,これが 10 枚,

                                    ビジュアル仕様書共有ツール Zeplin でアプリ開発が爆速になった - Qiita
                                  • JenkinsとSeleniumでJavaScriptのテスト自動化、最初の一歩。第1回 日本Seleniumユーザーコミュニティ勉強会

                                    JenkinsとSeleniumでJavaScriptのテスト自動化、最初の一歩。第1回 日本Seleniumユーザーコミュニティ勉強会 1月18日に都内で開催された「第1回 日本Seleniumユーザーコミュニティ勉強会」。Seleniumプロジェクトの共同設立者であるJason Huggins氏による基調講演に続いて、有志によるライトニングトークが行われました。 本記事ではその中から、玉川紘子氏による「Jenkins x Selenium 最初の一歩」の内容を紹介します(追記:本記事のタイトルは「JenkinsとSeleniumでJavaScriptのテスト自動化」とありますが、実際の内容は「Selenium RCがJavaScriptの技術を用いて自動テストを行っている」という点がポイントという指摘がありましたので、ここに追記します)。 Jenkins x Selenium 最初の一

                                      JenkinsとSeleniumでJavaScriptのテスト自動化、最初の一歩。第1回 日本Seleniumユーザーコミュニティ勉強会
                                    • Androidの自動テストツール、今(2013年)から使うなら何がよいのか - kk_Atakaの日記

                                      あらすじ Androidのテストを自動化したいので、テストツールの選定をしてみたが、昔の記事がヒットする事が多く、何を使えばいいのかよくわからん。 とはいっても、明確に「どんなテストがしたい」という方針もなく、とっかかりとしてどんなツールがあってどのくらい盛り上がってるのかが知りたかった。 環境 Windows 7 AndroidDeveloperTools Build: v21.1.0-569685 とりあえず Win メインで。 とっかかり ロジックまわりのテスト ロジック的なものは、 JUnit 拡張の TestCase クラスを使えば何とか書けそうというのはわかった。 Androidアプリ開発テスト入門(2):Android SDKでビジネスロジックのテストを自動化するには (1/3) - @IT 2011 年の記事だけど、 JUnit で書くという大前提は崩れていないはず…。 画

                                        Androidの自動テストツール、今(2013年)から使うなら何がよいのか - kk_Atakaの日記
                                      • 複数人でのWebサービス開発で便利だったもの - Qiita

                                        遊びに使えるWebサービスを友人と一緒に作成中。 仕事じゃなかなか使えないようなツールやサービスを無料の範囲内で使ってみてるんですが、かなり便利。 忘れないようにまとめてみます。 なおJavaとJavaScriptを使ってるので、それに関する内容が多いかも。 なお、次のような感じで開発進めてます。 週に1回集まってミーティング兼もくもく会 集まらない日は各自のペースで作業 機能などを作ったらプルリクエスト出して承認もらって取り込む サーバー側がJavaでクライアント側がJavaScript BitBucket Gitリポジトリをホスティングしてくれるサービス。 他にも類似サービスはいろいろあったけど、非公開リポジトリを無料で作れるってのが決め手。 基本的にソースコードはここで一括管理して、各自が作った機能とかは必ずプルリクエストを出す運用で活用中。 ReadmeとかWikiも便利で、ここに

                                          複数人でのWebサービス開発で便利だったもの - Qiita
                                        • マイクロソフト、Webアプリのテスト自動化サービス「Microsoft Playwright Testing」プレビュー公開。クロスブラウザ/クロスプラットフォームのテストを並列実行

                                          マイクロソフトは、Webアプリケーションのテスト自動化ライブラリ「Playwright」を用いた、Microsoft Azure上のテスト自動化サービス「Microsoft Playwright Testing」のプレビュー公開を発表しました。 Microsoft Playwright Testingに使われている「Playwright」は、マイクロソフトが中心となってオープンソースで開発しているWebアプリケーション向けテスト自動化ライブラリです。対応環境が幅広く柔軟で、精度の高いテストを特長としています。 具体的には、Chrome、Edge、Firefox、Safariの主要なWebブラウザのすべてを対象にしたテスト自動化が可能で、ヘッドレス、ヘッドありのいずれにも対応。モバイルエミュレーションを用いたAndroid版Google ChromeとMobile Safariのテストも、実

                                            マイクロソフト、Webアプリのテスト自動化サービス「Microsoft Playwright Testing」プレビュー公開。クロスブラウザ/クロスプラットフォームのテストを並列実行
                                          • ブラックボックスになりがちな開発チームの内部状況を指標を用いて可視化する|mtx2s

                                            自社ソフトウェアプロダクトを内製する組織であっても、開発チームがそれをどうやって作り上げているか、開発者ら以外にとってはブラックボックスであり、不可視です。それだけに、開発チームのパフォーマンスや内部状況の良し悪しは、各々の主観や興味によって、不統一な認識を持ってしまうことも多いでしょう。そしてそのような認識のばらつきは、開発する当人たちにとっても実は同じです。 しかし、例えブラックボックスであっても、自動車のダッシュボードのように様々な指標によってその内部が数値化され、可視化されていれば、チームのパフォーマンスに統一的な認識を持たせやすくなります。 本記事では、どのような指標を可視化すべきか、その代表的なものについて取り上げます。 リードタイム(開発、製造)リードタイムは、開発項目ごとの作業期間を計測したもので、短いほど優れていることを示す指標です。計測対象となるプロセス全体を「開発」と

                                              ブラックボックスになりがちな開発チームの内部状況を指標を用いて可視化する|mtx2s
                                            • CI で稀に失敗してしまうテストへの対処方法 - クックパッド開発者ブログ

                                              技術部の福森です。 クックパッドでは RSpec と Jenkins を利用して CI による自動テストを行なっています。 テストの数は 12000 examples を越えていて、テストによっては稀に失敗する物が出てきています: 時間帯依存で失敗してしまうもの 他に同時に実行されるテストに依存しているもの (並列実行で組合せが変わり再現する) インテグレーションテストでの ajax リクエストの微妙なタイムアウト etc また、本番環境を壊さないよう、 CI で成功したリビジョンのみデプロイ可能となっており、開発者が push しデプロイしたいと思っている時に無関係な原因で失敗する事を避けたいという欲求があります。 なぜなら、再度ビルドを実行する時間 (およそ 10 分) の間待たされる事になるからです。 そこで、そのようなテスト起因での失敗を減らし、かつ開発者にそれらを修正してもらうた

                                              • 3週間で48,000行のコードをこの世から抹消した話 – FiNC Engineering Blog – Medium

                                                qsona (twitter) です。以前、7,600行のコードを安全にこの世から抹消した話 という記事を投稿しましたが、今回はそれよりもずっと泥臭い話を書きたいと思います。あまりテクニカルな話はありませんが、現場における取り組み・試行錯誤の経過を読んでいただければ幸いです。 たくさん消しました、がんばりました〜背景肥大化するRailsサービスFiNCはマイクロサービスを指向しており、主にRuby on Railsで書かれたサービスが30個ほど存在します。しかし、FiNCアプリのメインとなるRailsのサービスは、テーブル数800を超える大きなサービスになっています。 FiNCのサービスは2014年から書きはじめており、かなり初期の段階(2015年)からマイクロサービス化を意識してきました。にもかかわらず1つのサービスが肥大化している理由はいくつかあります。 最初の1〜2年ですでに大量のコ

                                                  3週間で48,000行のコードをこの世から抹消した話 – FiNC Engineering Blog – Medium
                                                • プログラミングに必要なブレイクスルー

                                                  Yoyo Code (Matyáš Racek's blog)より。 ソフトウェアの開発方法を劇的に変えるには、いくつかのブレイクスルーが必要だと感じています。ブレイクスルーといった場合、それは大きなブレイクスルーを意味します。例えば、「構造化プログラミング」のブレイクスルーのようなもので、プログラミングに対する私たちの考え方を完全に変えてしまうようなものです。ここでは、それに関するいくつかの見解とアイデアを紹介します。 グルーコードや定型文を書くのは無駄だ 私が書くコードのほとんどは、面白いことはするわけではなく、定型文か、サブシステム同士を繋ぐための糊のようなものです。この種のコードは、すでに何度も書かれていて、これからも何度も書かれるような気がします。それなのに、なぜまた書かなければならないのでしょうか? 問題は、コードがかなり異なっていることで、通常は既存のコードをそのまま使うこと

                                                  • TDDはゆるく実践しても大丈夫 - 千里霧中

                                                    最近、TDDのテストコードは捨てても良いかみたいな議論を見ました。 これに対する自分個人の経験上の意見ですが、TDDは雑多にテストコードを使い捨てても効果を出せると思います。 もちろん、TDDで保守性が高く価値あるテストを書いて、捨てずにCIや中長期的なリファクタリングで再利用していくと、TDDの効果を増幅できます。ただ、それをするにはスキルや事前の工夫、労力が必要ですし、できる場面に限りがあります。 そういったことをやらず、もっとゆるい姿勢で取り組んでも、費用対効果をプラスにできる手法がTDDだと考えています。 今回は、そのTDDでゆるくしてもよいポイントを、実経験からまとめたいと思います。 TDDのテストは使い捨てでいい TDDのテストはプログラマのこまごまな課題に応じて累積的に作られるため、保守コストがかかるテスト・保守する価値の低いテストが生まれがちです。そのためテストの使い捨ての

                                                      TDDはゆるく実践しても大丈夫 - 千里霧中
                                                    • DBアクセスで遅くなったテストの実行時間を Docker で 40% 削減した方法 - Qiita

                                                      DBのレイヤーを含むエンドツーエンドテストやDBに依存したコンポーネントの自動テストがたくさんあると、全てのテストが終わるまでに長い時間がかかるようになってしまうことがあります。DBのクエリ実行はネットワークIOやディスクIOなどを含んだ高コストな処理だからです。 Docker を少し工夫して使うと、お手軽にテスト中のDBのクエリ実行にかかる時間を削減できます。自動テストが完了するまでの待ち時間を短縮し、開発のフィードバックサイクルをより早く回せるようになります! MariaDB を用いたプロジェクトの実績では、DBアクセスを伴うテストケースが 153件 ありましたが、この方法によりそのテストスイートのローカル環境での実行時間を約 43% 削減できました(約 145.7s → 約 83.3s)。 どうやって? Docker で tmpfs を使います。 tmpfs tmpfs とは、ディス

                                                        DBアクセスで遅くなったテストの実行時間を Docker で 40% 削減した方法 - Qiita
                                                      • iOSアプリデザインリニューアルの舞台裏の舞台裏 - クックパッド開発者ブログ

                                                        技術部の松尾(@Kazu_cocoa)です。 iOSアプリデザインリニューアルの舞台裏でも書かれていた、" 修正期間中は毎日夜間にアプリケーションの全画面のスクリーンショットを記録するスクリプトを実行し、画面崩れが起きてないか、新デザイン未反映の画面はないか、進捗状況の確認に利用していました。"の舞台裏を少し書いてみようと思います。 はじめに モバイルアプリケーションのテスト環境はまだまだ成長中で、様々なツールが飛び交っていることかと思います。ここでは、E2Eテストに対しての話題に絞り、使っているツール、シナリオの書き方、クックパッドでは、という話しをします。この記事におけるE2Eテストは、UIからの操作によりユーザの操作を模倣して実施するテスト、という意味合いです。 ツール E2Eテストを自動化する為のツールの選定には以下を気にしていました。 OSの更新に追従できそうなもの 特別なテスト

                                                          iOSアプリデザインリニューアルの舞台裏の舞台裏 - クックパッド開発者ブログ
                                                        • アジャイルな開発には安全性が不可欠 : 現実世界の安全機構との3つのアナロジー | POSTD

                                                          (2016/7/15、著者プロフィールを修正いたしました。) 仮に、高速道路の自動車をより速く走らせることがあなたの務めだとします。もしあなたが、ドライバー全員にただ「アクセルを思いきり踏むように」と言ったら、一体どうなるでしょうか? 結果は明らかに、大惨事となるでしょう。それなのに、ソフトウェアの構築を速めようとする時に、多くの開発者がまさにそんな態度を取っているのです。その理由として持ち出されるのは、以下のようなことです。 「本当にアジャイルに進めたいので、デザインやドキュメントには時間をかけられない」 「これは本番環境にすぐ反映しなきゃいけないから、テストを書く時間はない」 「何もかも自動化する時間はなかったので、コードのデプロイは手作業でやる」 自動車が高速道路を高速で走るには、安全性が欠かせません。より速く走るためには、ブレーキやシートベルト、エアバッグといった、いざという時にド

                                                            アジャイルな開発には安全性が不可欠 : 現実世界の安全機構との3つのアナロジー | POSTD
                                                          • マネジメントも「技術」のひとつ。技術志向だったエンジニアが、開発チームのディレクターに挑戦するわけ - Findy Engineer Lab

                                                            こんにちは。粕谷大輔(@daiksy)です。インターネット上では「だいくしーさん」と呼ばれることが多いです。現在は株式会社はてなで、Mackerel開発チームのディレクターを務めています。Twitterなどで使っている、地獄のミサワ風のアイコンをご覧になった方もいらっしゃるかもしれませんね。このアイコンは、前職のフロントエンドエンジニアに描いてもらったものです。 今の自分の仕事は、エンジニアとデザイナーで構成される開発チームを指揮し、プロダクトの安定稼働と、定常的なデリバリーに責任を持つことです。「エンジニアリングマネージャー」という言い方をすると、分かりやすいかもしれません。 自分のこれまでのキャリア選択を振り返ると、もちろん結果論のようなところもありますが、ある程度狙いを定めてキャリアを歩んでこられたのではないかと思います。本記事では自分のこれまでのキャリアについて、「どのように狙いを

                                                              マネジメントも「技術」のひとつ。技術志向だったエンジニアが、開発チームのディレクターに挑戦するわけ - Findy Engineer Lab
                                                            • 54行で分散KVSを実装する(レプリケーション機能付き) - Blog by Sadayuki Furuhashi

                                                              Ruby と MessagePack-RPC があれば、簡単なkey-valueストレージは簡単に作れます。54行で書けます(レプリケーションと負荷分散機能付き。サーバー38行、クライアント16行)。 簡単なKVSをベースにして、ログ集計や遠隔デプロイ、遠隔管理機能などの機能を追加していけば、ちょっと便利なサーバープログラムをサクサク自作できるハズ。 この分散KVSは、(keyのハッシュ値 % サーバーの台数)番目のサーバーにkeyを保存します。また、サーバーの名前順でソートしたときの「次のサーバー」と「次の次のサーバー」にデータをレプリケーションします。 すべてのサーバーで同じ設定ファイルを使います。サーバーごとの設定は引数を自分のホスト名に書き換えるだけなので、デプロイが容易です。 MessagePack-RPC for Ruby を使うと、分散しないkey-valueストレージ*1は

                                                                54行で分散KVSを実装する(レプリケーション機能付き) - Blog by Sadayuki Furuhashi
                                                              • Fedora/CentOS Stream/CentOS/RHELの関係性 - 赤帽エンジニアブログ

                                                                (注) 本記事は、Software Design 2020年6月号に掲載された「月刊Fedora Journal」初出の記事に修正を加えたものです。 Red Hat ソリューションアーキテクトの小島です。 Fedora系列の主要なLinux Distributionとしてよく名前が挙げられる、Fedora, CentOS, RHELに加えて、2019年9月に発表された新しいDistributionであるCentOS Streamの特徴や関係性をご紹介します。 Fedora系列の主要なLinux Distribution Fedora CentOS Stream CentOS Red Hat Enterprise Linux (RHEL) Red Hat Insights Red Hat Developer Program Red Hat Universal Base Images (UBI

                                                                  Fedora/CentOS Stream/CentOS/RHELの関係性 - 赤帽エンジニアブログ
                                                                • マイクロソフト「Dev Box」正式リリース。開発環境を丸ごとクラウドPC化して提供。開発環境をそのままアーカイブ保存など

                                                                  マイクロソフト「Dev Box」正式リリース。開発環境を丸ごとクラウドPC化して提供。開発環境をそのままアーカイブ保存など 最近のアプリケーションの開発環境は、コードエディタおよび文法チェックやフォーマッタなどの拡張機能、ソースコード管理ツールとの連携、ビルドツールや自動テスト環境などをはじめとするさまざまなツールによって構成されています。 そしてこれらのツールチェーンを適切に稼働するように設定するだけでもある程度の専門的な知識が必要で、手間のかかる作業になっています。 Dev Boxはこうした開発環境やツールチェーンを、あらかじめ整備された仮想マシンとして用意することで、開発者はすぐに適切な開発環境を立ち上げて開発にフォーカスすることを実現するものです。 Dev Boxの仮想マシンはWindows 365上で構築されるクラウドPCと同じ仕組みを用いてデスクトップ仮想化の仮想マシンが用意さ

                                                                    マイクロソフト「Dev Box」正式リリース。開発環境を丸ごとクラウドPC化して提供。開発環境をそのままアーカイブ保存など
                                                                  • 不具合にテストを書いて立ち向かう - t-wadaのブログ

                                                                    テストを行っている品質保証チームや、実際にシステムを使っているお客様から不具合が報告されたとき、あなたはどう思いますか? 悲しんだり、恥ずかしいと思い、不具合修正にすぐに着手したいと気がはやるのが人情というものです。しかし、焦っているときに行う作業はしばしば視野が狭く、一つの不具合修正が三つの新たな不具合を生んでしまうようなことになりがちです。 テスト駆動開発(TDD : Test Driven Development)は、プログラマが自分の不安を克服し、自分が書くコードに自信を持ちながら一歩一歩進んでいくための手法です。不具合の発生は、端的に言えばこれまでの「自信」を揺らがせる事態です。テスト駆動開発者は不具合にどう立ち向かうのでしょうか? やはりテストを書いて立ち向かってゆくのです。私はテスト駆動開発を数年間実践してきた中で、心がけているひとつの「掟」があります。それは「不具合の修正時

                                                                      不具合にテストを書いて立ち向かう - t-wadaのブログ
                                                                    • 自動テストはなぜうまくいかないか?乗り越えるためには何が必要か? - Qiita

                                                                      リファクタリングの鶏卵問題 ソースコードがクソなので綺麗にしたい。 リファクタリングしたい。 しかし、リファクタリングが出来ない。 リファクタリングが出来ないのは、テストが無いからだ。 よし。じゃあテストを書こう。あれ、テストが書けない? そのようなテストが無く、書き換えられないことによる矛盾や憤りは皆さん何百回と感じてきたと思います。 しかし、この「テストが出来ない」ということを言語化するのは、非常に難しいと思います。それは、「テストが出来ない」には実は2つの視点があります。 本質的にテストが困難なモジュールで、誰がやってもテストが書けない。 本質的にモジュールはテスト可能だが、自分の実力が足りず、自分ではテストが書けない。 1.のようなテスト困難なモジュールは誰がやってもテストは書けないです。しかし、問題は、「テストを書きたい」と思ったとき、「自分がそれほどテストに詳しくない」という場

                                                                        自動テストはなぜうまくいかないか?乗り越えるためには何が必要か? - Qiita
                                                                      • はてなCTOが聞く! 開発と運用の協力が生んだ「何事もなかった」サイボウズLiveデータセンター移転 - はてなニュース

                                                                        サイボウズの無料グループウェア/情報共有サービス「サイボウズLive」は、2010年にローンチしてから着々とユーザー数を増やし、2014年10月4日に登録者数100万人を超えました。サイボウズはこれに合わせ、サイボウズLiveのデータセンターを移行しています。100万ユーザーを擁するサービスのデータセンター移行、実際はどのように行われたのでしょうか。はてなCTOの田中慎司(id:stanaka)が、サイボウズの皆さんにお話を聞きました。記事の終わりにはプレゼントのお知らせも!(編集部) (※この記事はサイボウズ株式会社提供によるPR記事です。) ▽ https://live.cybozu.co.jp/ ▽ https://www.cybozu.com/jp/live/1million.html 田中 はてなCTOの田中(id:stanaka)です。サイボウズLive▼の100万ユーザー突破

                                                                          はてなCTOが聞く! 開発と運用の協力が生んだ「何事もなかった」サイボウズLiveデータセンター移転 - はてなニュース
                                                                        • Googleのソフトウェアエンジニアリング

                                                                          Googleの現役ソフトウェアエンジニアたちが、超大規模ソフトウェアの開発と保守を長期的に支えてきたGoogle社内の多様なベストプラクティスを、文化、プロセス、ツールの側面からこの一冊に凝縮。時間と変化、規模と成長、トレードオフとコストという3つの基本原理に沿って、コードを持続可能にする方法論を紐解きます。「謙虚、尊敬、信頼」、心理的安全性、ダイバーシティとインクルージョンなど公正を重んじる文化から、コードレビューやテスト構成法など人間の行動を規定するプロセス、継続的インテグレーションや大規模変更システムなど変化への対応を支援する自動化ツールの基盤技術まで、Googleが試行錯誤を経て獲得した教訓を余すところなく紹介しています。経済学、心理学、マネジメント論などを背景にした人間への深い洞察をふまえ、データ駆動かつトレードオフから導かれる、定量的かつ定性的な決定プロセスも解説。Google

                                                                            Googleのソフトウェアエンジニアリング
                                                                          • 継続インテグレーションは強みではなくなった: 柴田 芳樹 (Yoshiki Shibata)

                                                                            Subversion/Gitなどを使用したソースコード管理、Jenkinsを使用した継続的インテグレーション、様々なxUnitフレームワークを使用した自動テストなどをソフトウェア開発組織として実践することは、今日では、その開発組織の技術的な強みではありません。 それらを実践しないことが、ソフトウェア開発組織の「弱み」なのです。また、組織としてそれらの実践を推進しない、あるいはサポートできないマネージャも「弱み」となります。さらに、大規模なソフトウェア開発組織においては、それらのためのインフラ整備をプロジェクトごとに立ち上げなければならず、サポート部門が存在しないことも弱みとなります。※1 ※1 プロジェクトを始めるごとに、ソースコード管理やJenkins用のサーバの調達、OSから様々なツールのインストールを一通り行うためには、それなりの時間を要します。したがって、バックアップをも含めて環境

                                                                              継続インテグレーションは強みではなくなった: 柴田 芳樹 (Yoshiki Shibata)
                                                                            • いまどきのPHP開発ノウハウを詰め込んだ『PHPエンジニア養成読本』が出るので、見所をまとめてみるよ

                                                                              いまどきのPHP開発ノウハウを詰め込んだ『PHPエンジニア養成読本』が出るので、見所をまとめてみるよ 2013年08月27日 13:02PHP この本に記事を書きました。9月13日発売予定です。 Amazon.co.jp PHPエンジニア養成読本 こんな内容 以下の項目のどれかにピンと来る人と、 いまいちピンと来ないという人のための本です。 PHP最前線 PHPの最新動向 いまどきPHP開発技法入門 [最新]ライブラリ&フレームワーク活用の基礎知識 [新定番]Composerの基礎と活用 フレームワークを本当に使いこなすための考え方 Symfony活用のポイント FuelPHP活用のポイント CakePHP活用のポイント 注目フレームワーク総ざらい 現場で役立つ PHPエンジニアの開発術 PHPUnitではじめる自動テスト Gitでばっちりソースコード管理 いまさら聞けない「公開鍵認証」

                                                                                いまどきのPHP開発ノウハウを詰め込んだ『PHPエンジニア養成読本』が出るので、見所をまとめてみるよ
                                                                              • ユニットテストってもう言わない! CI/CD時代のテスト分類に最適なテストサイズという考え方

                                                                                はじめに 以前からユニットテスト/単体テストという言葉は使いづらい、と感じており今回も旧Twitterで「テストを実行時間ベースで分類する良い言葉ないかなー」と呟いていたところ、「テストサイズのSMLって考え方があるよ」と教えて戴きました。 だいたいは教えてもらったt_wadaさんの記事にすべて書いてあるのですが、自分の整理も含めて動画にしたので、その補完記事となります。 TL;DR 単体テストのバベルの塔は既に崩壊 CI/CDでの継続的テストには時間ベースのテスト分類が重要 UT/IT/E2EではなくSMLによるテストサイズがCI/CDには合う それは単体テストか結合テストなのか? 自動テスト、手動テストに関わらずテストの分類として単体テストと結合テストという言葉は一般的です。 ITQBではTest Levelsという言葉で定義されていますし、以下のようなV字モデルの対応表はみんな知って

                                                                                  ユニットテストってもう言わない! CI/CD時代のテスト分類に最適なテストサイズという考え方
                                                                                • モブプログラミングに向いてない私の話 - 誰かの役に立てばいいブログ

                                                                                  新型コロナウィルスの影響も長引いてますが、皆さま無事お過ごしでしょうか。私は幸い無事です。 日ごろチームでソフトウェア開発をしているのですが、近年社内ではペアプログラミングやモブプログラミングが流行しています。 私のいるチームでもここ二年ほどモブプログラミング(ないし類似のプラクティス)に取り組んできました。 モブプログラミングについて正確にどのようなものかは以下の記事などをご参照いただければと思います。 簡単にまとめると、要求分析やコーディング等幅広い開発作業を、同じ場所に集まったチームの共同作業でこなしていくというものです。 このご時世ですので、最近はオンラインのミーティングルームに集合する形式でしたけど。 www.agilealliance.org ここから先は、非常にパーソナルな、私に限定された体験になります。 どの人・チームにも適用できる話ではありません。ではありますが、どの人・

                                                                                    モブプログラミングに向いてない私の話 - 誰かの役に立てばいいブログ