ユーザー受け入れテスト (UAT): プロセス、チェックリスト、および実際の例

  1. ホーム
  2. ブログ
  3. ソフトウェアテスト

ソフトウェアテスト

ユーザー受け入れテスト (UAT): プロセス、チェックリスト、および実際の例

ソフトウェアはすべてのテストに合格しても、それを必要とするユーザーが失敗する可能性があります。 UAT は、実際のビジネス上の問題を解決しているかどうかの最終チェックです。誰が実行すべきか、どのように計画するか、いつ承認するかを学びます。

読了目安9分
ユーザー受け入れテスト (UAT): プロセス、チェックリスト、および実際の例

ポイント

  • ユーザー受け入れテストでは、実際のシナリオを使用して、ソフトウェアが実際のビジネス ニーズを満たしているかどうかを確認します。
  • ソフトウェアを構築したチームではなく、ビジネス ユーザーまたは顧客によって運営されます。
  • QAは「仕様通りに動作するか?」を問うのに対し、UATは「問題は解決するか?」を問う。
  • UAT の開始前に、開始基準、終了基準、および誰がサインオフするかについて合意します。

あるチームがすべての技術テストに合格した経費システムを納品すると、初日、財務チームは業務の大部分を占める複数通貨の請求を処理できないことに気づきました。何も「壊れて」いませんでしたが、使用できませんでした。 ユーザー受け入れテストは、リリース前にそのようなギャップを正確に把握するために存在します。

このガイドでは、UAT が他のテストとどのように異なるか、UAT を段階的に実行する方法、いつリリースするかを決定する方法について説明します。上記のシナリオと以下の例は例示的なものであり、プロセスはプロジェクトに合わせて調整する必要があります。

UATとは何ですか?

UAT は通常、リリース前の最終テスト段階であり、対象となるユーザーがソフトウェアが現実的な条件でそのジョブを実行できることを確認します。エンドユーザーテストまたは受け入れテストとも呼ばれます。これは、製品が安定していると予想される開発とシステム テストの後に行われます。

その目的は、すべてのバグを見つけることではありません。この段階までに、それらのほとんどはすでに消えているはずです。目的は、正しいものを構築したかどうかを検証することです。テスターは製品が仕様と一致していることを確認します。 UAT は、仕様と製品が実際にニーズを満たしていることを検証します。

UAT と QA テストの比較

アスペクト QAまたはシステムテスト UAT
主な質問 指定どおりに動作しますか? ビジネスニーズを満たしていますか?
出演者 テスターと QA エンジニア ビジネスユーザーまたは顧客
タイミング 開発中および開発後 発売直前
に基づいて 要件と設計 実際のビジネスワークフロー
フォーカス 欠陥、特殊なケース、統合 使いやすさと目的への適合性
技術的な知識 高いことが多い 必要ありません
結果 バグレポート 承認または拒否

UAT は他のテストに代わるものではありません。ユーザーが基本的なバグに遭遇し続ける場合は、ビルドの準備ができていないことになり、限られた時間を無駄にすることになります。これらの問題は、以前のテスト レベルおよび回帰テストに属します。

UAT を運営しているのは誰ですか?

役割 責任
エンドユーザー シナリオを実行してフィードバックを与える
プロダクトオーナーまたはビジネスアナリスト 範囲を定義し、シナリオを作成またはレビューします
UAT コーディネーターまたは QA リード セッションを計画し、テスターをサポートし、問題を追跡します
開発者 問題を修正し、技術的な質問に答えます
事業スポンサー 最終的なサインオフの決定を下します

今日実際に作業を行うテスターを選択してください。経験豊富なクレーム処理担当者は、マネージャーや代理人では決して見つけられない問題を発見します。新入社員は、専門家が気づかずに回避する混乱を招く手順を明らかにすることがよくあるため、さまざまな経験を含めます。また、UAT はフルワークロードでは成功できないため、マネージャーがそのために時間を確保できるようにしてください。

UATの種類

種類 チェック内容 例
ビジネスの受付 ビジネス目標を達成する スタッフが最初から最後まで実際の請求を完了します
アルファテスト 管理された環境での内部テスト スタッフが外部ユーザーよりも先に新しいアプリを試す
ベータテスト 実際の状況における実際の顧客 限定的なパブリック プレビュー
契約の承諾 合意された契約条件を満たしている クライアントが納品されたシステムを検証する
規制当局の承認 法的ルールまたはコンプライアンスルールを満たしている 医療または銀行の規則を確認する
運用受入 実稼働環境で実行する準備ができています バックアップ、監視、サポートのプロセス

