オープンソースAWSエミュレータFlociの2026年8月アップデートまとめ。1.6.0/1.7.0で227コミットが入り、CloudFrontがS3/カスタムオリジンからの配信と署名付きURL検証に対応、AppSyncはGraphQLエンドポイントが動くようになったがリゾルバーは未実装(Phase 8待ち)。IAMはAWSマネージドポリシー1566件の名前解決に対応したが中身は全てAllow *で権限評価には使えない、アカウント間のDynamoDB/S3ストレージ分離バグが修正された等、実機検証を交えて報告している。
インプレス刊『現場のGoプログラミング 実プロジェクトで役立つイディオムとテスト』(Inanc Gumus著)の書誌情報。B5変型判464ページ、定価4,100円+税、発売予定日2026年9月9日。実プロジェクトで役立つGo言語のイディオムやテスト手法を扱う技術書。
New Relic SyntheticsのScripted Browserでメール送信型OTPを用いたMFAログインを自動監視する実装方法を解説。マルチタブ操作でGmail連携のGoogle Apps Script APIを別タブで開きOTPを取得、元タブに戻してログイン画面へ入力する仕組みを、GASコードとメインスクリプトの実装例とともに紹介している。認証なしAPI公開に伴うセキュリティリスクと対策にも言及。
回帰テストが緑でも守りたい処理を実際には検証できていないケースを、Go製OSSのglob処理の実例から解説する記事。テスト入力が本来の分岐より手前のサイズ制限で拒否され、対象ゲートを削除してもテストが成功し続ける「通るだけの回帰テスト」を発見。対策として、入力が対象経路へ到達することを明示的に検査する、性能の代理指標ではなく守りたい不変条件を直接検査する、意図的に分岐を壊して赤になるか確認するミューテーションテストの手法を紹介し、レビュー時のチェックリストも提示している。
Testcontainers上のPostgreSQLコンテナ内にスレッドごとのDatabaseを用意し、実DBを使ったテストを並列実行する基盤の設計事例。Schemaではなくデータベース単位で分離し、Migration済みTemplate DatabaseからCREATE DATABASE TEMPLATEで複製することでFlywayの実行を1回に抑え、テスト間のリセットはTRUNCATE+初期データ再投入(DROP&再作成より高速)を採用。pg_dumpで初期データを抽出する際のセッション設定混入やシーケンスのずれといった実装上のハマりどころも紹介している。
OOPカンファレンスでJochen Joswig氏が持続可能なテスト戦略を提案。不要なテストを排除し、fail-fastで早期に停止、モノレポではコード変更箇所に関連するテストのみ実行することを推奨。テストごとのエネルギー消費量を計測しオブザーバビリティに組み込む方法や、SonarQubeプラグインCreedengoなど静的解析ツールでのコード非効率検出も紹介。開発ライフサイクル初期に低忠実度プロトタイプでテストし無駄な機能開発を避けることや、古いハードウェアのサポート継続によるデバイス寿命延長にも言及している。
TerraformのAWSエミュレータFlociを使い、ECS+RDS構成で7種類のインフラ設定ミスがローカル検証できるか検証した記事。DBホスト名/ポート誤りや循環参照は検出できたが、セキュリティグループのingress不足、SSL必須設定、ルートテーブル誤り、IAMロール不足(ECS経由)、デッドロックは再現できなかった。エミュレータが再現するのはAPIレスポンス(コントロールプレーン)のみで、ネットワーク制御や料金等のデータプレーン・非機能面は再現されない。TrivyやCheckovなどの静的解析も既定ルールでは同様のケースを検出できず、terraform validateやカスタムポリシーの併用が有効と結論づけている。
「直近10件」を意図したSQLが ORDER BY target_date ASC LIMIT 10 と書かれていたため、実際には最古10件を返す逆向きのバグとなっていた事例。行数がLIMIT以下のうちは正しく見え、本番でデータが増えてから発症するため発見が遅れた。修正はサブクエリで「選ぶ向き(DESC LIMIT)」と「見せる向き(ASC)」を分離し、さらにORDER BYが全順序になるようタイブレーク列(business_day_id)を追加。回帰テストはLIMITより多い行数を投入し「最古が含まれないこと」まで検証する必要があると指摘している。
Goでレイヤードアーキテクチャを実践する連載の第16回。usecase層とhandler層を分離し、業務判断(入力検証・重複チェック)をusecaseに集約、handlerをHTTP翻訳役に専念させる。DI(依存性の注入)とGoのinterfaceの暗黙的実装を使い、main.goを配線専用にする設計を解説。偽物のrepositoryをinterface経由で注入することで、DBなしで業務ルールの単体テストが0.002秒で実行できることを実演し、テスト容易性をアーキテクチャで作り込む考え方を示す。
AIによるバグ調査は見立てが外れやすいため、使い捨てのPlaywright再現テストで原因を確定させる手法を紹介。①症状把握→②AIと原因を言語化(実装させない・丸めさせない・推測を事実化させない)→③実装セッションと切り離して再現コードを書かせる→④修正前に「落ちる」ことを確認して資料を事実化→⑤新セッションに資料だけ渡して修正→⑥確認後は再現コードを捨てスクショのみ残す、という6工程。再現条件が確定すると「このバグ直して」という指示の精度が飛躍的に上がる。最大の敵はflaky挙動で、踏んだ穴をAIに記録させ蓄積することで対処。画面に出ないロジック層のバグには適用できないという限界もある。
IaC検出ツールの精度をprecision/recallで定量評価する手法の紹介。ラベル付きフィクスチャ(bad.tf/good.tf/labels.json)を用意し、特にgood.tfに「一見あやしいが正常」な紛らわしいケース(443限定の全公開、社内レンジ向けSSH開放、暗号化済みgp3ボリューム、スコープされたIAMポリシー等)を仕込むことで誤検知(false positive)を検出可能にする。検出結果と正解を突き合わせてprecision/recallを算出し、しきい値割れでCIを失敗させる仕組み。
アンケート編集画面で自由に設定できる分岐条件や入力バリデーションは、個々には妥当でも組み合わせると矛盾が生じ、回答者がどう入力しても先に進めなくなることがある。総当たりでは組み合わせ数が膨大(20問5択で約95兆通り)で現実的でなく、ランダム試行でも「矛盾が存在しない」ことは証明できない。そこでSMTソルバZ3を用い、アンケート定義を整数・真偽値の制約式に翻訳して充足可能性を判定する手法を紹介。実例として、ページ表示条件と設問の合計値制約が食い違い、特定の回答パターンでは入力可能な値が存在しない(unsat)矛盾をZ3が反例付きで検出できることを示した。上限を決めずに式を書ける点がSATにはないSMTの利点で、既存のQA工程を置き換えるのではなく事前の当たり付けとして活用する使い方を提案している。
介護報酬算定エンジンの正確性を継続的に担保するため、QA担当者が持つ制度知識をテストケースとして資産化した事例。テストは内部実装ではなく入出力を見る結合テストとし、リファクタリング耐性を確保。QA担当者が使い慣れたGoogleスプレッドシートでテストケースを作成できるようにし、CSVエクスポート・変換・実行までをGitHub Actionsで自動化した。過去の報酬改定ルールに基づくテストも蓄積でき、法改正やリファクタリング時のデグレード検知に役立っている。一方でテストケース形式の変遷に伴う互換性維持の複雑化が課題として残る。