Zennの「Test」のフィード
フィード

「事業継続を支える自動テストの考え方」──Autify末村さんをお招きして勉強会を開催しました
Zennの「Test」のフィード
はじめに レバテック開発部の江間です。 現在、レバテック開発部では自動E2EテストにAutifyを活用しています。 そのご縁で、オーティファイ株式会社のQuality Evangelistであり、『テスト自動化実践ガイド』の著者でもある末村拓也さんにご登壇いただきました。 講演のテーマは「事業継続を支える自動テストの考え方」です。 https://x.com/tsueeemura 本記事では、当日の講演の内容をかいつまんでご紹介します。 スライドには載っていない話や、印象的だったフレーズも交えながら、講演の全体像が伝わるようにまとめてみました。 開催経緯 半年ほど前、部内でのAu...
10時間前

expected "spy" to be called 1 times, but got 2 times エラーの対処法
Zennの「Test」のフィード
環境 テストフレームワーク: Vitest モックライブラリ: vi.mock を使用 テストランナー: Vitest が提供する test 関数 モジュールのモック: vi.mock を使用して対象モジュールをモック化 モック関数の管理: vi.clearAllMocks() を使用してモック関数の呼び出し履歴をリセット 概要 テストを実行している際に、以下のようなエラーに遭遇することがあります。 expected "spy" to be called 1 times, but got 2 times このエラーは、モック関数(spy)が期待された回数(例: 1回)よりも多...
2日前

QAエンジニアである私の「できたらいいな」を「できる」に変えてくれるCursorエディタ
55

Zennの「Test」のフィード
はじめに 「このコードどう書けばいいんだろう…」 QAエンジニアとして長年働く中で、私はこの壁に何度も直面してきました。 私は、QAエンジニアのコーディングスキルは「必須」ではなく「あれば業務の助けになる」というNice to haveなスキルとして捉えていました。 しかし、私の経験では、リグレッションテストを自動化するという文脈においてはQAエンジニアやSET(Software Engineer in Test)エンジニアが中心となってE2Eテストのシステム構築、テスト作成、メンテナンスを行う場合が多くありました。 ところが、E2Eテストのシステムを適切に運用し、メンバーに広めてい...
2日前

Java | JPA | トランザクションテスト
Zennの「Test」のフィード
JPA(Java Persistence API)を使用したトランザクションのテストを行う際のベストプラクティス これらのベストプラクティスを遵守することで、JPAを使用したトランザクションのテストがより効果的かつ信頼性の高いものになる。 1. テスト環境の設定 インメモリデータベースの使用: H2やHSQLDBなどのインメモリデータベースを使用することで、テストの実行が高速になり、環境のセットアップが簡単になる。 テスト用のプロファイル: Springなどのフレームワークを使用している場合、テスト用のプロファイルを設定し、テスト専用の設定を管理する。 2. トランザ...
3日前

Everyday Railsまとめ
Zennの「Test」のフィード
はじめに RSpecを体系的に学ぶためにEveryday Rails - RSpecによるRailsテスト入門の書籍から業務で使用している項目を抜粋してまとめた記事になります。 私の会社ではGraphQL Rubyを採用しておりこの記事では モデルスペック を中心に取り上げ、以下のような理由から コントローラーやAPI、システムスペック についての解説は割愛しています。 GraphQLでは GraphqlController のみを使用しており、一般的なコントローラーは存在しないため、テスト対象外としています。 エンドポイントが1つ(/graphql)に集約されるため、REST A...
3日前

Firebase Admin SDK を emulator に向ける
Zennの「Test」のフィード
はじめに フロント側だけでなく、バックエンドでもFirebaseを利用しており 同じEmulatorをみるようにした話です。 バックエンドで利用するFirebase 公式よりfirebase-adminというSDKが用意されているのでこちらを利用する https://firebase.google.com/docs/admin/setup?hl=ja ※フロントエンドで利用しているfirebaseはサーバー側での実行ができない認識 firebase-adminの設定 firebase-adminを利用するには、firebaseのプロジェクトとFirebase Admin S...
4日前