7 段階の UAT プロセス

1. 範囲と目標を定義する

何が受け入れられ、何が範囲外なのか、そしてどのようなビジネス成果が重要なのかを決定します。例: 「財務スタッフは、サポートされている通貨で経費請求を提出、承認、支払いできます。」

2. 合格基準に同意する

成功とはどのようなものか、できればプロジェクトの開始 1 週間前ではなく開始時に、わかりやすい言葉で書き留めてください。曖昧な基準は後々の議論につながります。

3. テスターの選択と説明

実際のユーザーを選び、目的を説明し、フィードバックを記録する方法を示し、彼らが自分自身をテストされているのではなくソフトウェアをテストしていることを明確にします。何か間違いがあるのではないかと心配する人はたくさんいます。

4. 環境とデータを準備する

UAT 環境は、実用的な限り実稼働環境に似ている必要があります。現実的なデータを使用し、正しいユーザー ロールを設定し、電子メールなどの統合を確認します。本番データをコピーする場合は、まず個人情報をマスクしてください。テスターが壊れたビルドを見つけるために到着しないように、簡単なスモーク テストを実行します。

5. シナリオを書く

これらは、個々のボタンではなく実際のワークフローに基づいています。ソフトウェアではなく、仕事のように読む必要があります。 テスト ケースとテスト シナリオに関するガイドでは、どの程度の詳細が必要かについて説明しています。

6. テストを実行してフィードバックを収集する

助けてくれる人とセッションを実行します。問題をスクリーンショットとともに 1 か所に収集します。人々はスクリプトが予期しないことを試すため、自由に探索する時間を確保してください。 探索的テストは、これに役立つテクニックを提供します。

7. 修正、再テスト、サインオフ

フィードバックを優先順位付けし、重要なものを修正し、同じユーザーに修正を確認してもらいます。その後、正式な決定を記録します。

UAT テスト ケース

UAT テスト ケースは、技術者ではない人でも簡単に理解できるものでなければなりません。経費システムの例を次に示します。

ID:        UAT-012
Scenario:  Submit a foreign currency expense claim
User role: Sales employee
Before:    Logged in, with a USD receipt ready

Steps:
  1. Create a new expense claim
  2. Enter a client dinner of 80 USD and attach the receipt
  3. Submit the claim for approval

Expected:  The amount is converted to INR at the current rate
           The manager receives an approval request
           The claim shows as "Awaiting approval"

Result:    Pass / Fail
Comments:
Tester / Date:

ここでは技術的な詳細ではなく実際のタスクについて説明しており、コメントの余地があることに注意してください。これらのコメントは、「これは機能するが、そのボタンが見つからない」など、最も価値のある部分であることが判明することがよくあります。

ヒント: 少なくとも 1 人のユーザーがこれを直接または通話中に行うのを観察してください。人々は、混乱を招くソフトウェアを回避して作業しているにもかかわらず、それを決して報告しないことがよくあります。彼らが躊躇しているのを見ると、「パス」以上のことがわかります。

参入基準と退出基準

エントリー基準(すぐに始めることができます) 終了基準 (終了準備完了)
システムテストが完了しました すべての重要なシナリオが実行されました
未解決の重大なバグや重大なバグはありません 未解決の重大なバグはありません
環境もデータも準備完了 合意された合格率に達しました
シナリオの見直し 残りの問題については合意された計画がある
テスターは説明を受けており、対応可能です ビジネススポンサーが承認されました

これらは、より広範なソフトウェア テスト ライフ サイクルに適合します。事前に関係者と数値を設定してください。 「適切だと感じたときに決定します」と締め切りに追われて、急いで「はい」となってしまいがちです。

フィードバックの処理

UAT フィードバックはさまざまなものが混在しており、すべてがバグというわけではありません。カテゴリに分類します。

種類 例 いつもの行動
欠陥 合計の計算が間違っている 重大度に基づいて修正
要件を満たしていない 複数通貨はサポートされていません 発売前に修正するか、再計画する
使いやすさの問題 ユーザーが送信ボタンを見つけられない 多くの場合、修正する価値があります
変更リクエスト 「PDF にエクスポートすることもできますか?」 バックログに追加する
トレーニングの問題 この機能は機能しますが、誤解されていました アップデートガイド

