タグ

CIに関するcalpoのブックマーク (74)

  • 技術的負債とステークホルダと説明責任と / The Debt

    Talked at CloudNative Days Spring 2021 Online #CNDO2021. https://event.cloudnativedays.jp/cndo2021/talks/801

    技術的負債とステークホルダと説明責任と / The Debt
  • 『FFVII リメイク』は自動デバッグで、休日、夜間問わず、毎日数百回も通しプレイ中。ゲームのバグを自動で検知するシステムを開発【CEDEC 2020】 | ゲーム・エンタメ最新情報のファミ通.com

    記事では、1日目におこなわれた『ファイナルファンタジーVII リメイク』(以下、『FFVII リメイク』)のデバッグに関するセッション“"FINAL FANTASY VII REMAKE"における自動QAシステムの構築と運用”をリポート。 セッションで語られたのは自動QAシステムについて。まずQAとは、Quality Assuranceの略称で、日語で言えば、品質保証。ゲーム開発においては、ゲームが正しく動作しているか、バグが発生しないか、検証する仕事・部門・チームのことを指す。ゲームファンにとっては、デバッグと言ったほうが伝わりやすいかもしれない。つまり、自動QAシステムとは、自動でデバッグをおこなうシステムということだ。 セッションには、スクウェア・エニックスのAIエンジニアを務める太田健一郎氏が登壇した。 ゲームに最適化した自動QAシステムを目指して ゲームというのは、そもそも

    『FFVII リメイク』は自動デバッグで、休日、夜間問わず、毎日数百回も通しプレイ中。ゲームのバグを自動で検知するシステムを開発【CEDEC 2020】 | ゲーム・エンタメ最新情報のファミ通.com
  • 『大乱闘スマッシュブラザーズ SPECIAL』膨大なアセットのビルド時間&容量との戦い:CEDEC 2019

    大乱闘スマッシュブラザーズの名前を聞いて真っ先に想像するのがその膨大なキャラクターやステージの数ではないだろうか。スマブラはシリーズを重ねることにファイターや楽曲、ステージが爆発的な規模で増えていき、最新作の大乱闘スマッシュブラザーズSPECIAL(以下、スマブラSP)ではついに歴代ファイターが全員登場して70人を超え、ステージ数は100個を超える途方もない規模となってしまった。ボリュームが多いことはユーザにとって嬉しい一方で、開発者にとってはゲームのアセット(素材)の増加によるビルド時間の長期化で開発サイクルが鈍化したりNintendo Switch特有の問題である容量制限のあるロムが待ち構えていたりと良いことばかりというわけではない。 2019年9月6日、横浜パシフィコで開催されたCEDEC 2019の講演「『大乱闘スマッシュブラザーズ SPECIAL』~膨大なアセットのビルド時間&容

    『大乱闘スマッシュブラザーズ SPECIAL』膨大なアセットのビルド時間&容量との戦い:CEDEC 2019
    calpo
    calpo 2019/09/25
    ゲームの 開発環境構築手順の標準化 テスト自動化
  • E2EテストをSelenium Webdriver からCypress.io に移行した話 - 一休.com Developers Blog

    こんにちは。 一休.comの開発基盤を担当しています、akasakasです。 今回は、E2EテストをSelenium WebdriverからCypress.ioに移行した話をしたいと思います。 一休のE2Eテスト事情 あれから、数年が経過して、、、 どうしてこうなった??? SeleniumではSPAへの対応が難しくなってきた なんでもかんでもSeleniumで頑張ろうとした弊害 いざリプレイスへ・リプレイスをする上で気をつけたこと 開発者フレンドリー 安定性 然るべきレイヤーでテストする(何でもかんでもブラウザテストにしない) 技術選定 Cypress.io とは? Cypress.io のいいところ セットアップが楽 テストを書くことだけに集中できる CI連携が楽 Cypress.io の頑張って欲しいところ その他、移行に関しての細かい話 重複テストケースの排除 Page Objec

    E2EテストをSelenium Webdriver からCypress.io に移行した話 - 一休.com Developers Blog
  • iOSDC ベストトーク賞2位の発表の蛇足 #iosdc - 若くない何かの悩み

    iOSDC Japan 2018 で、ベストトーク賞2位をいただきました。タイトルは「iOSアプリの開発速度を170%に向上させたデバッグノウハウ」です。この記事では、スライドの紹介に加えて、スライドに書ききれなかった背景やレビュー体制などについてお話ししようと思います。 発表スライド スライドでは語られていない発表の目的 この発表は少し特殊な構成で組まれています。発表内で繰り返し出てくる「動作確認の自動化」とは、実のところ「テスト」のことです。しかし、私はこの発表でなるべく「テスト」というキーワードの使用を避けました。 この背景には、iOSDC ではテスト関連の CfP が通らないという経験則があります。私はこの原因を CfP 選考に関わる方たちに次のような人が多いからではないかと推測しました: テストをやったことがなくて興味がない テストに嫌な体験がある そこで、上記のような方にも受け

    iOSDC ベストトーク賞2位の発表の蛇足 #iosdc - 若くない何かの悩み
  • 希薄化したTDD、プロダクトの成長のために必要なものは?〜『健全なビジネスの継続的成長のためには健全なコードが必要だ』対談 (6)

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

    希薄化したTDD、プロダクトの成長のために必要なものは?〜『健全なビジネスの継続的成長のためには健全なコードが必要だ』対談 (6)
  • SREのここ1年の取り組みと、今後1年でやりたい事

    SRE視点で見るマイクロサービス FiNC SRE担当の鈴木です。 今回は、以前社内のマイクロサービス勉強会で話した「SREの視点からみたマイクロサービスの運用」に関して紹介していきたいと思います。 いつもは、マイクロサービス万歳みたい… 上記ブログでは2016年1月時点で16個のサービスから構成されていると書かれていますが、2017年5月時点で30個近くまで増えています。増える理由はいくつかありますが大別すれば新機能開発か、既存機能の切り分けという事になります。そんな中でここ1年で取り組んで来た事を紹介していきたいと思います。 Docker/ECSの導入大きな変化の一つは格的にDocker番環境で導入し始めた事です。DockerのマネージメントツールとしてAWSのECSを利用しています。Dockerを利用する事の利点は今更ここで紹介するまでもないですが、新規サービスの立ち上げや既存

  • mysqldiff を使って継続的に MySQL のデータベーススキーマの差分をチェックする - kakakakakku blog

    最近,環境ごとのデータベーススキーマの差分をチェックする機会があった.プロダクション環境とステージング環境ならまだしも,開発環境だと検証のために追加したインデックスがそのままになっていたり,開発が途中で止まってしまって日の目を見ることがなかったテーブルが残っていたり,そういうことって比較的あるのではないかなと思う.特に今の環境だと,マイグレーションの仕組みが整っていないという課題もあり,より一層,データベーススキーマに差分が出やすくなってしまっている. 今回は MySQL から公式に提供されている mysqldiff というツールを使ってデータベーススキーマの差分をチェックした. mysqldiff をインストールする mysqldiff は MySQL Utilities という MySQL の管理ツールパッケージの中に同梱されている.現在だと v1.6 が最新になっている. MySQL

    mysqldiff を使って継続的に MySQL のデータベーススキーマの差分をチェックする - kakakakakku blog
    calpo
    calpo 2017/04/03
    コマンドがあったとは、、、
  • PHP CS Fixer v2 でもっと快適PHPライフ - FLOG SPLASH

    2014年に書いた PHP CS Fixer の記事 が今でも読まれているのですが、2016年末にリリースされた PHP CS Fixer v2.0 で後方互換のない変更が多く入っており情報が古くなっているため、改めて v2 について書いてみようと思います。なお現時点での最新版は v2.1.2 となります。 fivestar.hatenablog.com PHP CS Fixer とは PHP CS Fixer は PHP コードをコーディング規約 (CS = Coding Standards) に沿って補正してくれるライブラリです。歴史を辿ると、元々は Symfony のプロジェクトリードの fabpot 氏が作成したもので、 PSR-½ 、あるいは Symfony のコーディング規約 に沿ってコードを補正する機能が実装されています。 github.com チームでコードを書くときはコー

    PHP CS Fixer v2 でもっと快適PHPライフ - FLOG SPLASH
  • インフラチームと開発チームの垣根をなくすためにAWSのCI環境を構築した話 - CARTA TECH BLOG

    こんにちは、VOYAGE GROUP システム部の @s-tajima です。 PHPカンファレンス2016 の「老舗メディアが改善に取り組んでいる話」でもお話した通り、長年オンプレミス環境で稼働してきたECナビを、AWSに移転しようというプロジェクトが進行しています。 そしてなんと先日、約24時間のメンテナンスを経てECナビの体(Webサーバ, 管理画面サーバの一部, データベースサーバ)がAWSに移転しました! AWS移転において得た知見, 構築したシステム等は数多くありますが、今回はCloudFormationとTravis CIを用いて 生産的 で 安全 で 手軽 なAWSのCI環境を構築したお話です。 背景 ECナビは、500万人を超える会員を抱えたVOYAGE GROUPが運営している中でも特に大きなメディアの1つです。 今回、そんなECナビのインフラ調達期間の削減、検証環

    インフラチームと開発チームの垣根をなくすためにAWSのCI環境を構築した話 - CARTA TECH BLOG
  • レガシーコード向けに修正した部分だけPHP構文チェックをする仕組みを作った - SHOYAN BLOG

    修正した部分だけPHPの構文チェックをする仕組みを作ってみました。 構文に問題があればGithubのPull Requestにコメントされます。 この方法のよいところは既存のソースを変えることなくPHPの構文チェックの仕組みを導入できることです。 規約に沿っていないコードが大量にあり、かつテストコードがないような環境(レガシー環境)にも導入することができます。 使用したツールは以下です。 packsaddle PHP_CodeSniffer CircleCI Github また、packsaddleのツールはRuby製ですので、Rubyが動作する環境が必要です。 サンプルとしてGithubphp-syntax-checkというリポジトリを作成しているので参考にしてください。 https://github.com/shoyan/php-syntax-check 以下のスクリプトをCircl

    レガシーコード向けに修正した部分だけPHP構文チェックをする仕組みを作った - SHOYAN BLOG
  • 人気CIツール比較まとめ【2015年12月版】 - Qiita

    概要 こんにちは。日の担当の@hiro_kobaです。リブセンスでアクセスログ分析基盤の開発等をやっております。 日は最近人気のある5個のCIツールを、色んな角度から比較してみようと思います。 背景 テスト環境でテストを実行し、通ったらステージングにデプロイ、その後動作が確認できたら番デプロイ。 日々のオペレーションでよくある光景かと思いますが、手動での手順が多いためミスが発生しやすく、かつ手間も掛かるため、課題を感じておりました。 これらの継続的な運用フローを自動化してくれる仕組みとして、CIツールがあります。 CIツールは大きく分けて、以下3つに分類されるようです。参考 Everything(全方位型) Build, Test and Delivery(ビルド・テスト・デプロイ特化型) Specialization(その他特化型) 今回の問題には「Build, Test and

    人気CIツール比較まとめ【2015年12月版】 - Qiita
  • Seleniumアレルギーのための処方箋 - Qiita

    何年も前、SeleniumやWebDriverの話で盛り上がった記憶があります。ただ、その当時はまだRailsなどバックエンド中心の文脈でした。今、フロントエンドに軸足が移る中、ブラウザテストの状況はどうなったのでしょう? 不思議なことに、フロントエンド界隈でそれほど話題に上がって来ないですよね (私の周りだけ?)。結構大事なのに。実は皆さん、「Seleniumアレルギー」なんじゃないですか? 公式サイトに漂う ゼロ年代感(下図)。Javaへの躊躇、「めんどくさい」と聞かされ続けた過去、無意識に避けてしまうのがSeleniumです。 ただ、フロントエンドの文脈でこそ、ブラウザテストは重要度を増しています。そこで「Selenium触りたくない病」の筆者が、 四苦八苦した背景 と、2016年だからこそ 見えてきた落とし所 を書いてみたいと思います。 註: 思ったより長文になってしまいました。先

    Seleniumアレルギーのための処方箋 - Qiita
    calpo
    calpo 2016/08/07
    E2Eテストを構成するツール群のレイヤー分けと、疎結合、依存、クロスブラウザ対応などによる特徴ごとに、整理された比較と評価。
  • 一休.comのE2Eテスト事情 ~ギリギリ話せるところまで話します~ /cybozu_ikyu_e2e

    一休.com宿泊サイトのE2Eテスト事情をギッリギリまで話しました。このスライドを見た方は一休のエンジニアより一休のE2Eに詳しくなると自負しております。

    一休.comのE2Eテスト事情 ~ギリギリ話せるところまで話します~ /cybozu_ikyu_e2e
  • php-timecopをPHP 7対応させてみた - hnwの日記

    自作のPHP拡張であるphp-timecopをPHP 7に対応させてみました。この機会に改めてphp-timecopの紹介をしてみます。 php-timecopとは php-timecopというのは筆者が4年ほど前に作ったPHP拡張で、現在時刻に紐付いた値を返すPHP関数について、基準となる現在時刻を過去や未来の任意の時刻に設定することができるというものです。 以下に簡単な例を紹介します。 <?php var_dump(date("Y-m-d")); // 今日の日付 timecop_freeze(0); var_dump(gmdate("Y-m-d H:i:s")); // string(19) "1970-01-01 00:00:00" var_dump(strtotime("+100000 sec")); // int(100000) 上記プログラム中2行目のtimecop_free

    php-timecopをPHP 7対応させてみた - hnwの日記
    calpo
    calpo 2016/04/20
  • Selenium Antipatterns

    http://seleniumjp.connpass.com/event/24206/ 第3回日Seleniumユーザーコミュニティ勉強会の資料です。 Seleniumのアンチパターンについてです。Read less

    Selenium Antipatterns
  • システムテスト自動化の動向と勘所

    システムテスト自動化の動向と勘所 1. 1 システムテスト自動化の動向と勘所 2016/01/15 株式会社 SHIFT 太田健一郎 2. 2  SHIFTのテスト自動化サービス  自動化の選定方法とROI  環境構築とビルドの自動化 AGENDA 3. 3 SHIFTのテスト自動化サービス 3 4. 4  自動化のメリット・難しさ  SHIFTの自動化サービス  自動化カウンセリング・可否判断  自動化基盤構築  テストスクリプト作成  導入実績紹介 SHIFTのテスト自動化サービス 5. 5 人の作業だけに頼る開発プロセスの課題 自動化のメリット・難しさ 検証スタート時に問題が噴出 担当者がいないとリリース作業ができない 回帰テストに膨大な工数がかかる リリースに使ったモジュールのバージョンが わからない  開発者のPCでは動作するのに 検証環境では動作しない 

    システムテスト自動化の動向と勘所
    calpo
    calpo 2016/01/29
    Selenium Grid hubとJenkinsのマスタースレーブ、Selenium plugin
  • 「ゲーム感覚」でコード品質へのモチベーションをUPコード解析ツールの活かし方 | SELECK

    今回のソリューション:【Scrutinizer/スクリューティナイザー】 〜コードの静的解析、スコアリング、そしてCI機能を併せ持つScrutinizerの導入で、プロダクト全体のコード品質の向上に成功した事例〜 特に少人数でスピーディーに開発を進めているチームほど、「コード品質の担保」に関しては後手に回ってしまうことも多い。とは言え、綺麗なコードを書きたくないエンジニアはいない。 効率的にコード品質が可視化され、結果としてプロダクト全体の品質を高めることができる仕組みを導入できれば、様々な課題を解決することができるだろう。 教育と異文化領域に特化したインキュベーション事業を展開する株式会社ヒトメディア。同社では、業務委託やオフショアを含め約40名のエンジニアが、それぞれ少人数のチームを組んでプロダクト開発に励んでいる。 その中で課題だったのは、各チームごとに使っているコードの世代も異なる

    「ゲーム感覚」でコード品質へのモチベーションをUPコード解析ツールの活かし方 | SELECK
  • Webページを監視して表示崩れが起きていないか検出できるE2Eテストを実装しました | Recruit Tech Blog

    お世話になります、フロントエンド担当をしている小原正大です。Webページの表示を監視して差異があった場合、どのページで表示の変化が起きているかを知ることが出来るプログラムを実装したのでそのことについて書こうと思います。 何につかったの? 僕がフロントエンドを担当しているサービス『料理サプリ』で大規模なフロントエンドコードのリファクタリング行う際に表示テストを自動化するために作成しました。『料理サプリ』はPC・スマホ合わせて大体350-400ページの表示パターンが存在する比較的規模の大きいサイトです。全ページに影響を与えるような作業は大規模な回収となり、今回のリファクタリングでは表示テストの計画などの段取りが必要でした。従来の人手によるQAでは細かいバグを見過ごしたり時間がかかり効率が悪いので、可能な限り自動化しようと考え実装しました。 実装の概要 この監視のシステムは以下の2つ実装を組合わ

    Webページを監視して表示崩れが起きていないか検出できるE2Eテストを実装しました | Recruit Tech Blog
  • すべてが╭( ・ㅂ・)و ̑̑ グッ ! になる - Jenkinsビルドパイプライン結果をプルリクエストに表示する

    Jenkinsのジョブ結果をプルリクエストに表示するときはGitHub pull request builder pluginを使ってますが、単体のジョブでしか利用できなかったので、複数ジョブ(ビルドパイプライン構成)のときに結果を表示する方法をまとめておきます。 ビルドパイプラインの構成 今回のビルドパイプラインはこんな感じを想定しています。 プルリクエストへの更新やコメントをトリガーにジョブが起動し、単体テスト、回帰テストを実行します。 あわせて、実行中、失敗、成功の状態がプルリクエストに表示されます。 成功したらプルリクエストに ╭( ・ㅂ・)و ̑̑ グッ ! って出ます。グッ ! って。 これを満たす以下のジョブをつくっていきます。 ジョブの結果をプルリクエストに表示する 複数のジョブをビルドパイプラインとして実行する GitHub pull request builder

    すべてが╭( ・ㅂ・)و ̑̑ グッ ! になる - Jenkinsビルドパイプライン結果をプルリクエストに表示する
    calpo
    calpo 2015/10/21
    pull request builder plugin利用、単体ジョブを作ってパイプラインでつなげる際の具体的な設定。ghprbでコミットを下流ジョブに引き継ぐ設定。