LLMを活用したスマートコントラクトの機能的バグ検出 ~PROMFuzzが切り開く新たな自動解析の地平~
Zennの「Test」のフィード
LLMを活用したスマートコントラクトの機能的バグ検出 ~PROMFuzzが切り開く新たな自動解析の地平~ この記事は以下の論文をもとに書かれています。 https://arxiv.org/abs/2503.23718v1 TL;DR スマートコントラクトの機能的バグを検出するために、LLM(大規模言語モデル)を活用した新しい自動化システム「PROMFuzz」が開発された。このシステムは二重エージェント戦略と不変条件チェッカー生成を組み合わせ、既存手法と比較して50%以上高い検出精度を実現。実世界のDeFiプロジェクトで30個のゼロデイバグを発見し、182億ドル相当の資産を保護する...
7日前

【Flutter】カバレッジ測定対象外のファイルもカバレッジレポートに含めたい
Zennの「Test」のフィード
はじめに お馴染みのflutter test --coverage コマンド。 デフォルトでは、test/配下のテストコードが実行された際に、直接または間接的に実行されたコードがカバレッジ計測の対象となります。 例えば、 import 記載のファイルに対してのテストコードが一切書いていない場合、カバレッジは 0%となります。 import 'package:hoge/utils/sample1.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { // import されているファイルに対し...
7日前

【Go】非同期処理のテストコードの書き方とsynctest入門
Zennの「Test」のフィード
はじめに こんにちは!e-dashのプロダクト開発部所属の高尾です。 Goの大きな特徴の1つとして、ゴルーチンを使った並行処理・非同期処理の実装の容易さが挙げられますよね。 go キーワードを使うだけで簡単に非同期処理を実装できる一方で、その非同期処理を含むコードのテストには独特の難しさがあります。 先日、非同期処理を含むコードのテストを書いていた際に、非同期処理が正常に完了しているかを検証したいケースがありました。 調べてみると意外にも情報が少なかったため、本記事では私なりの「非同期処理の完了検証方法」をご紹介します。 また、Go1.24において、非同期・並行テストをより簡単に実現...
8日前

フロントエンド開発でコードレビューがQA化する問題の解決考案
Zennの「Test」のフィード
この記事では、主にフロントエンド開発周辺におけるコードレビューで起きやすい問題への取り組みを考案してみました。 はじめに:フロントエンド開発のジレンマ 「コードレビューでUIの詳細な再調整が入る...」 「テストの代わりにPRで初めて動作確認している...」 「PR中にUI実装の不整合が発覚し、素材の入れ替えが発生する...」 フロントエンド開発においてコードレビューがQA化する問題は、開発速度の低下とチームメンバーの疲弊を引き起こします。 本記事では、React/Vue等のモダンなフロントエンド環境における具体的な解決策を、実践的なコード例を交えて解説します。 セルフチェック ...
8日前