重大度と優先度で説明されているように、リリースをブロックするものについては明確なルールを使用してください。そして、拒否したものも含め、すべての項目に応答します。フィードバックが消えそうになると、人々はフィードバックをするのをやめます。 バグ レポートの書き方に関するガイドは、テスターが問題を明確に説明するのに役立ちます。

UAT チェックリスト

UAT以前

  • 範囲と承認基準は書面で合意されます
  • システムテストと回帰テストが完了しました
  • テスターが選ばれ、説明を受け、時間が与えられます
  • 環境、アカウント、現実的なデータが準備できています
  • コピーの個人情報はマスキングされています
  • シナリオは企業によってレビューされます
  • 問題を記録するための 1 つの場所が設定されている
  • サインオフ所有者の名前が指定されています

UAT中

  • サポート連絡先が利用可能です
  • 問題は毎日優先順位付けされます
  • 進捗状況は関係者と共有される
  • 修正は制御された方法で展開および再テストされます

UAT後

  • 終了基準がチェックされました
  • 既知の問題は所有者とともに文書化されます
  • 正式なサインオフが記録される
  • トレーニングとリリースノートが更新されました
  • 短い回顧展が開催されました

アジャイルチームのUAT

従来の UAT は最後に 1 つの大きなフェーズとして提供されますが、そこではサプライズに費用がかかります。アジャイル チームはそのループを短縮します。プロダクトオーナーはスプリント中に各ストーリーを受け入れ基準に照らしてレビューし、ユーザーはスプリントレビューでソフトウェアが動作していることを確認します。多くのチームは、特に複数の機能が 1 つのワークフローに結合される場合、メジャー リリースの前に集中的な UAT を実行しています。

頻繁にリリースされるため、機能フラグや カナリア デプロイメント などのテクニックにより、実際のユーザーは徐々に新しい作業を試すことができます。これらは受け入れテストを補完しますが、特に正式な記録が必要な規制産業では、受け入れテストが自動的に置き換えられるわけではないことに注意してください。

よくある間違い

  • それを形式的なものとして扱う。 実際には何の役にも立たない承認は誰も守りません。
  • 間違ったテスターの使用。 開発者と QA は、ユーザーを代表するにはシステムに関する知識が多すぎます。
  • 不安定なビルドから開始します。 テスターはすぐに信頼と関心を失います。
  • 最後の瞬間までそのままにしておきます。 そうなると、学んだことを修正する時間がなくなります。
  • 非現実的なデータを使用する。 テスト データには、実際の作業で起こるような厄介なケースはほとんどありません。
  • 範囲を拡大します。 新しいアイデアが真の阻害要因でない限り、変更リクエストとして扱います。

まとめ

UAT は、ソフトウェアが実際にそれを使用する人々に役立つかどうかをリリース前に知る最後の機会です。プロジェクトの開始時から計画を立て、実際のユーザーを募集し、成功とはどのようなものかについて合意します。次のリリースでは、簡単な変更を 1 つ試してください。実際のシナリオ中は 1 人のユーザーと一緒に座り、作業中は何も言わないようにします。

よくある質問

ユーザー受け入れテストとは簡単に言うと何ですか?

これは、リリース前に、実際のユーザーが現実的なタスクでソフトウェアを試し、ニーズを満たしていることを確認する最終チェックです。

UAT の責任者は誰ですか?

ビジネス ユーザーまたは顧客がテストを実行します。通常、製品所有者または QA リーダーが調整し、ビジネス スポンサーが最終的な承認決定を行います。

UAT とシステムテストの違いは何ですか?

システム テストは、ソフトウェアが仕様どおりに動作するかどうかをチェックするもので、テスターに​​よって行われます。 UAT はビジネス ニーズを満たしているかどうかをチェックし、ユーザーによって実行されます。

UAT はいつ行われますか?

通常、システム テスト後、ソフトウェアが安定したら製品リリース前に行われます。アジャイル チームは、各スプリントで小規模な受け入れチェックを実行することもあります。

UAT は自動化できますか?

業務ワークフローの繰り返しチェックなどの一部。ただし、ソフトウェアが有用かどうか、目的に適合しているかどうかを判断するには、依然として実際の人間が必要です。

学び続ける

Stack Quoraと連携する

テスト、WordPress、または SEO についてサポートが必要ですか?

私たちは、チームがより優れたソフトウェアを出荷し、サイトを成長させるのを支援します。あなたが取り組んでいることを教えてください。明確な次のステップを提案します。

読み続けてください

詳しいガイドはこちら テスト、AI、最新の開発

