nowsprintingのブックマーク (23)

  • Unity Test Frameworkで利用できるカスタム属性の実装方法 - やらなイカ?

    Unity Test Framework および NUnit では、テストコードに付与できるさまざまな属性(attribute)が提供されています。 また拡張ポイントであるインターフェイスを実装することで、プロジェクト独自のカスタム属性を定義してテストコードで使うこともできます。 記事では、オープンソースの Test Helper パッケージにいくつかの汎用的なカスタム属性を実装するにあたって得た知見を紹介します。 github.com 記事で紹介するインターフェイスは次の4つです。 先頭から3つが NUnit 由来のもの、最後のひとつが Unity Test Framework 独自のものです。 IApplyToTest IApplyToContext ICommandWrapper(IWrapSetUpTearDown, IWrapTestMethod) IOuterUnityTe

    Unity Test Frameworkで利用できるカスタム属性の実装方法 - やらなイカ?
  • Unity製ゲームをWebGLビルドしてGitHub Pagesに公開するワークフロー - やらなイカ?

    Unityプロジェクトのバージョン管理にGitHubを使用している場合、GitHub ActionsワークフローでWebGLビルドを行ない、そのままGitHub Pagesに公開する方法を紹介します。 GitHub Pagesは、GitHubリポジトリに紐づく静的コンテンツをホスティングできる機能です。 公開できるサイズが10GB以下ということと、たとえprivateリポジトリであってもGitHub Pagesにはアクセス制限はかけらない*1という制限がありますので注意してください。 Unity - Builder アクション ビルドには、GameCIの提供するUnity - Builder アクションを使用しています。 利用方法は公式サイトか、検索すれば日語情報もありますので割愛します。 github.com なお、CIをキックするユーザーはUnityのライセンスを持っている必要があり

    Unity製ゲームをWebGLビルドしてGitHub Pagesに公開するワークフロー - やらなイカ?
  • バッチモードでUnityを実行するときの制限事項と回避方法 - やらなイカ?

    記事は、拙著『Unity Test Framework完全攻略ガイド 統合テスト編』の付録Bから抜粋したものです。 バッチモードとは バッチモードとは、Unityエディターをコマンドラインから起動するときに -batchmode オプションを付けることでヘッドレス動作するモードです。 ウィンドウモード*1のUnityエディターは実行中さまざまな、人間が応答しなければならないポップアップウィンドウが表示されますが、バッチモードでは表示されません。そのため、CIでテスト実行するときなどに使用されます。 バッチモードの制限事項 記事執筆時点で判明している、バッチモード実行時の制限事項は次のとおりです。 スクリーンサイズは640×480 WaitForEndOfFrame を使用できない*2 InputSystem.TestFramework を長時間(数十秒)動作させたとき、途中で操作が止ま

    バッチモードでUnityを実行するときの制限事項と回避方法 - やらなイカ?
  • エンジニアのためのChatGPTプラグイン3選+1 - きしだのHatena

    前のブログでも紹介したのだけど、ChatGPTプラグインのローリングアウトが始まって使えるようになっていて、結局みんな使うのはこの3つくらいかなーとなったので、まとめておきます。 前のブログはこれ。 Bardも世の中のサービスぜんぶGoogle製と思ってるらしい - きしだのHatena 同時に使えるのは3つまでのようだけど、他のプラグインはアメリカ不動産情報など日からは使いづらかったり、作ってみたレベルだったりなので、結局この3つに落ち着くかなーという気がします。 WebPilot これは手放せなくなります。Web記事を読み込んでくれるプラグイン。 ChatGPTには「この記事を要約して」しか入力しなくなりそう。 このエントリを要約してもらっています。 大規模言語モデルの「脳波」が反応してる部分を壊すとどうなるか試した - きしだのHatena ※ 追記 15:21 ぼくのところには

    エンジニアのためのChatGPTプラグイン3選+1 - きしだのHatena
  • テスト設計書ひな型の著作物性・営業秘密該当性等 東京地判令4.5.31(令元ワ12715) - IT・システム判例メモ

    テスト業務の専門事業者から退職した従業員が、テスト設計書のひな型を持ち出して転職先で使用したという件について、誓約書違反、不法行為、著作権侵害、不正競争(営業秘密)など、さまざまな根拠を挙げて損害賠償請求を行ったという事案。 事案の概要 Y1は、2017年5月にソフトウェアテスト専門業者のX社に入社し、ソフトウェアテスト事業に従事し、グループ長を務めた後に2018年7月に退職した。その後、AIの研究開発、テスト業務を行うY2社に転職した。 Y1は、入社時に守秘義務を負う旨の誓約書をX社に提出しており、退職時にも守秘義務と競業避止義務を負う旨の誓約書をX社に提出していた。 X社では、テスト業務に用いるテスト設計書のひな型として、件ファイル1,件ファイル2を作成していた。 Y1は、X社を退職する直前に件ファイル1をチャットツールの自身のアカウントにアップロードし、Y2社に転職した後にダウ

    テスト設計書ひな型の著作物性・営業秘密該当性等 東京地判令4.5.31(令元ワ12715) - IT・システム判例メモ
  • DeNAが開発したUnity向け自動テストツールがオープンソース化。運用におけるTipsをまとめた記事が公開される|ゲームメーカーズ

    DeNAが、Unity向けオートパイロットフレームワーク『Anjin(あんじん)』の運用Tipsをまとめた記事を公開 Anjinは、QA工程の前に行われるテストの自動化ツール Anjinはオープンソース化され、MITライセンスで公開されている 2023年3月31日、DeNAは、同社が開発したUnityプロジェクト向けオートパイロットフレームワーク『Anjin(あんじん)』を運用するうえでのTipsをまとめた記事を公開しました。 Anjinは、ゲームがほぼ組み上がり、QA工程に入る前の段階で行われるテストを自動化するためのツール。オープンソース化もされており、MITライセンスで公開されています。 Anjinでは、UnityのSceneごとに、「モンキーテスト(※1)」と「シナリオテスト(※2)」の、2つのテスト手法を切り替えつつ検証することで、効率的なテスト運用を目指しています。 ※1:無作

    DeNAが開発したUnity向け自動テストツールがオープンソース化。運用におけるTipsをまとめた記事が公開される|ゲームメーカーズ
  • Unityプロジェクト向けオートパイロットフレームワークの運用Tips - DeNA Testing Blog

    SWETグループの長谷川( @nowsprinting )です。 開発者自身の手によるUnityプロジェクトの品質向上アプローチのひとつに、ゲームプレイを自動化するオートパイロットによる検証があります。 このアプローチについて、DeNA内で開発・導入を進めているフレームワークAnjinを昨年紹介しました。 swet.dena.com また、Anjin自体も先日オープンソース化しました。こちらのリポジトリからご利用いただけます。 github.com 記事では、Anjinの、主にオートパイロットを安定運用するための機能を紹介します。 Automated QAが保存するスクリーンショットの退避 uGUIコンポーネントのシナリオテストを行なう UGUIPlaybackAgent の実装には、 Automated QAパッケージ のRecorded Playback機能を使用しています。 Pla

    Unityプロジェクト向けオートパイロットフレームワークの運用Tips - DeNA Testing Blog
  • Unityプロジェクト向けオートパイロットフレームワークの作りかた - DeNA Testing Blog

    SWETグループの長谷川(@nowsprinting)です。 開発者自身の手によるUnityプロジェクトの品質向上にはさまざまなアプローチがあります。 当ブログでもこれまでに、 ユニットテスト や 静的解析 といった、コーディング段階でC#コードの品質(特に内部品質)を高めるアプローチを紹介してきました。 記事では少し目線を変えて、ゲームがほぼ組み上がった状態でのゲームプレイを自動化する、オートパイロットによる検証アプローチを紹介します。 オートパイロットによる検証の位置付けと目的 ゲームが組み上がった状態とは、ゲームを構成するC#コードや3Dモデルなどのアセットファイルを組み合わせた、結合度の高い状態を指します。 結合度を突き詰めると、IL2CPPビルドしてスタンドアロンプレイヤー(モバイル端末やコンソール機)で実施するテストになりますが、今回は結合度を上げすぎず、実行環境はUnity

    Unityプロジェクト向けオートパイロットフレームワークの作りかた - DeNA Testing Blog
  • カスタムRoslyn AnalyzerをUPMパッケージとして配布する - やらなイカ?

    Unity 2020.2でRoslynアナライザによる静的解析を行えるようになりましたが*1、NuPkgやDLLで配布してUnityプロジェクトに導入するのはやや面倒です。 そこで、アナライザをUnity Package Manager (UPM) パッケージとして配布する方法を紹介します。アナライザ単体での配布はもちろん、自作ライブラリに関連するアナライザをライブラリのUPMに同梱して配布できます。 前提は、Unity 2020.3.4以降です。UnityバージョンごとのRoslynアナライザまわりの機能制限については次の記事にまとめています(Unity 2021.2の差分まで反映済)。 www.nowsprinting.com アナライザ入りUPMパッケージの作成 アナライザをNuGetから取得もしくはビルドしたDLLは、一旦Assetsフォルダ下に置いて*2 Inspectorウィン

    カスタムRoslyn AnalyzerをUPMパッケージとして配布する - やらなイカ?
  • “アジャイルモンスター”が「ドキュメントは大事じゃん」と思う理由 形式知の残し方にチームのうまさは出る

    モブプログラミングの強みはメンバーが体験を共有できること 佐藤治夫氏(以下、佐藤):先ほど及部さんが、モブプログラミングでみんなが話す時間が増えて楽しくなったというお話をしていました。モブプログラミングは複数人を同時に同じ場所に集めるので作業は並行で進まないじゃないですか。 その裏返しで、モブプログラミングのことをプログラミングではないモブワークみたいな感じでモビングって言うんですかね? それを採用する効果はどういうものを感じていますか? 及部敬雄氏(以下、及部):よく言われるところで、1つ目に「教育的効果が高い」というのがあります。SECIモデルで出てくる例えばソースコードや手順書など、コードやドキュメントに落ちる言葉として発せられる知識だけではなくて、コードの書き方や、なぜこういう名前にしたのかという組み立て方ですね。エンジニアは書いたコードは渡せるし、自分の言葉で説明できることは伝え

    “アジャイルモンスター”が「ドキュメントは大事じゃん」と思う理由 形式知の残し方にチームのうまさは出る
  • Unityプロジェクト向けRoslynアナライザの作りかた - DeNA Testing Blog

    SWETグループの長谷川(@nowsprinting)です。 Unity 2020.2以降、Unityエディタ上でRoslynアナライザによる静的解析 (static analysis) を実行可能になりました。 また、それ以前のバージョンで作られたUnityプロジェクトであっても、JetBrains RiderなどのC#向けIDE(統合開発環境)上でRoslynアナライザの実行がサポートされています。 静的解析を充実させることで、コンパイラだけではチェックしきれないようなバグや性能劣化の原因を早期に検出できます。 例えば弊社では、実行時に動的にインスタンス化されるクラスのコンストラクタがIL2CPPビルド時にストリップされないように [Preserve]アトリビュートの指定漏れを検出するアナライザを導入し、ショーストッパーとなりえる問題を早期発見できるようにしています。 通常、こうした問

    Unityプロジェクト向けRoslynアナライザの作りかた - DeNA Testing Blog
  • Unity Automated QA雑感 - やらなイカ?

    Unity Automated QA パッケージが公開されました。 まだアルファリリース (0.2.0-preview.3) ですが、少し触ってみたメモ。 [12/26追記]v0.8.1対応の『Unity Automated QA攻略ガイド』をコミックマーケット99で頒布します。詳しくはこちらの記事を参照してください www.nowsprinting.com 概要 Unityエディタ上で動く、uGUI操作のキャプチャ&リプレイ機能です。 Required: Unity 2019.4+ 操作記録はjsonで保存され、エディタ上で再生できます。 また、Play mode testsに組み込んで実行でき、さらにAWS Device Farm上のAndroid端末で実行することもできます。 細かいところはまだ発展途上という感ですが、再生機能がかしこくなってくれればそれ単独で使いではありそうですし、

    Unity Automated QA雑感 - やらなイカ?
  • Jenkins Shared Librariesの活用事例の紹介 - DeNA Testing Blog

    1. はじめに SWETグループの井口です(@hisa9chi)です。現在はスマホ向けゲーム開発案件にてゲーム開発者がゲーム開発に集中できるようにCI/CD関連を幅広くサポートしています。 稿では、その中でも Jenkins Pipeline Job で利用可能な Shared Libraries に関して弊社でどのように活用しているか事例を紹介してみたいと思います。 Jenkinsと聞くとおそらく皆さんは、昔は利用していたが今は運用コストが高いなどの理由から、マネージドなクラウドのCI/CDサービスへ移行したという方が多いのではないでしょうか。しかし、ゲーム開発の現場ではJenkins master / agentのクラスタ構成を構築して、運用を続けているプロジェクトが弊社内にも多く存在します。なぜ、運用コストが高いにもかかわらず構築して運用しているかというと、ゲーム開発特有の理由から

    Jenkins Shared Librariesの活用事例の紹介 - DeNA Testing Blog
  • Goによるロードテスト - DeNA Testing Blog

    はじめに SWETグループGoチームの金子 (@theoden9014) です。 弊社が運営するライブコミュニケーションアプリであるPococha(ポコチャ)においてロードテストを実施する際、Go言語を利用して独自のロードテストツール開発しました。今回は、その知見を共有したいと思います。 この記事はDeNA Advent Calendar 2020の4日目の記事です。 記事ではシステムをWebシステムと前提としていますのでご注意ください。 ロードテストとは (Load Testing) JSTQBやISTQBにおいては性能テスト (Performance Testing) の1つと定義されています。 性能テストとはシステムテストにおける非機能テストの1つです。 ロードテスト、耐久性テスト、ストレステスト等があり、それぞれ目的に応じて実施します。 ロードテストは、システムがユーザ負荷のピー

    Goによるロードテスト - DeNA Testing Blog
  • 形式手法でデータ構造を記述・検査してみよう:Alloy編 - DeNA Testing Blog

    SWETの仕様分析サポートチーム所属のtakasek(@takasek)です。 仕様分析サポートチームでは、社内のプロダクト開発に対する形式手法の活用可能性を模索しています。当ブログでも、継続的に形式手法に関する情報発信をしています(形式手法 カテゴリーの記事一覧)。 当記事は、Kuniwak(@orga_chem)により社内開催されたAlloyガイダンスを元に再構成した記事です。よく知られたデータ構造であるStackを形式仕様記述しビジュアライズすることで、Alloyの使い方と利点を実感できます。Alloy未経験者でもステップバイステップで試せるように構成しました。是非、お手元にAlloyをインストールして読み進めてください。環境はAlloy 5.1.0を想定しています。 https://github.com/AlloyTools/org.alloytools.alloy/release

    形式手法でデータ構造を記述・検査してみよう:Alloy編 - DeNA Testing Blog
  • Unityプロジェクトのディレクトリ構成と .gitignore - やらなイカ?

    Twitterで話題に上がっていたので、自分なりのやり方を。 ディレクトリ構成 Assets/下 自分で作るものはAssets/下にフォルダを作り、そこにまとめています。 Assets └── MY_PROJECT_NAME ├── Materials ├── Prefabs ├── Scenes ├── Scripts │ ├── Editor │ └── Runtime ├── Tests │ ├── Editor │ └── Runtime └── etc... "Runtime" のところは、規模が大きければ機能やレイヤごとに分けたりします*1。 スクリプトを置くフォルダおよび直下のAssembly Definition File (.asmdef)を作ってくれるエディタ拡張を公開しました。 これを使うと簡単にセットアップできます。[2021.5.7追記] github.com A

    Unityプロジェクトのディレクトリ構成と .gitignore - やらなイカ?
  • DroidKaigi 2020発表動画公開記念:RobolectricでUIテストを動かすのに必要なことのまとめ - DeNA Testing Blog

    こんにちは。SWETグループの外山(@sumio_tym)です。 先日、DroidKaigi 2020で発表予定だったセッション「Robolectricの限界を理解してUIテストを高速に実行しよう」 の動画がYouTubeのDroidKaigiチャンネルで公開されました。 新型コロナウイルスの影響でDroidKaigi 2020が中止になってしまったのは残念でしたが、 発表したかった内容を皆さんに伝えることができて、とても嬉しいです。 発表スライドはこちらです。 合わせてサンプルコードも公開していますので、よろしければご覧ください。 さて、記事では「RobolectricでもUIテストを動かしてみたいけど・・・動画を見る時間がない!」という方に向けて、 ぜひ押さえておきたいポイントを厳選してお伝えします1。 試してみる前に知っておきたいポイント テストがすぐ書ける環境を構築する 工夫が必

    DroidKaigi 2020発表動画公開記念:RobolectricでUIテストを動かすのに必要なことのまとめ - DeNA Testing Blog
  • ゼロから学んだ形式手法 - DeNA Testing Blog

    2020年1月に入社し、SWETの仕様分析サポートチームに加わったtakasek(@takasek)です。 仕様分析サポートチームでは、社内のプロダクト開発に対する形式手法の活用可能性を模索しています。当ブログでも、継続的に形式手法に関する情報発信をしています(形式手法 カテゴリーの記事一覧)。 この記事では、加入3か月を経てようやく形式手法の輪郭が掴めてきた私の視点から、学習前後での理解の変化について振り返ります。想定読者として学習前の私と近い属性——すなわちコンピュータサイエンスや数学の専門教育を受けておらず、主に現場での実務と自習に頼ってきたソフトウェアエンジニアを想定しています。 形式手法を学ぶ前の認識と疑問 ソフトウェアエンジニアとしての私の一番の興味関心は設計手法です。設計は、なんらかの解決したい問題に対して、ある一面を切り取った構造(モデル)を与え、そのモデルを解決の機構に落

    ゼロから学んだ形式手法 - DeNA Testing Blog
  • Zoom爆撃と予防策についてまとめてみた - piyolog

    COVID-19のパンデミックを受け、教育機関や企業などでリモート会議(イベント)を導入する動きが強まり、Web会議サービスを提供するZoomでは(有料・無料併せた)会議参会者は昨年12月末の1000万人から3月には2億人を超える人数が利用しており、それに合わせて複数の問題も確認されています。ここではその中でZoom爆撃ともいわれるZoomミーティングを狙った荒らし行為についてまとめます。 Zoomを狙った荒らしの発生 Zoomで行われるミーティングで来参加を想定していない第三者が参加し行う荒らし行為(Zoombombing、Zoom爆撃)が発生している。 荒らし行為を通じてミーティングやイベント進行に支障が生じ、中断につながる恐れがある。 海外でZoomBombingによる被害報告が複数取り上げられている。公序良俗に反する内容(ポルノなど)を画面共有したり、ヘイトスピーチ等でチャットを

    Zoom爆撃と予防策についてまとめてみた - piyolog
  • Calabash-Androidでテストシナリオを作成する方法

    Calabash-Androidでテストシナリオを作成する方法:スマホ向け無料システムテスト自動化ツール(5)(1/5 ページ) 連載では、AndroidおよびiOSアプリ開発における、システムテストを自動化するツールを紹介していきます。今回は、Calabash-Androidのテストで必要になる、各種UIコンポーネントの特定・操作・検証方法を紹介し、ステップ定義の仕方やUIコンポーネントを調査するための「console」について解説します。

    Calabash-Androidでテストシナリオを作成する方法