[{"data":1,"prerenderedAt":1684},["ShallowReactive",2],{"post-qase-test-management-tool":3},{"id":4,"title":5,"body":6,"date":1672,"description":1673,"extension":1674,"meta":1675,"navigation":574,"path":1680,"seo":1681,"stem":1682,"__hash__":1683},"blog\u002Fblog\u002Fqase-test-management-tool.md","Qaseでテスト管理をスプレッドシートから脱却する",{"type":7,"value":8,"toc":1635},"minimark",[9,13,17,52,56,66,71,103,107,112,115,119,122,127,144,148,151,188,311,315,318,332,335,339,342,350,354,357,362,368,372,375,380,420,425,457,461,464,470,474,477,483,487,490,495,532,537,543,547,551,812,816,955,1326,1330,1334,1337,1343,1346,1357,1361,1364,1370,1374,1377,1383,1387,1390,1396,1400,1499,1502,1506,1509,1514,1525,1529,1532,1537,1548,1552,1555,1560,1571,1574,1577,1603,1606,1609,1631],[10,11,12],"h2",{"id":12},"スプレッドシートでのテスト管理の課題",[14,15,16],"p",{},"多くのチームがスプレッドシートでテストケースを管理していますが、以下のような課題があります",[18,19,20,28,34,40,46],"ul",{},[21,22,23,27],"li",{},[24,25,26],"strong",{},"バージョン管理が困難",": 複数人で編集すると履歴追跡が難しい",[21,29,30,33],{},[24,31,32],{},"テスト結果の集計が手作業",": テスト進捗の可視化に時間がかかる",[21,35,36,39],{},[24,37,38],{},"品質のばらつき",": フォーマットが統一されず、属人化しやすい",[21,41,42,45],{},[24,43,44],{},"自動テストとの連携が困難",": 手動テストと自動テストの結果を統合しにくい",[21,47,48,51],{},[24,49,50],{},"検索性の低さ",": 過去のテストケースを探すのが大変",[10,53,55],{"id":54},"qaseとは","Qaseとは",[14,57,58,65],{},[59,60,64],"a",{"href":61,"rel":62},"https:\u002F\u002Fqase.io\u002F",[63],"nofollow","Qase","は、テストケース管理とテスト実行を一元管理できるクラウドベースのテスト管理ツールです。",[14,67,68],{},[24,69,70],{},"主な特徴",[18,72,73,79,85,91,97],{},[21,74,75,78],{},[24,76,77],{},"無料プラン",": 3ユーザーまで無料",[21,80,81,84],{},[24,82,83],{},"手動・自動テスト対応",": 両方のテスト結果を一元管理",[21,86,87,90],{},[24,88,89],{},"API連携",": CI\u002FCDパイプラインと統合可能",[21,92,93,96],{},[24,94,95],{},"エクスポート機能",": テスト計画・結果をCSV\u002FPDFでエクスポート",[21,98,99,102],{},[24,100,101],{},"テンプレート",": テストケースの品質を標準化",[10,104,106],{"id":105},"qaseを選んだ理由","Qaseを選んだ理由",[108,109,111],"h3",{"id":110},"_1-無料で始められる","1. 無料で始められる",[14,113,114],{},"3ユーザーまで無料で利用できるため、小〜中規模のチームでも導入しやすい。",[108,116,118],{"id":117},"_2-テストケースの標準化","2. テストケースの標準化",[14,120,121],{},"入力項目が整理されており、テストケースの品質を一定に保てる。",[14,123,124],{},[24,125,126],{},"標準項目",[18,128,129,132,135,138,141],{},[21,130,131],{},"Title（タイトル）",[21,133,134],{},"Severity（重大度）: Trivial \u002F Minor \u002F Normal \u002F Major \u002F Critical \u002F Blocker",[21,136,137],{},"Priority（優先度）: Low \u002F Medium \u002F High",[21,139,140],{},"Type（種類）: Functional \u002F Smoke \u002F Regression \u002F Security など",[21,142,143],{},"Automation Status（自動化状況）: Automated \u002F To be automated \u002F Not automated",[108,145,147],{"id":146},"_3-自動テストとの連携","3. 自動テストとの連携",[14,149,150],{},"APIを使ってCI\u002FCDパイプラインから自動的にテスト結果を反映できる。",[152,153,158],"pre",{"className":154,"code":155,"language":156,"meta":157,"style":157},"language-bash shiki shiki-themes github-light github-dark","# Qase Reporter for Jest\nnpm install -D jest-qase-reporter\n","bash","",[159,160,161,170],"code",{"__ignoreMap":157},[162,163,166],"span",{"class":164,"line":165},"line",1,[162,167,169],{"class":168},"sJ8bj","# Qase Reporter for Jest\n",[162,171,173,177,181,185],{"class":164,"line":172},2,[162,174,176],{"class":175},"sScJk","npm",[162,178,180],{"class":179},"sZZnC"," install",[162,182,184],{"class":183},"sj4cs"," -D",[162,186,187],{"class":179}," jest-qase-reporter\n",[152,189,193],{"className":190,"code":191,"language":192,"meta":157,"style":157},"language-javascript shiki shiki-themes github-light github-dark","\u002F\u002F jest.config.js\nmodule.exports = {\n  reporters: [\n    'default',\n    [\n      'jest-qase-reporter',\n      {\n        apiToken: process.env.QASE_API_TOKEN,\n        projectCode: 'YOUR_PROJECT_CODE',\n        runId: process.env.QASE_RUN_ID,\n      },\n    ],\n  ],\n}\n","javascript",[159,194,195,200,219,225,234,240,248,254,265,276,287,293,299,305],{"__ignoreMap":157},[162,196,197],{"class":164,"line":165},[162,198,199],{"class":168},"\u002F\u002F jest.config.js\n",[162,201,202,205,209,212,216],{"class":164,"line":172},[162,203,204],{"class":183},"module",[162,206,208],{"class":207},"sVt8B",".",[162,210,211],{"class":183},"exports",[162,213,215],{"class":214},"szBVR"," =",[162,217,218],{"class":207}," {\n",[162,220,222],{"class":164,"line":221},3,[162,223,224],{"class":207},"  reporters: [\n",[162,226,228,231],{"class":164,"line":227},4,[162,229,230],{"class":179},"    'default'",[162,232,233],{"class":207},",\n",[162,235,237],{"class":164,"line":236},5,[162,238,239],{"class":207},"    [\n",[162,241,243,246],{"class":164,"line":242},6,[162,244,245],{"class":179},"      'jest-qase-reporter'",[162,247,233],{"class":207},[162,249,251],{"class":164,"line":250},7,[162,252,253],{"class":207},"      {\n",[162,255,257,260,263],{"class":164,"line":256},8,[162,258,259],{"class":207},"        apiToken: process.env.",[162,261,262],{"class":183},"QASE_API_TOKEN",[162,264,233],{"class":207},[162,266,268,271,274],{"class":164,"line":267},9,[162,269,270],{"class":207},"        projectCode: ",[162,272,273],{"class":179},"'YOUR_PROJECT_CODE'",[162,275,233],{"class":207},[162,277,279,282,285],{"class":164,"line":278},10,[162,280,281],{"class":207},"        runId: process.env.",[162,283,284],{"class":183},"QASE_RUN_ID",[162,286,233],{"class":207},[162,288,290],{"class":164,"line":289},11,[162,291,292],{"class":207},"      },\n",[162,294,296],{"class":164,"line":295},12,[162,297,298],{"class":207},"    ],\n",[162,300,302],{"class":164,"line":301},13,[162,303,304],{"class":207},"  ],\n",[162,306,308],{"class":164,"line":307},14,[162,309,310],{"class":207},"}\n",[108,312,314],{"id":313},"_4-テスト結果の可視化","4. テスト結果の可視化",[14,316,317],{},"ダッシュボードでテストの進捗状況を一目で確認できる。",[18,319,320,323,326,329],{},[21,321,322],{},"全体の進捗率",[21,324,325],{},"Passed \u002F Failed \u002F Skipped の割合",[21,327,328],{},"重大度別の不具合数",[21,330,331],{},"テスト実行履歴",[10,333,334],{"id":334},"基本的な使い方",[108,336,338],{"id":337},"_1-プロジェクトの作成","1. プロジェクトの作成",[14,340,341],{},"新しいプロジェクトを作成します。",[152,343,348],{"className":344,"code":346,"language":347},[345],"language-text","Project Name: プロジェクト名（例: My Application）\nProject Code: 短縮コード（例: MA）※テストケースIDのプレフィックスになる\nDescription: プロジェクトの説明\nAccess Type: Private（推奨）\n","text",[159,349,346],{"__ignoreMap":157},[108,351,353],{"id":352},"_2-テストスイートの作成","2. テストスイートの作成",[14,355,356],{},"テストケースをグループ化するためのスイート（フォルダのようなもの）を作成します。",[14,358,359],{},[24,360,361],{},"階層構造の例",[152,363,366],{"className":364,"code":365,"language":347},[345],"📁 ユーザー管理\n  📁 ログイン\n  📁 ユーザー登録\n  📁 パスワードリセット\n📁 商品管理\n  📁 商品一覧\n  📁 商品詳細\n  📁 商品検索\n",[159,367,365],{"__ignoreMap":157},[108,369,371],{"id":370},"_3-テストケースの作成","3. テストケースの作成",[14,373,374],{},"テストケースを作成します。",[14,376,377],{},[24,378,379],{},"必須項目",[18,381,382,388,406],{},[21,383,384,387],{},[24,385,386],{},"Title",": テストケースの名前",[21,389,390,393,394],{},[24,391,392],{},"Steps",": テスト手順\n",[395,396,397,400,403],"ol",{},[21,398,399],{},"ログインページにアクセス",[21,401,402],{},"メールアドレスとパスワードを入力",[21,404,405],{},"ログインボタンをクリック",[21,407,408,411,412],{},[24,409,410],{},"Expected Result",": 期待される結果\n",[18,413,414,417],{},[21,415,416],{},"ダッシュボードに遷移する",[21,418,419],{},"ユーザー名が表示される",[14,421,422],{},[24,423,424],{},"オプション項目",[18,426,427,433,439,445,451],{},[21,428,429,432],{},[24,430,431],{},"Preconditions",": テスト実行前の条件（例: ユーザーが登録済み）",[21,434,435,438],{},[24,436,437],{},"Severity",": 重大度",[21,440,441,444],{},[24,442,443],{},"Priority",": 優先度",[21,446,447,450],{},[24,448,449],{},"Type",": テストタイプ",[21,452,453,456],{},[24,454,455],{},"Automation Status",": 自動化状況",[108,458,460],{"id":459},"_4-テスト計画の作成","4. テスト計画の作成",[14,462,463],{},"テスト計画（Test Plan）を作成して、どのテストケースを実行するか定義します。",[152,465,468],{"className":466,"code":467,"language":347},[345],"Plan Name: リリース v1.2.0 テスト計画\nDescription: v1.2.0リリースに向けたテスト\nTest Cases: 対象のテストケースを選択\n",[159,469,467],{"__ignoreMap":157},[108,471,473],{"id":472},"_5-テスト実行の作成","5. テスト実行の作成",[14,475,476],{},"テスト計画からテスト実行（Test Run）を作成します。",[152,478,481],{"className":479,"code":480,"language":347},[345],"Run Title: v1.2.0 第1回テスト実行\nEnvironment: Staging\nAssigned to: テスト担当者\n",[159,482,480],{"__ignoreMap":157},[108,484,486],{"id":485},"_6-テストの実行と結果記録","6. テストの実行と結果記録",[14,488,489],{},"各テストケースを実行し、結果を記録します。",[14,491,492],{},[24,493,494],{},"結果の種類",[18,496,497,504,511,518,525],{},[21,498,499,500,503],{},"✅ ",[24,501,502],{},"Passed",": テスト成功",[21,505,506,507,510],{},"❌ ",[24,508,509],{},"Failed",": テスト失敗",[21,512,513,514,517],{},"⏭️ ",[24,515,516],{},"Skipped",": スキップ",[21,519,520,521,524],{},"🚫 ",[24,522,523],{},"Blocked",": ブロックされた（依存関係により実行不可）",[21,526,527,528,531],{},"⚠️ ",[24,529,530],{},"Invalid",": 無効（テストケース自体に問題がある）",[14,533,534],{},[24,535,536],{},"コメント例",[152,538,541],{"className":539,"code":540,"language":347},[345],"結果: Failed\nコメント:\n- ログインボタンをクリック後、エラーメッセージが表示される\n- エラー内容: \"Invalid credentials\"\n- 再現手順:\n  1. メールアドレス: test@example.com\n  2. パスワード: Test1234\n  3. ログインボタンをクリック\n- 添付: スクリーンショット（error.png）\n",[159,542,540],{"__ignoreMap":157},[10,544,546],{"id":545},"cicdとの連携","CI\u002FCDとの連携",[108,548,550],{"id":549},"github-actionsとの統合例","GitHub Actionsとの統合例",[152,552,556],{"className":553,"code":554,"language":555,"meta":157,"style":157},"language-yaml shiki shiki-themes github-light github-dark","name: E2E Tests\n\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v3\n\n      - name: Setup Node\n        uses: actions\u002Fsetup-node@v3\n        with:\n          node-version: '18'\n\n      - name: Install dependencies\n        run: npm ci\n\n      - name: Run E2E tests\n        env:\n          QASE_API_TOKEN: ${{ secrets.QASE_API_TOKEN }}\n          QASE_PROJECT_CODE: MA\n          QASE_RUN_ID: ${{ github.event.number }}\n        run: npm run test:e2e\n","yaml",[159,557,558,570,576,584,591,605,612,622,626,633,640,650,657,670,674,686,697,705,716,721,733,744,749,761,769,780,791,802],{"__ignoreMap":157},[162,559,560,564,567],{"class":164,"line":165},[162,561,563],{"class":562},"s9eBZ","name",[162,565,566],{"class":207},": ",[162,568,569],{"class":179},"E2E Tests\n",[162,571,572],{"class":164,"line":172},[162,573,575],{"emptyLinePlaceholder":574},true,"\n",[162,577,578,581],{"class":164,"line":221},[162,579,580],{"class":183},"on",[162,582,583],{"class":207},":\n",[162,585,586,589],{"class":164,"line":227},[162,587,588],{"class":562},"  push",[162,590,583],{"class":207},[162,592,593,596,599,602],{"class":164,"line":236},[162,594,595],{"class":562},"    branches",[162,597,598],{"class":207},": [",[162,600,601],{"class":179},"main",[162,603,604],{"class":207},"]\n",[162,606,607,610],{"class":164,"line":242},[162,608,609],{"class":562},"  pull_request",[162,611,583],{"class":207},[162,613,614,616,618,620],{"class":164,"line":250},[162,615,595],{"class":562},[162,617,598],{"class":207},[162,619,601],{"class":179},[162,621,604],{"class":207},[162,623,624],{"class":164,"line":256},[162,625,575],{"emptyLinePlaceholder":574},[162,627,628,631],{"class":164,"line":267},[162,629,630],{"class":562},"jobs",[162,632,583],{"class":207},[162,634,635,638],{"class":164,"line":278},[162,636,637],{"class":562},"  test",[162,639,583],{"class":207},[162,641,642,645,647],{"class":164,"line":289},[162,643,644],{"class":562},"    runs-on",[162,646,566],{"class":207},[162,648,649],{"class":179},"ubuntu-latest\n",[162,651,652,655],{"class":164,"line":295},[162,653,654],{"class":562},"    steps",[162,656,583],{"class":207},[162,658,659,662,665,667],{"class":164,"line":301},[162,660,661],{"class":207},"      - ",[162,663,664],{"class":562},"uses",[162,666,566],{"class":207},[162,668,669],{"class":179},"actions\u002Fcheckout@v3\n",[162,671,672],{"class":164,"line":307},[162,673,575],{"emptyLinePlaceholder":574},[162,675,677,679,681,683],{"class":164,"line":676},15,[162,678,661],{"class":207},[162,680,563],{"class":562},[162,682,566],{"class":207},[162,684,685],{"class":179},"Setup Node\n",[162,687,689,692,694],{"class":164,"line":688},16,[162,690,691],{"class":562},"        uses",[162,693,566],{"class":207},[162,695,696],{"class":179},"actions\u002Fsetup-node@v3\n",[162,698,700,703],{"class":164,"line":699},17,[162,701,702],{"class":562},"        with",[162,704,583],{"class":207},[162,706,708,711,713],{"class":164,"line":707},18,[162,709,710],{"class":562},"          node-version",[162,712,566],{"class":207},[162,714,715],{"class":179},"'18'\n",[162,717,719],{"class":164,"line":718},19,[162,720,575],{"emptyLinePlaceholder":574},[162,722,724,726,728,730],{"class":164,"line":723},20,[162,725,661],{"class":207},[162,727,563],{"class":562},[162,729,566],{"class":207},[162,731,732],{"class":179},"Install dependencies\n",[162,734,736,739,741],{"class":164,"line":735},21,[162,737,738],{"class":562},"        run",[162,740,566],{"class":207},[162,742,743],{"class":179},"npm ci\n",[162,745,747],{"class":164,"line":746},22,[162,748,575],{"emptyLinePlaceholder":574},[162,750,752,754,756,758],{"class":164,"line":751},23,[162,753,661],{"class":207},[162,755,563],{"class":562},[162,757,566],{"class":207},[162,759,760],{"class":179},"Run E2E tests\n",[162,762,764,767],{"class":164,"line":763},24,[162,765,766],{"class":562},"        env",[162,768,583],{"class":207},[162,770,772,775,777],{"class":164,"line":771},25,[162,773,774],{"class":562},"          QASE_API_TOKEN",[162,776,566],{"class":207},[162,778,779],{"class":179},"${{ secrets.QASE_API_TOKEN }}\n",[162,781,783,786,788],{"class":164,"line":782},26,[162,784,785],{"class":562},"          QASE_PROJECT_CODE",[162,787,566],{"class":207},[162,789,790],{"class":179},"MA\n",[162,792,794,797,799],{"class":164,"line":793},27,[162,795,796],{"class":562},"          QASE_RUN_ID",[162,798,566],{"class":207},[162,800,801],{"class":179},"${{ github.event.number }}\n",[162,803,805,807,809],{"class":164,"line":804},28,[162,806,738],{"class":562},[162,808,566],{"class":207},[162,810,811],{"class":179},"npm run test:e2e\n",[108,813,815],{"id":814},"playwright-with-qase","Playwright with Qase",[152,817,821],{"className":818,"code":819,"language":820,"meta":157,"style":157},"language-typescript shiki shiki-themes github-light github-dark","\u002F\u002F playwright.config.ts\nimport { defineConfig } from '@playwright\u002Ftest'\n\nexport default defineConfig({\n  reporter: [\n    ['list'],\n    [\n      'playwright-qase-reporter',\n      {\n        apiToken: process.env.QASE_API_TOKEN,\n        projectCode: process.env.QASE_PROJECT_CODE,\n        runComplete: true,\n        basePath: 'https:\u002F\u002Fapi.qase.io\u002Fv1',\n        uploadAttachments: true,\n      },\n    ],\n  ],\n})\n","typescript",[159,822,823,828,842,846,860,865,876,880,887,891,899,909,919,929,938,942,946,950],{"__ignoreMap":157},[162,824,825],{"class":164,"line":165},[162,826,827],{"class":168},"\u002F\u002F playwright.config.ts\n",[162,829,830,833,836,839],{"class":164,"line":172},[162,831,832],{"class":214},"import",[162,834,835],{"class":207}," { defineConfig } ",[162,837,838],{"class":214},"from",[162,840,841],{"class":179}," '@playwright\u002Ftest'\n",[162,843,844],{"class":164,"line":221},[162,845,575],{"emptyLinePlaceholder":574},[162,847,848,851,854,857],{"class":164,"line":227},[162,849,850],{"class":214},"export",[162,852,853],{"class":214}," default",[162,855,856],{"class":175}," defineConfig",[162,858,859],{"class":207},"({\n",[162,861,862],{"class":164,"line":236},[162,863,864],{"class":207},"  reporter: [\n",[162,866,867,870,873],{"class":164,"line":242},[162,868,869],{"class":207},"    [",[162,871,872],{"class":179},"'list'",[162,874,875],{"class":207},"],\n",[162,877,878],{"class":164,"line":250},[162,879,239],{"class":207},[162,881,882,885],{"class":164,"line":256},[162,883,884],{"class":179},"      'playwright-qase-reporter'",[162,886,233],{"class":207},[162,888,889],{"class":164,"line":267},[162,890,253],{"class":207},[162,892,893,895,897],{"class":164,"line":278},[162,894,259],{"class":207},[162,896,262],{"class":183},[162,898,233],{"class":207},[162,900,901,904,907],{"class":164,"line":289},[162,902,903],{"class":207},"        projectCode: process.env.",[162,905,906],{"class":183},"QASE_PROJECT_CODE",[162,908,233],{"class":207},[162,910,911,914,917],{"class":164,"line":295},[162,912,913],{"class":207},"        runComplete: ",[162,915,916],{"class":183},"true",[162,918,233],{"class":207},[162,920,921,924,927],{"class":164,"line":301},[162,922,923],{"class":207},"        basePath: ",[162,925,926],{"class":179},"'https:\u002F\u002Fapi.qase.io\u002Fv1'",[162,928,233],{"class":207},[162,930,931,934,936],{"class":164,"line":307},[162,932,933],{"class":207},"        uploadAttachments: ",[162,935,916],{"class":183},[162,937,233],{"class":207},[162,939,940],{"class":164,"line":676},[162,941,292],{"class":207},[162,943,944],{"class":164,"line":688},[162,945,298],{"class":207},[162,947,948],{"class":164,"line":699},[162,949,304],{"class":207},[162,951,952],{"class":164,"line":707},[162,953,954],{"class":207},"})\n",[152,956,958],{"className":818,"code":957,"language":820,"meta":157,"style":157},"\u002F\u002F tests\u002Flogin.spec.ts\nimport { test, expect } from '@playwright\u002Ftest'\nimport { qase } from 'playwright-qase-reporter'\n\ntest.describe('Login', () => {\n  qase(1, test('successful login', async ({ page }) => {\n    await page.goto('\u002Flogin')\n    await page.fill('[name=\"email\"]', 'test@example.com')\n    await page.fill('[name=\"password\"]', 'password123')\n    await page.click('[type=\"submit\"]')\n\n    await expect(page).toHaveURL('\u002Fdashboard')\n    await expect(page.locator('.user-name')).toBeVisible()\n  }))\n\n  qase(2, test('failed login with invalid credentials', async ({ page }) => {\n    await page.goto('\u002Flogin')\n    await page.fill('[name=\"email\"]', 'invalid@example.com')\n    await page.fill('[name=\"password\"]', 'wrongpassword')\n    await page.click('[type=\"submit\"]')\n\n    await expect(page.locator('.error-message')).toContainText('Invalid credentials')\n  }))\n})\n",[159,959,960,965,976,988,992,1014,1054,1073,1094,1114,1130,1134,1154,1180,1185,1189,1221,1235,1254,1273,1287,1291,1318,1322],{"__ignoreMap":157},[162,961,962],{"class":164,"line":165},[162,963,964],{"class":168},"\u002F\u002F tests\u002Flogin.spec.ts\n",[162,966,967,969,972,974],{"class":164,"line":172},[162,968,832],{"class":214},[162,970,971],{"class":207}," { test, expect } ",[162,973,838],{"class":214},[162,975,841],{"class":179},[162,977,978,980,983,985],{"class":164,"line":221},[162,979,832],{"class":214},[162,981,982],{"class":207}," { qase } ",[162,984,838],{"class":214},[162,986,987],{"class":179}," 'playwright-qase-reporter'\n",[162,989,990],{"class":164,"line":227},[162,991,575],{"emptyLinePlaceholder":574},[162,993,994,997,1000,1003,1006,1009,1012],{"class":164,"line":236},[162,995,996],{"class":207},"test.",[162,998,999],{"class":175},"describe",[162,1001,1002],{"class":207},"(",[162,1004,1005],{"class":179},"'Login'",[162,1007,1008],{"class":207},", () ",[162,1010,1011],{"class":214},"=>",[162,1013,218],{"class":207},[162,1015,1016,1019,1021,1024,1027,1030,1032,1035,1037,1040,1043,1047,1050,1052],{"class":164,"line":242},[162,1017,1018],{"class":175},"  qase",[162,1020,1002],{"class":207},[162,1022,1023],{"class":183},"1",[162,1025,1026],{"class":207},", ",[162,1028,1029],{"class":175},"test",[162,1031,1002],{"class":207},[162,1033,1034],{"class":179},"'successful login'",[162,1036,1026],{"class":207},[162,1038,1039],{"class":214},"async",[162,1041,1042],{"class":207}," ({ ",[162,1044,1046],{"class":1045},"s4XuR","page",[162,1048,1049],{"class":207}," }) ",[162,1051,1011],{"class":214},[162,1053,218],{"class":207},[162,1055,1056,1059,1062,1065,1067,1070],{"class":164,"line":250},[162,1057,1058],{"class":214},"    await",[162,1060,1061],{"class":207}," page.",[162,1063,1064],{"class":175},"goto",[162,1066,1002],{"class":207},[162,1068,1069],{"class":179},"'\u002Flogin'",[162,1071,1072],{"class":207},")\n",[162,1074,1075,1077,1079,1082,1084,1087,1089,1092],{"class":164,"line":256},[162,1076,1058],{"class":214},[162,1078,1061],{"class":207},[162,1080,1081],{"class":175},"fill",[162,1083,1002],{"class":207},[162,1085,1086],{"class":179},"'[name=\"email\"]'",[162,1088,1026],{"class":207},[162,1090,1091],{"class":179},"'test@example.com'",[162,1093,1072],{"class":207},[162,1095,1096,1098,1100,1102,1104,1107,1109,1112],{"class":164,"line":267},[162,1097,1058],{"class":214},[162,1099,1061],{"class":207},[162,1101,1081],{"class":175},[162,1103,1002],{"class":207},[162,1105,1106],{"class":179},"'[name=\"password\"]'",[162,1108,1026],{"class":207},[162,1110,1111],{"class":179},"'password123'",[162,1113,1072],{"class":207},[162,1115,1116,1118,1120,1123,1125,1128],{"class":164,"line":278},[162,1117,1058],{"class":214},[162,1119,1061],{"class":207},[162,1121,1122],{"class":175},"click",[162,1124,1002],{"class":207},[162,1126,1127],{"class":179},"'[type=\"submit\"]'",[162,1129,1072],{"class":207},[162,1131,1132],{"class":164,"line":289},[162,1133,575],{"emptyLinePlaceholder":574},[162,1135,1136,1138,1141,1144,1147,1149,1152],{"class":164,"line":295},[162,1137,1058],{"class":214},[162,1139,1140],{"class":175}," expect",[162,1142,1143],{"class":207},"(page).",[162,1145,1146],{"class":175},"toHaveURL",[162,1148,1002],{"class":207},[162,1150,1151],{"class":179},"'\u002Fdashboard'",[162,1153,1072],{"class":207},[162,1155,1156,1158,1160,1163,1166,1168,1171,1174,1177],{"class":164,"line":301},[162,1157,1058],{"class":214},[162,1159,1140],{"class":175},[162,1161,1162],{"class":207},"(page.",[162,1164,1165],{"class":175},"locator",[162,1167,1002],{"class":207},[162,1169,1170],{"class":179},"'.user-name'",[162,1172,1173],{"class":207},")).",[162,1175,1176],{"class":175},"toBeVisible",[162,1178,1179],{"class":207},"()\n",[162,1181,1182],{"class":164,"line":307},[162,1183,1184],{"class":207},"  }))\n",[162,1186,1187],{"class":164,"line":676},[162,1188,575],{"emptyLinePlaceholder":574},[162,1190,1191,1193,1195,1198,1200,1202,1204,1207,1209,1211,1213,1215,1217,1219],{"class":164,"line":688},[162,1192,1018],{"class":175},[162,1194,1002],{"class":207},[162,1196,1197],{"class":183},"2",[162,1199,1026],{"class":207},[162,1201,1029],{"class":175},[162,1203,1002],{"class":207},[162,1205,1206],{"class":179},"'failed login with invalid credentials'",[162,1208,1026],{"class":207},[162,1210,1039],{"class":214},[162,1212,1042],{"class":207},[162,1214,1046],{"class":1045},[162,1216,1049],{"class":207},[162,1218,1011],{"class":214},[162,1220,218],{"class":207},[162,1222,1223,1225,1227,1229,1231,1233],{"class":164,"line":699},[162,1224,1058],{"class":214},[162,1226,1061],{"class":207},[162,1228,1064],{"class":175},[162,1230,1002],{"class":207},[162,1232,1069],{"class":179},[162,1234,1072],{"class":207},[162,1236,1237,1239,1241,1243,1245,1247,1249,1252],{"class":164,"line":707},[162,1238,1058],{"class":214},[162,1240,1061],{"class":207},[162,1242,1081],{"class":175},[162,1244,1002],{"class":207},[162,1246,1086],{"class":179},[162,1248,1026],{"class":207},[162,1250,1251],{"class":179},"'invalid@example.com'",[162,1253,1072],{"class":207},[162,1255,1256,1258,1260,1262,1264,1266,1268,1271],{"class":164,"line":718},[162,1257,1058],{"class":214},[162,1259,1061],{"class":207},[162,1261,1081],{"class":175},[162,1263,1002],{"class":207},[162,1265,1106],{"class":179},[162,1267,1026],{"class":207},[162,1269,1270],{"class":179},"'wrongpassword'",[162,1272,1072],{"class":207},[162,1274,1275,1277,1279,1281,1283,1285],{"class":164,"line":723},[162,1276,1058],{"class":214},[162,1278,1061],{"class":207},[162,1280,1122],{"class":175},[162,1282,1002],{"class":207},[162,1284,1127],{"class":179},[162,1286,1072],{"class":207},[162,1288,1289],{"class":164,"line":735},[162,1290,575],{"emptyLinePlaceholder":574},[162,1292,1293,1295,1297,1299,1301,1303,1306,1308,1311,1313,1316],{"class":164,"line":746},[162,1294,1058],{"class":214},[162,1296,1140],{"class":175},[162,1298,1162],{"class":207},[162,1300,1165],{"class":175},[162,1302,1002],{"class":207},[162,1304,1305],{"class":179},"'.error-message'",[162,1307,1173],{"class":207},[162,1309,1310],{"class":175},"toContainText",[162,1312,1002],{"class":207},[162,1314,1315],{"class":179},"'Invalid credentials'",[162,1317,1072],{"class":207},[162,1319,1320],{"class":164,"line":751},[162,1321,1184],{"class":207},[162,1323,1324],{"class":164,"line":763},[162,1325,954],{"class":207},[10,1327,1329],{"id":1328},"実践的な活用tips","実践的な活用Tips",[108,1331,1333],{"id":1332},"_1-テストケースのタグ付け","1. テストケースのタグ付け",[14,1335,1336],{},"タグを活用して、テストケースを柔軟に分類できます。",[152,1338,1341],{"className":1339,"code":1340,"language":347},[345],"Tags: #smoke, #critical, #api, #authentication\n",[159,1342,1340],{"__ignoreMap":157},[14,1344,1345],{},"フィルタリング例：",[18,1347,1348,1351,1354],{},[21,1349,1350],{},"スモークテストだけを実行",[21,1352,1353],{},"重要度の高いテストだけを選択",[21,1355,1356],{},"API関連のテストケースを検索",[108,1358,1360],{"id":1359},"_2-カスタムフィールドの活用","2. カスタムフィールドの活用",[14,1362,1363],{},"プロジェクト固有の情報を追加できます。",[152,1365,1368],{"className":1366,"code":1367,"language":347},[345],"Custom Fields:\n- Test Data Set: Dataset A\n- Browser: Chrome, Firefox, Safari\n- API Version: v2.0\n",[159,1369,1367],{"__ignoreMap":157},[108,1371,1373],{"id":1372},"_3-テストケースの再利用","3. テストケースの再利用",[14,1375,1376],{},"共通のテストケースをShared Stepsとして定義し、複数のテストケースで再利用できます。",[152,1378,1381],{"className":1379,"code":1380,"language":347},[345],"Shared Step: ログイン処理\n1. ログインページにアクセス\n2. 認証情報を入力\n3. ログインボタンをクリック\n4. ダッシュボードに遷移することを確認\n",[159,1382,1380],{"__ignoreMap":157},[108,1384,1386],{"id":1385},"_4-ミルストーンの設定","4. ミルストーンの設定",[14,1388,1389],{},"リリースやスプリントごとにミルストーンを設定し、テストケースを紐付けます。",[152,1391,1394],{"className":1392,"code":1393,"language":347},[345],"Milestones:\n- v1.0.0 (2024\u002F01\u002F15)\n- v1.1.0 (2024\u002F02\u002F15)\n- v2.0.0 (2024\u002F03\u002F31)\n",[159,1395,1393],{"__ignoreMap":157},[10,1397,1399],{"id":1398},"スプレッドシート-vs-qase","スプレッドシート vs Qase",[1401,1402,1403,1418],"table",{},[1404,1405,1406],"thead",{},[1407,1408,1409,1413,1416],"tr",{},[1410,1411,1412],"th",{},"項目",[1410,1414,1415],{},"スプレッドシート",[1410,1417,64],{},[1419,1420,1421,1433,1444,1455,1466,1477,1488],"tbody",{},[1407,1422,1423,1427,1430],{},[1424,1425,1426],"td",{},"初期コスト",[1424,1428,1429],{},"無料",[1424,1431,1432],{},"3ユーザーまで無料",[1407,1434,1435,1438,1441],{},[1424,1436,1437],{},"バージョン管理",[1424,1439,1440],{},"手動、履歴追跡が困難",[1424,1442,1443],{},"自動、変更履歴を完全追跡",[1407,1445,1446,1449,1452],{},[1424,1447,1448],{},"テスト結果の集計",[1424,1450,1451],{},"手作業、時間がかかる",[1424,1453,1454],{},"自動集計、リアルタイム更新",[1407,1456,1457,1460,1463],{},[1424,1458,1459],{},"自動テスト連携",[1424,1461,1462],{},"困難",[1424,1464,1465],{},"API連携で自動化可能",[1407,1467,1468,1471,1474],{},[1424,1469,1470],{},"検索性",[1424,1472,1473],{},"低い",[1424,1475,1476],{},"高度な検索・フィルタ機能",[1407,1478,1479,1482,1485],{},[1424,1480,1481],{},"テストケースの品質",[1424,1483,1484],{},"ばらつきあり",[1424,1486,1487],{},"テンプレートで標準化",[1407,1489,1490,1493,1496],{},[1424,1491,1492],{},"複数人での同時編集",[1424,1494,1495],{},"可能だが競合しやすい",[1424,1497,1498],{},"競合なく同時編集可能",[10,1500,1501],{"id":1501},"導入時の注意点",[108,1503,1505],{"id":1504},"_1-既存テストケースの移行","1. 既存テストケースの移行",[14,1507,1508],{},"スプレッドシートからQaseへの移行には時間がかかります。",[14,1510,1511],{},[24,1512,1513],{},"推奨アプローチ",[395,1515,1516,1519,1522],{},[21,1517,1518],{},"重要度の高いテストケースから移行",[21,1520,1521],{},"新しいテストケースはQaseで作成",[21,1523,1524],{},"段階的に移行を進める",[108,1526,1528],{"id":1527},"_2-チームへの浸透","2. チームへの浸透",[14,1530,1531],{},"新しいツールの導入には学習コストがあります。",[14,1533,1534],{},[24,1535,1536],{},"対策",[18,1538,1539,1542,1545],{},[21,1540,1541],{},"導入説明会を実施",[21,1543,1544],{},"マニュアルを作成",[21,1546,1547],{},"スモールスタートで効果を実感してもらう",[108,1549,1551],{"id":1550},"_3-自動化の計画","3. 自動化の計画",[14,1553,1554],{},"すぐにすべてを自動化する必要はありません。",[14,1556,1557],{},[24,1558,1559],{},"段階的なアプローチ",[395,1561,1562,1565,1568],{},[21,1563,1564],{},"手動テストをQaseで管理",[21,1566,1567],{},"重要なテストケースから自動化",[21,1569,1570],{},"CI\u002FCDと連携",[10,1572,1573],{"id":1573},"まとめ",[14,1575,1576],{},"Qaseを導入することで：",[18,1578,1579,1585,1591,1597],{},[21,1580,1581,1584],{},[24,1582,1583],{},"テスト管理の効率化",": テストケースの作成・実行・結果集計が容易に",[21,1586,1587,1590],{},[24,1588,1589],{},"品質の標準化",": テンプレートによりテストケースの品質を一定に保つ",[21,1592,1593,1596],{},[24,1594,1595],{},"自動化の促進",": CI\u002FCDとの連携で自動テストを効果的に管理",[21,1598,1599,1602],{},[24,1600,1601],{},"可視化の向上",": ダッシュボードでテストの進捗を一目で把握",[14,1604,1605],{},"スプレッドシートでのテスト管理に限界を感じているチームには、Qaseの導入を強くおすすめします。",[108,1607,1608],{"id":1608},"参考リンク",[18,1610,1611,1617,1624],{},[21,1612,1613],{},[59,1614,1616],{"href":61,"rel":1615},[63],"Qase 公式サイト",[21,1618,1619],{},[59,1620,1623],{"href":1621,"rel":1622},"https:\u002F\u002Fhelp.qase.io\u002F",[63],"Qase Documentation",[21,1625,1626],{},[59,1627,1630],{"href":1628,"rel":1629},"https:\u002F\u002Fgithub.com\u002Fqase-tms",[63],"Qase Reporters",[1632,1633,1634],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":157,"searchDepth":172,"depth":172,"links":1636},[1637,1638,1639,1645,1653,1657,1663,1664,1669],{"id":12,"depth":172,"text":12},{"id":54,"depth":172,"text":55},{"id":105,"depth":172,"text":106,"children":1640},[1641,1642,1643,1644],{"id":110,"depth":221,"text":111},{"id":117,"depth":221,"text":118},{"id":146,"depth":221,"text":147},{"id":313,"depth":221,"text":314},{"id":334,"depth":172,"text":334,"children":1646},[1647,1648,1649,1650,1651,1652],{"id":337,"depth":221,"text":338},{"id":352,"depth":221,"text":353},{"id":370,"depth":221,"text":371},{"id":459,"depth":221,"text":460},{"id":472,"depth":221,"text":473},{"id":485,"depth":221,"text":486},{"id":545,"depth":172,"text":546,"children":1654},[1655,1656],{"id":549,"depth":221,"text":550},{"id":814,"depth":221,"text":815},{"id":1328,"depth":172,"text":1329,"children":1658},[1659,1660,1661,1662],{"id":1332,"depth":221,"text":1333},{"id":1359,"depth":221,"text":1360},{"id":1372,"depth":221,"text":1373},{"id":1385,"depth":221,"text":1386},{"id":1398,"depth":172,"text":1399},{"id":1501,"depth":172,"text":1501,"children":1665},[1666,1667,1668],{"id":1504,"depth":221,"text":1505},{"id":1527,"depth":221,"text":1528},{"id":1550,"depth":221,"text":1551},{"id":1573,"depth":172,"text":1573,"children":1670},[1671],{"id":1608,"depth":221,"text":1608},"2022-02-20","テスト管理ツールQaseを導入して、スプレッドシートによるテスト管理から脱却した経験と、その導入方法・活用方法について解説します。","md",{"tags":1676},[1677,1678,1679],"testing","test-management","qase","\u002Fblog\u002Fqase-test-management-tool",{"title":5,"description":1673},"blog\u002Fqase-test-management-tool","HeLBalnmLrwL6EmcEM1LIcmzWA2OQjk_vPvNUDsXVb0",1773664054085]