この記事は気に入りましたか?トピックを選択して、最新のチュートリアルに直接アクセスしてください。

人工知能

AI 幻覚の説明: 言語モデルが物事をでっち上げる理由とそれを軽減する方法

AI 幻覚について説明しました。幻覚とは何か、言語モデルが幻覚を生成する理由、一般的な種類、グラウンディングとプロンプトで幻覚を軽減する方法、そして私たちが実行した簡単なチェックです。

記事を読む →
DevOps

環境変数の説明: .env ファイル、シークレット、および設定が正しく行われている

実行した Python の例を使用して環境変数について説明します。環境変数の読み取りと設定、すべての値が文字列である理由、.env ファイル、プロセスの継承、シークレット、検証について説明します。

記事を読む →
ソフトウェア開発

API レート制限の説明: アルゴリズム、ヘッダー、および 429 エラーの処理

API レート制限については、実行したシミュレーションで説明します。トークン バケット、固定ウィンドウ、スライディング ウィンドウ、429 応答、レート制限ヘッダー、バックオフによる再試行、およびテスト制限です。

記事を読む →
テスト自動化

Python でのモッキング:unittest.mock、patch、およびテストを嘘にする間違い

Python でのunittest.mockによるモック、テスト済み: モックとreturn_value、side_effect、名前が使用されている場所のパッチ、仕様と自動仕様、日付のモック、およびよくある間違い。

記事を読む →
ソフトウェアテスト

コードカバレッジの説明: 回線カバレッジとブランチカバレッジ、および 100% の実際の意味

実際のcoverage.pyの実行でコードカバレッジを説明: 行、分岐、条件のカバレッジ、レポートの読み取り、100%のカバレッジでもバグを見逃す可能性がある理由、および賢明なターゲット。

記事を読む →
データベースとSQL

SQL における DELETE、TRUNCATE、DROP: 違い、ロールバック、およびそれぞれをいつ使用するか

DELETE、TRUNCATE、DROP について、テスト済み SQL を使用して説明します。それぞれの削除内容、ロールバック、トリガー、ID リセット、速度、PostgreSQL、MySQL、SQL Server、SQLite の違いについて説明します。

記事を読む →
データベースとSQL

SQL ビューの説明: 作成、使用、落とし穴の回避、例を示します

SQL ビューについて、実行したクエリとともに説明しました。ビューの作成、ライブ結果、列の非表示、パフォーマンス、更新可能なビューと具体化されたビュー、壊れた依存関係、ベスト プラクティスについて説明します。

記事を読む →
ソフトウェア開発

TypeScript インターフェイスと型: 実際の違い、コンパイラでテスト

TypeScript インターフェイスと型、実際のコンパイラでチェック: 両方でできること、片方だけでできること、宣言のマージ、拡張と交差、および従うべき簡単なルール。

記事を読む →
ソフトウェア開発

Python *args と **kwargs の説明: 柔軟な関数と明確な例

Python の *args と **kwargs について、実行したコードで説明しました。パッキングとアンパッキング、パラメーターの順序、キーワードのみの引数と位置のみの引数、デコレーター、一般的なエラーです。

記事を読む →
ソフトウェア開発

Python Lambda 関数: 構文、実際の用途、および使用すべきでない場合

Python のラムダ関数について、実行したコードとともに説明します。構文、キーによるソート、マップとフィルター、クロージャー、遅延バインディング トラップ、通常の def がより適切な選択である場合。

記事を読む →
人工知能

AIエージェントとは何ですか?シンプルなエージェント ループを実行できる仕組み

AIエージェントとは何ですか?エージェント ループ、ツール、メモリ、ガードレール、実行した小さな Python ループ、実際のリスク、およびシンプルなチャットボットがより良い選択である場合についてのわかりやすいガイドです。

記事を読む →
DevOps

モニタリングと可観測性: ログ、メトリクス、トレースによる本当の違い

モニタリングと可観測性について説明: 既知および未知の障害、ログ、メトリクスとトレース、チェックアウト インシデントのウォークスルー、ゴールデン シグナル、OpenTelemetry、および便利なアラート。

記事を読む →
DevOps

Docker ボリュームとバインド マウント: コンテナ データを正しい方法で保持する

Docker ボリュームとバインド マウントについて説明します。コンテナ データが消える理由、名前付きボリューム、バインド マウント、tmpfs、Compose の例、バックアップ、アクセス許可、およびそれぞれをいつ使用するかについて説明します。

記事を読む →
テスト自動化