JaSST '25 Tokyo に協賛しました
Zennの「Test」のフィード
こんにちは、Engineer Enablerを担当している三木です。 ナレッジワークにおける技術ブランディング活動全般を担当しています。 2025年3月27日-28日にTODAホール&カンファレンス東京にて開催された「JaSSTソフトウェアテストシンポジウム2025東京」(JaSST'25 Tokyo)に、ナレッジワークはシルバースポンサーとして協賛しました。ナレッジワークとして、JaSSTへの協賛は初となります。 JaSSTソフトウェアテストシンポジウム2025東京 公式サイト JaSSTは2003年から開催している日本最大級のソフトウェアテストのシンポジウムであり、今回はオフライン...
9日前

test
Zennの「Test」のフィード
def process_lists(*lists): valid_lists = [lst for lst in lists if isinstance(lst, list)] # リストとして存在するもののみ取得 num_lists = len(valid_lists) # 有効なリストの数 if num_lists == 3: print("3つのリストに対する処理") elif num_lists == 2: print("2つのリストに対する処理") elif num_lists == 1: print("1つのリストに対する処理") else: ...
9日前

決定表テストと構造テストの関係性
Zennの「Test」のフィード
ソフトウェアテストの一つに決定表テスト(Decision Table)という手法があります。実務ではExcelで作成されるケースが多く、視覚的に分かりやすいため、ドメイン知識に習熟した非技術者でも扱いやすいのが特徴です。 一方で、実装されたコードの動作を確認するには、構造テスト(例えばユニットテストなど)が使われます。(もし構造テストについて詳しく知りたい場合、過去にソフトウェアテストのカバレッジ基準を順を追って理解する:Line Coverageから MC/DCまででまとめているものをご参照ください) 一見するとこの2つの手法は全く別物のように見えますが、同じロジックに対してなぜ異なる...
9日前

playwright-mcp × Cursor で BDD Testing
Zennの「Test」のフィード
はじめに playwright-mcp がリリースされて、さまざまなブラウザ操作が AI を通じて行えるようになりました。 さて、今回は playwright-mcp を使用した Behavior Driven Development (BDD) testing について便利そうだったので書いてみました。 playwright-mcp と Cursor IDE を使用すれば、1 行もテストコードを書かずに BDD Testing が可能になります。 BDDとは Behavior Driven Development(BDD)は、ソフトウェア開発手法の一つで、ビジネス要件をテスト...
10日前

Zenn-cliで、好きなファイル名と場所で管理したい!ハードリンクで解決?実験してみた
Zennの「Test」のフィード
Zenn CLI、サブディレクトリの記事でFront Matterエラー?なんで? Zenn と GitHub を連携させて記事を管理してるんだけど、なんか変なエラーが出たんだよね。 articles/Leaning-AI/20250328_001_simple-qa/20250328_001_simple-qa.md の FrontMatter が見つかりませんでした いやいや、ちゃんと Front Matter 書いてるって!なんで見つからないのさ? どうも Zenn CLIくんは、articles ディレクトリの 直下 にある <slug>.md っていうファイルし...
11日前

can you create playwright pom?
Zennの「Test」のフィード
Gemini2.0 Flash: Yes 自分: please create playwright pom (page object mapping) definition for https://www.google.com/ Gemini2.0 Flash: // google-page.ts import { Page, Locator } from '@playwright/test'; export class GooglePage { readonly page: Page; readonly searchInput: Locator; readonly sea...
12日前

【Go1.24】testing/synctestパッケージの使い方をめちゃくちゃ丁寧に説明してみた!
1

Zennの「Test」のフィード
導入 Go1.24 が 2025 年 2 月にリリースされました 🎉🎉🎉 型エイリアスがジェネリクスに対応したり、map の実装が Swiss Table になったりとさまざまな改善が行われました! 今回はこの中から、実験的に導入された testing/synctest パッケージについて紹介したいと思います! この記事では、testing/synctest で実装された 2 つの API を紹介しつつ、GoDoc に記載されている具体的な仕様についても触れたいと思っています。 めちゃくちゃ丁寧に説明していると思うので「testing/synctest パッケージがよくわからんな〜」...
13日前

有界網羅的ランダムプログラム生成 ~Solidityコンパイラテストの新手法~
Zennの「Test」のフィード
有界網羅的ランダムプログラム生成 ~Solidityコンパイラテストの新手法~ この記事は以下の論文をもとに書かれています。 https://arxiv.org/abs/2503.20332v1 TL;DR コンパイラのバグを効率的に発見するための新しい手法「有界網羅的ランダムプログラム生成」について解説します。この手法は、ランダムプログラム生成の柔軟性とテンプレートベースの手法の焦点を組み合わせ、特にSolidityコンパイラとアナライザのテストに効果的です。ERWINというツールとして実装され、既存のテスト手法では見つけられなかった23個の新しいバグを発見することに成功してい...
13日前

Neovim luaのテストを書こう。neotestで高速に修正🔁テストのサイクルを回す
1

Zennの「Test」のフィード
! 本記事はVim駅伝2025年3月28日の記事です。 前回はmikoto2000さんによるVim のマクロを使って気持ち良くなった話 - 表のデータを TS の enum にするでした。 はじめに 今回はNeovim luaのテストを書く方法を紹介します。 Lua製プラグインはもちろんのこと、dotfilesで便利関数を書いている人にも試してほしいです。 Neovimで初めてluaを書いた人も多いでしょうし、「正直luarocksとかよくわからないんだよなー」という方もいらっしゃることでしょう (自己紹介) 。 Lua製プラグインはNeovimだけで動くのだから、プラグインのテス...
13日前