やらなイカ?

たぶん、iOS/Androidアプリの開発・テスト関係。

Testing

メンテナンス不要でチュートリアルを突破するAnjinのオートパイロット設定

Anjin v1.3で追加された機能を使って、スマートフォンゲームによくあるアウトゲームのチュートリアル(次に押せるボタンが限定される系)を自動で突破するオートパイロット設定の方法を紹介します。 Anjinパッケージのインストール Anjinパッケージ(com.den…

UIテスト向けのGameObject検索API

Unity製プロジェクトにおいて、(ユニットテストでなく)UIを操作して動作を確認するテストを書くことがあります。 uGUIコンポーネントの操作に関しては『Unityバイブル R5夏号』の SECTION 06「ゲームプレイの自動テスト」の中で「アウトゲームのテスト」と…

GitHub CopilotとのペアプロTDDでつくるローグライクRPG

GitHub Copilotはそのまま使っても便利ですが、その特性を活かす共同作業の形として「ペアプロTDD」がお勧めです。 実際にCopilotとのペアプロTDDで「ローグライクRPG」を開発していく過程を紹介する同人誌を、 コミックマーケット103の2日目(日曜)東U44b…

自動テストにおける「目視確認」をポジティブにこなす魔法

本記事はソフトウェアテスト Advent Calendar 2023 2日目の記事です。 自動テストを書いていて、テストコードで検証目的を達成できず「目視で確認」とするのは負けた気持ちになりますし、テストを実行するオペレーターやコントリビューターのモチベーション…

Unity Test Frameworkで利用できるカスタム属性の実装方法

Unity Test Framework および NUnit では、テストコードに付与できるさまざまな属性(attribute)が提供されています。 また拡張ポイントであるインターフェイスを実装することで、プロジェクト独自のカスタム属性を定義してテストコードで使うこともできま…

テスト自動化で大切なことはTAROMANが教えてくれた

テスト自動化のノウハウ・ベストプラクティスを岡本太郎の言葉で紐解く、そんな同人誌をコミックマーケット102の2日目(日曜)西お40b「いか小屋」で頒布します。 想定読者 テスト自動化エンジニア及びSET 自動テストの導入を検討しているプロジェクトのオー…

Unityバイブル R5夏号

8月29日に発売される『Unityバイブル R5夏号』の予約受付中です。Amazonに書影も出ました。 Unityバイブル R5夏号作者:室星 亮太,細田 翔,山本 剛史,小林 慶祐,長谷川 孝二,遠藤 大介,矢部 喜久,kakunpc,notargs,角 真宇ボーンデジタルAmazon 鈍器とか質量兵…

PlayModeWindowでGameビューの解像度を指定する

PlayModeWindowは、Unity 2022.2で追加されたクラスです。 従来、UnityエディターのGameビューをスクリプトから操作するにはリフレクションによる非公開APIの使用が必要でした。 Unity 2022.2からは、PlayModeWindowクラスの静的メソッドで操作できます。 Pl…

バッチモードでUnityを実行するときの制限事項と回避方法

本記事は、拙著『Unity Test Framework完全攻略ガイド 統合テスト編』の付録Bから抜粋したものです。 バッチモードとは バッチモードとは、Unityエディターをコマンドラインから起動するときに -batchmode オプションを付けることでヘッドレス動作するモード…

Unity Test Framework完全攻略ガイド 統合テスト編

Unityの標準テストフレームワークであるUnity Test Frameworkパッケージによる統合テスト(高結合度テスト)の解説本を技術書典14で頒布しています。 想定読者 UnityでC#スクリプトを書けるレベルのソフトウェアエンジニア(プログラマー)を想定しています…

UPMパッケージのテストワークフロー事例

自作UPM (Unity Package Manager)パッケージをGitHub Actions上でテストするためのワークフローが確立できたので紹介します。 前提とするのは、リポジトリのルートがパッケージのルートディレクトリである(package.jsonがある)構成です。 Unityプロジェ…

Unity Test Frameworkの非同期テストで できること/ できないこと

Unity公式のユニットテストレームワークであるUnity Test Frameworkパッケージのバージョン1.3では、非同期テスト(以下Asyncテスト)がサポートされました。 改めて、できること/ できないことを確認してまとめました。 できること 非同期(async)メソッド…

UnityTestがWebGL Playerで実行できるようになっていた

Unityの標準テストフレームワークであるUnity Test Frameworkパッケージでは、非同期のテストをコルーチン様式で書くことのできる UnityTest 属性が提供されています。 この UnityTest 属性にはいくつか制限事項があり、WebGL Playerで実行できないことは公…

Unity 2021.2未満でも動作するRoslyn Analyzerプロジェクト

Unity 2020.2から制限付きながらRoslynアナライザが動作するようになり、その後、Unity 2021.1.2で実用段階に行き着いたことは以前ブロク記事で紹介しました。 www.nowsprinting.com しかし、この時点でUnityエディター上で動作しない*1アナライザがありまし…

Unity Automated QAのInput Systemサポートによる自動テスト

Unity Automated QAパッケージのRecorded Playback機能は、デフォルトではuGUI操作を記録・再生します。 しかし限定的ですが「Input Systemサポート」も提供されており、以下の操作に限り動作させることができ(ると書かれてい)ます。 UnityEngine.Input(…

Unity Test Framework learning materialsをやってみた

Unity Test Frameworkパッケージのバージョン1.3では、マニュアルの中にUnity Test Framework learning materialsというドキュメントが追加され、またそのサンプルコードがパッケージのSamplesに含まれるようになりました。 ドキュメントは、Unity Test Fram…

Unity Test Framework v1.3で非同期テスト

Unity公式のユニットテストレームワークであるUnity Test Frameworkパッケージのバージョン1.3がリリースされました。 v1.2はスキップされ、v2.0での実装を予定されていた非同期テストのサポートが実装されています。 アップグレード方法 Package Managerウ…

Unity Test Framework完全攻略ガイド 第2版

Unityの標準テストフレームワークであるUnity Test Frameworkパッケージの解説本をコミックマーケット100の1日目(土曜日)西そ06b*1「いか小屋」で頒布します。 昨年の技術書典11で頒布した第1版をベースに、テストダブルやテスト技法に関するセクションな…

Unity x WebGLのテストTips

今週は、Unity 1週間ゲームジャム 第22回が開催されています。 今回のお題は「そろえる」とのことで、何かをそろえたら消えて得点が入るような振る舞いの自動テストを書きたくなる方もいるのではないでしょうか。 Unity 1週間ゲームジャムの投稿先であるフリ…

diff-pdfでPDFファイルの視覚的差分を取るGitHub Action

diff-pdfは、オープンソースのPDFファイル比較ツールです。 これをGitHub Actionsワークフローから使用するためのDockerイメージ及びActionを作りましたので紹介します。 github.com diff-pdfには、指定するオプションによって大きく2通りの用途があります。…

Unity Test Framework v2.0ファーストインプレッション

Unity公式のユニットテストレームワークであるUnity Test Frameworkのバージョン2.0がプレリリースされたので早速触ってみました。 Unity 2022.2からデフォルトバージョンに採用される予定で、現在フォーラムでフィードバックを受け付けています。 前提Unity…

Unity Automated QA攻略ガイド

UnityのUIテスト補助ライブラリであるAutomated QAパッケージの解説本を、 コミックマーケット99の2日目(金曜日)東ト38b*1「いか小屋」で頒布します。 Automated QAパッケージは、今年4月にアルファ版としてv0.2.0がリリースされた後もバージョンアップが…

メソッド分割の意義とTips

この記事は DeNA Advent Calendar 2021 16日目の記事です。 ユニットテストを書こうとしたとき、テスト対象のクラスやメソッドが大きく複雑なため断念した経験は誰しもあるのではないでしょうか。 ひとつのメソッドや関数に様々な処理・責務を持たせてしまう…

カスタムRoslyn AnalyzerをUPMパッケージとして配布する

Unity 2020.2でRoslynアナライザによる静的解析を行えるようになりましたが*1、NuPkgやDLLで配布してUnityプロジェクトに導入するのはやや面倒です。 そこで、アナライザをUnity Package Manager (UPM) パッケージとして配布する方法を紹介します。アナライ…

Unity Test Framework完全攻略ガイド

[2022/8/10] コミックマーケット100で第2版を頒布します。こちらの記事を参照してください www.nowsprinting.com Unityの標準テストフレームワークであるUnity Test Frameworkパッケージ*1の解説本を技術書典11向けに上梓しました。 ギリギリ審査が通って閉…

Unity Automated QAのRecorded Testing機能 トラブルシュート

Unity Automated QA パッケージのRecorded Testing機能を試していて遭遇したトラブルと解消方法をまとめます。 バージョンは 0.2.0-preview.3 および 0.3.0-preview.8*1 で確認しています。 Recorded Testing機能とは、UnityエディタのPlay modeでuGUIの操作…

Unity Automated QA雑感

Unity Automated QA パッケージが公開されました。 まだアルファリリース (0.2.0-preview.3) ですが、少し触ってみたメモ。 [12/26追記]v0.8.1対応の『Unity Automated QA攻略ガイド』をコミックマーケット99で頒布します。詳しくはこちらの記事を参照して…

Unity 2020.2時点のRoslyn Analyzerサポート状況まとめ

Unity 2020.2でRoslynアナライザによる静的解析が動作するようになりました。しかし、まだ色々と制限があるようなので現時点のサポート状況を検証してまとめてみました。 検証に使用したプロジェクト も公開していますので、認識違い等あれば教えていただる…

『ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方』レビュー

昨日発売された『ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方』、ざっくりと読んだので簡単にレビューします。 ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方作者:高橋 …

JetBrains ReSharper Command Line Tools 2019.3でコードインスペクションを実行する

JetBrains製のC# IDEであるRiderにあるコードインスペクション機能を、そのままコマンドラインで実行できるツールがReSharper Command Line Toolsとして提供されています。 ReSharper Command Line Toolsは、これまでWindows版しかサポートされていませんで…