TDD と BDD: 主な違い、1 つの機能が両方の方法で構築され、それぞれをいつ使用するか

TDD と BDD は、両方の方法で構築された 1 つの割引機能で説明されています。実行したコードによるレッド-グリーン-リファクタリング、Given-When-Then シナリオ、ツール、トレードオフ、およびそれぞれをいつ使用するかです。

記事を読む →
ソフトウェアテスト

ユーザー受け入れテスト (UAT): プロセス、チェックリスト、および実際の例

ユーザー受け入れテストの説明: 誰が実行するか、QA との違い、7 段階のプロセス、UAT テスト ケース テンプレート、チェックリスト、サインオフ基準、およびよくある間違い。

記事を読む →
データベースとSQL

SQL NULL 値の説明: IS NULL、COALESCE、NULLIF、および回避すべきトラップ

SQL の NULL 値について、実行したクエリで説明しました。3 つの値のロジック、IS NULL、COALESCE、NULLIF、集計、結合、並べ替えでの NULL の扱い方、およびそれが密かに引き起こすバグです。

記事を読む →
データベースとSQL

SQL CASE WHEN ステートメント: 構文、実際の例、およびよくある間違い

SQL CASE WHEN では、単純な検索フォーム、条件順序、SUM を使用したピボット、COUNT トリック、カスタム並べ替え、更新、回避すべき NULL トラップなど、実行したクエリを使用して説明しました。

記事を読む →
ソフトウェア開発

JWTとは何ですか? JSON Web トークンを実際の例で説明する

JWTとは何ですか? JSON Web トークンについて説明しました。3 つの部分、実行したコード内で構築および改ざんされたトークン、JWT とセッション、ストレージ、リフレッシュ トークン、およびセキュリティ上の間違いです。

記事を読む →
ソフトウェア開発

JavaScript イベントループの説明: コールスタック、マイクロタスク、タイマーと例

JavaScript イベント ループについて、実行したコードで説明しました。コール スタック、タスク キュー、マイクロタスク キュー、setTimeout 0 が即時ではない理由、ブロッキング、スターベーション、およびインタビュー クイズです。

記事を読む →
ソフトウェア開発

Python ジェネレーターと収量の説明: 実際の例でメモリを節約する

Python ジェネレーターと Yield について、実行したコードを使用して説明します。一時停止と再開の方法、メモリ節約の測定、パイプライン、無限シーケンス、Yield from、send、および一般的なトラップについて説明します。

記事を読む →
人工知能

埋め込みとは何ですか?ベクトルとコサインの類似度を簡単に説明

埋め込みとは何ですか?ベクトル、コサイン類似度、セマンティック検索に関する平易なガイド。私たちが実行した小さな例、一般的な使用法、モデルの選択、既知の制限が含まれています。

記事を読む →
DevOps

Blue-Green デプロイメントと Canary デプロイメント: 違い、トレードオフ、および選択方法

ブルー グリーン デプロイメントとカナリア デプロイメントについて説明: それぞれの仕組み、コスト、リスクとロールバック、テストした安定したユーザー バケット化、データベース移行、ローリング アップデート、および選択方法。

記事を読む →
テスト自動化

不安定なテスト: 問題の原因とそれを永久に修正する方法

不安定なテストについては、私たちが実行したデモを使用して説明しました。主な原因、確認および診断する方法、タイミングの適切な修正、共有された状態と日付、隔離プロセスなどです。

記事を読む →
ソフトウェアテスト

負荷テストとストレス テスト: 違い、メトリクス、および k6 の例

ロード テストとストレス テストについて説明します。それぞれが何を証明するか、スパイク テストとソーク テスト、重要な指標、平均値が誤解を招く理由、K6 の例、テストの計画方法について説明します。

記事を読む →
ソフトウェアテスト

テスト ケースとテスト シナリオ: 主な違い、例、およびそれぞれをいつ使用するか

テスト ケースとテスト シナリオの説明: 明確な定義、並べて表、シナリオからケースへの 1 つのパスワード リセット機能、テンプレート、およびそれぞれをいつ使用するか。

記事を読む →
データベースとSQL

SQL クエリの最適化: 実行プランを読み取り、タイミングを考慮して遅いクエリを修正

SQL クエリの最適化は 100 万行でテストされています。実行プランの読み取り、適切なインデックスの追加、検索対象外のフィルターの修正、複合インデックスとキーセットのページネーションの使用。

記事を読む →
データベースとSQL

SQL UNION と UNION ALL: 違い、例、テストされたパフォーマンス

SQL UNION と UNION ALL について、実行したクエリで説明しました。重複、両方に従うルール、実際のデータのバグ、測定されたパフォーマンス、INTERSECT と EXCEPT、およびそれぞれをいつ使用するかについて説明します。

記事を読む →
ソフトウェア開発

JavaScript Fetch API チュートリアル: GET、POST、エラー処理、タイムアウト

ローカル サーバーに対してテストされた JavaScript Fetch API チュートリアル: GET と POST、404 がスローされない理由、再利用可能なヘルパー、クエリ文字列、タイムアウト、CORS、およびよくある間違い。

記事を読む →
ソフトウェア開発

Python ファイル処理: 読み取り、書き込み、CSV、JSON、パスライブラリと例

Python のファイル処理について、実行したコードで説明します。オープン モード、大きいファイルの読み取り、CSV、JSON、パスライブラリ、バイナリ ファイル、安全な書き込み、エラー処理、およびよくある間違いについて説明します。

記事を読む →
ソフトウェア開発

Python のクラスとオブジェクト: 実際の例を含む OOP チュートリアル

Python のクラスとオブジェクトについて、実行したコードとともに説明します: __init__、メソッド、クラスとインスタンスの属性、継承、プロパティ、ダンダー メソッド、データクラス、およびよくある間違い。

記事を読む →
人工知能

大規模言語モデルとは何ですか? LLM の仕組みを誇大広告なしで説明

大規模言語モデルとは何ですか? LLM は、トークン、エンベディング、アテンション、トレーニング、温度およびコンテキスト ウィンドウ、小さな次の単語のデモ、実際の制限など、平易な言葉で説明されています。

記事を読む →
DevOps

初心者のための Linux コマンド: 例を含む基本ターミナル ガイド

初心者向けの Linux コマンド。ナビゲーション、ファイル、ログの表示、grep、パイプ、権限、プロセス、アーカイブなどのタスク別にグループ化されており、実用的なログ分析の例も含まれています。

記事を読む →
テスト自動化

Selenium と Playwright: 主な違い、コードの比較、どちらを選択するか

Selenium と Playwright の比較: アーキテクチャ、待機、ブラウザと言語のサポート、デバッグ、両方のツールでの同じテスト、移行のアドバイスと選択方法。

記事を読む →
ソフトウェアテスト

等価性分割: テスト設計手法を実際の例で説明

等価性パーティション化について説明しました。有効なパーティションと無効なパーティションを見つける方法、年齢、パスワード、クーポンに関する実際の例、実行したテスト、境界と組み合わせる理由。

記事を読む →
ソフトウェアテスト

ソフトウェアテストにおける重大度と優先度: 相違点、マトリックス、および実際の例

ソフトウェア テストにおける重大度と優先度について説明します。明確な定義、例を含む 4 方向のマトリックス、レベル スケール、それぞれの設定者、バグ トリアージの実行方法。

記事を読む →
データベースとSQL

SQL サブクエリのチュートリアル: 型、相関サブクエリ、および EXISTS と例

実行したクエリを含む SQL サブクエリのチュートリアル: スカラー、IN、FROM、SELECT サブクエリ、相関サブクエリ、EXISTS、NOT IN NULL トラップ、サブクエリ対 JOIN 対 CTE。

記事を読む →
データベースとSQL

SQL トランザクションと ACID の説明: COMMIT、ROLLBACK、分離レベル

SQL トランザクションと ACID について、実行した銀行振込で説明しました。COMMIT、ROLLBACK、セーブポイント、ロック、分離レベル、ダーティ リード、デッドロック、ベスト プラクティスについて説明します。

記事を読む →
ソフトウェア開発

Git mergeとrebaseの違い:例と使い分け

Git mergeとrebaseの違いを、実際のログ出力、比較表、rebaseの黄金律、安全なチームワークフローで解説します。

記事を読む →
ソフトウェア開発

Pythonのリスト内包表記:構文・例・使うべきでない場面

Pythonのリスト内包表記を解説:構文、フィルタ、if-else、ネストしたループ、実測した処理時間、そして通常のforループの方が良い場面。

記事を読む →
データベースとSQL

SQL JOINを例で解説(Inner・Left・Right・Full)

サンプルのテーブルとクエリでSQL JOINを順に解説。INNER、LEFT、RIGHT、FULL、CROSS、SELFに加え、よくある間違いとパフォーマンスのコツも紹介します。

記事を読む →