ソフトウェア テスト ライフ サイクル (STLC): 6 つのフェーズ、開始基準と終了基準、例

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

ソフトウェアテスト

ソフトウェア テスト ライフ サイクル (STLC): 6 つのフェーズ、開始基準と終了基準、例

テストは、プロジェクトの最後にテスト ケースを実行するだけではありません。 STLC の 6 つのフェーズ、それぞれが何を必要とし、何を生み出すのか、実際の機能にどのように適用するのか、そしてアジャイル チームがそれらをどのように適応させるのかを学びましょう。

読了目安9分
ソフトウェア テスト ライフ サイクル (STLC): 6 つのフェーズ、開始基準と終了基準、および例

ポイント

  • ソフトウェア テスト ライフ サイクルは、テストの計画、設計、実行、終了に使用される一連のアクティビティです。
  • 共通モデルには、要件分析からテスト終了までの 6 つのフェーズがあります。
  • 開始基準と終了基準は、フェーズをいつ開始できるか、いつ終了できるかを定義します。
  • アジャイル チームは同じアクティビティを維持しますが、スプリントごとに小さなループで繰り返します。

バグが本番環境に到達した場合、その原因は誰かがテストを実行し忘れたことではないことがよくあります。それは、要件がまったく疑問視されなかったり、テストデータが間違っていたり、「完了」の意味に誰も同意しなかったりすることです。 ソフトウェア テスト ライフ サイクルは、最初の要件から最終レポートまでテストに明確な構造を与えることで、これらの問題に対処します。

このガイドでは各フェーズについて説明し、その後、すべてのフェーズを通じて 1 つの具体的な機能、つまり 5 回失敗した後にアカウントをロックするログイン ページについて説明します。情報源はフェーズの数について完全には一致していません。 7 つまたは 8 つあるモデルも見られますが、ほとんどの場合、同じ作業を異なる方法で分割します。私たちは広く教えられている 6 段​​階バージョンを使用します。

STLCとは何ですか?

STLC は、ソフトウェアが要件を満たしていることを確認するために実行される、定義された一連のテスト活動です。各フェーズには目標、入力と出力があるため、テストは最後に即興で行われるのではなく、計画され、追跡可能になります。

メリットは実用的です。テスターは、欠陥の修正が安価な時期に、早い段階から参加します。努力は最大のリスクを伴います。また、マネージャーが「リリースする準備はできていますか?」と尋ねた場合、チームは証拠を示して答えることができます。

6 つの STLC フェーズの概要

フェーズ 主な目標 キー出力
1. 要件分析 何をテストするかを理解する 質問、テスト可能な要件、RTM
2. テスト計画 テスト方法を決める テスト計画、見積もり
3. テストケースの開発 テストを設計する テストケース、スクリプト、テストデータ
4. 環境設定 テストする場所を準備する 準備ができた環境、煙テスト結果
5. テストの実行 テストを実行して欠陥を記録する 結果、バグレポート
6. テストの終了 評価して学ぶ 閉鎖レポート、教訓

開始基準は、フェーズの開始前に満たさなければならない条件です。 終了基準は、終了する前に満たさなければならない条件です。たとえば、チームが壊れたビルドでテストを実行して 1 日を無駄にすることを防ぎます。

フェーズ 1: 要件分析

テスターは要件を調査して、何がテスト可能で何が不明であるかを見つけます。質問のコストは本番環境の修正よりもはるかに低いため、これは多くの場合、バグを防ぐための最も安価な場所です。

  • エントリ: 要件ドキュメントまたはユーザー ストーリーが利用可能です。
  • アクティビティ: 機能的ニーズと非機能的ニーズを特定し、質問し、リスクを評価し、何を自動化できるかを決定します。
  • 終了: 未解決の質問に回答し、要件トレーサビリティ マトリックス (RTM) が開始されます。
  • 成果物: テスト可能な要件のリストと RTM。

ログイン例。 この記事では、「5 回失敗したらアカウントをロックする」と書かれています。優れたテスターは、「どの期間に 5 回ですか?」と尋ねます。どのようにロックが解除されますか?ログインに成功するとカウントはリセットされますか?どのようなメッセージが表示されるのでしょうか?それぞれの答えはテスト可能なものになります。

フェーズ 2: テスト計画

チームは範囲、アプローチ、人材、ツール、スケジュール、リスクを決定します。通常、テスト リードがこのフェーズを所有します。

  • エントリ: 分析された要件と初期リスク評価。
  • アクティビティ: 範囲を定義し、作業量を見積もり、ツールを選択し、役割を割り当て、後のフェーズの終了基準を設定します。
  • 終了: テスト計画が検討され、承認されます。
  • 成果物: テスト計画と作業量の見積もり。

ログイン例。 対象範囲: ロックアウト ルール、ウェブおよびモバイルでのリセットおよびエラー メッセージ。範囲外: シングル サインオン。別のチームによって処理されます。最大のリスクは本物のユーザーを締め出すことなので、それが最も注目を集めます。計画と戦略の違いがわからない場合は、テスト計画とテスト戦略を参照してください。

フェーズ 3: テスト ケースの開発

ここで、テスターは詳細なテスト ケース、自動化スクリプト、テスト データを作成します。

  • エントリ: 承認されたテスト計画と安定した要件。
  • アクティビティ: テスト ケースの作成とレビュー、データの準備、自動チェックのスクリプト作成、RTM の更新を行います。
  • 終了: テスト ケースとデータがレビューされ、準備が整いました。
  • 成果物: テスト ケース、スクリプト、テスト データ。
ID シナリオ 期待される結果
TC-01 4 回失敗し、正しいパスワードを入力 ログインが成功するとカウントがリセットされます
TC-02 5 回の失敗 アカウントがロックされ、明確なメッセージが表示される
TC-03 ロックされたアカウントの正しいパスワード まだログインが拒否されました
TC-04 2 つのブラウザで同時に試行が失敗した カウントは共有され、正確さを保ちます
TC-05 リセットリンクでロックを解除する ログインが機能し、カウントがクリアされる

TC-01 と TC-02 は、境界値分析から直接得られた制限のどちらかの側をテストしていることに注意してください。これらの適切な記述の詳細については、テスト ケースの書き方を参照してください。

フェーズ 4: テスト環境のセットアップ

テストを実行するには、適切なサーバー、データ、アカウント、ブラウザ、ネットワーク アクセスなど、現実的な場所が必要です。このフェーズはフェーズ 3 と並行して実行されることが多く、開発者または DevOps チームによって処理される場合があります。

  • エントリ: テスト計画、アーキテクチャの概要、および環境要件。
  • アクティビティ: ハードウェアまたはコンテナのセットアップ、データのロード、アクセスの構成、ビルドのインストール。
  • 終了: 環境の準備が整い、スモークテストに合格しました。
  • 成果物: 作業環境と煙試験結果。

ログイン例。 ステージングでは、テスト アカウントが既知の状態に設定され、ロックアウト タイマーが短縮されるため、テスターは待つ必要がありません。簡単なスモーク テストにより、完全な実行が開始される前にログインが完全に読み込まれることを確認します。 Docker Compose チュートリアルで示されているように、コンテナは環境の一貫性を保つのに役立ちます。

フェーズ 5: テストの実行

テスターは計画されたテストを実行し、実際の結果と予想される結果を比較し、欠陥を報告します。修正されたバグは再テストされ、関連する領域は回帰テストを受けます。

  • エントリ: テスト ケースの準備が整い、環境が動作し、ビルドが配信されました。
  • アクティビティ: テストを実行し、結果を記録し、欠陥を記録し、修正を再テストし、RTM を更新します。
  • 終了: 計画されたテストが実行され、欠陥が修正されるか正式に受け入れられます。
  • 成果物: テスト結果と欠陥レポート。

ログイン例。 TC-04 は失敗します。ブラウザが 2 つある場合、カウンタは 4 にしか達しません。 バグ レポートの書き方で説明されているように、テスターは明確な手順と証拠を添えてバグを記録します。この問題が修正されると、TC-04 が再実行され、関連するログイン チェックが 回帰チェックリスト に従って行われます。

ヒント: 終了基準を測定可能にし、事前に合意してください。 「すべての重要なテストに合格し、未解決の重大度の高いバグはない」という意見に異論を唱えるのは困難です。 「テストの結果が良好であるかどうか」は基準ではありません。

フェーズ 6: テスト終了

このフェーズは通常スキップされますが、これはチームが向上するための方法であるため、これは残念なことです。チームはサイクルを評価し、その作業をアーカイブし、学んだことを記録します。

  • エントリ: 実行が完了し、欠陥ステータスが判明しました。
  • アクティビティ: 終了基準を確認し、欠陥傾向を分析し、テスト資産をアーカイブし、振り返りを開催します。
  • 終了: 閉鎖レポートは承認されました。
  • 成果物: 閉鎖レポートと学んだ教訓。

ログイン例。 レポートは、5 つのケースすべてが 1 つの修正後に成功したことを示しています。教訓は、同時実行性は後になってテストされただけであるため、カウンターを備えた将来の機能では設計時にそのシナリオが追加されるということです。

STLC 対 SDLC

SDLC (ソフトウェア開発ライフ サイクル) には、製品全体の構築が含まれます。 STLC はテストに重点を置いた部分であり、テストと並行して実行されます。

アスペクト SDLC STLC
フォーカス ソフトウェアの構築と配布 ソフトウェアの検証
主導 製品チーム全体 主にQAおよびテストエンジニア
フェーズ 要件、設計、構築、テスト、展開、保守 上記の6つのフェーズ
出力 動作する製品 その品質の証拠

SDLC の要件分析は STLC の要件分析にフィードされ、開発はテスト実行にビルドを提供します。テストはコーディングが終了するまで待つ必要はありません。早くから始めることは、人々が「シフトレフト」と呼ぶ意味です。

アジャイルとDevOpsにおけるSTLC

フェーズは長く一方通行のプロセスのように聞こえるかもしれませんが、必ずしもそうではありません。アジャイルでは、同じアクティビティが各スプリント内で縮小して繰り返され、多くの場合、数週間ではなく数時間で行われます。

  • 要件分析は、ユーザー ストーリーに関する質問を通じて、バックログの詳細化で行われます。
  • 計画はスプリント計画で行われ、長い文書の代わりに軽量のメモが使用されます。
  • テスト設計コーディングと並行して、多くの場合、受け入れ基準や自動テストとして行われます。
  • 環境セットアップは、コンテナーとコードとしてのインフラストラクチャを通じて自動化されます。
  • 実行はCI/CDパイプラインで継続的に実行されます。
  • クロージャはスプリントのレビューと振り返りの一部になります。

有用なものはそのままにして、事務処理をリスクに合わせて拡張します。小規模な内部ツールには短いチェックリストが必要な場合がありますが、銀行システムには規制上の理由から正式な承認が必要な場合があります。

よくある間違い

  • テスターを遅らせて連れてくる。 要件内で見つかったバグは、リリース後に見つかったバグよりもはるかに安価です。
  • 曖昧な終了基準。 それがなければ、期限によって決定されます。
  • 劣悪な環境でのテスト。 不正なデータや構成によって引き起こされる障害は時間を無駄にし、信頼を損ないます。
  • クロージャをスキップします。 チームは次のサイクルでも同じ間違いを繰り返します。
  • あまりにも厳格に従う。 STLC はガイドです。重いドキュメントが自動的に品質の向上を意味するわけではありません。

まとめ

ソフトウェア テストのライフ サイクルは、6 つの質問に対する規律ある答えにすぎません。つまり、何を、どのように、どのケースで、どこで、何が起こり、何を学びましたか?次の機能を見て、チームが通常どの質問をスキップしているかを確認してください。その 1 つのギャップを修正することで、おそらく最大の利益が得られるでしょう。

よくある質問

STLC の 6 つのフェーズとは何ですか?

それは、要件分析、テスト計画、テスト ケース開発、テスト環境セットアップ、テスト実行、テスト終了です。一部のモデルでは、これらをさらに多くのステップに分割しています。

STLCとSDLCの違いは何ですか?

SDLC は、要件からメンテナンスまで製品全体の構築をカバーします。 STLC はテスト活動のみを対象とし、開発と並行して実行されます。

参入基準と退出基準とは何ですか?

開始基準は、安定したビルドなど、フェーズを開始する前に必要な条件です。終了基準とは、すべての重要なテストに合格するなど、終了するために必要な条件です。

テストにおける RTM とは何ですか?

要件トレーサビリティ マトリックスは、各要件をそのテスト ケースにマッピングします。すべての要件が満たされているかどうかが示され、変更の影響を評価するのに役立ちます。

STLC はアジャイルで使用されますか?

はい。アジャイル チームは同じアクティビティを実行しますが、各スプリント内でより短いサイクルで繰り返し、自動化を強化し、形式的な文書化を減らします。

学び続ける

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 コマンドのチートシート: 実際に使用するコマンドと例

実際のデモ リポジトリからの出力を含む、タスク別にグループ化された Git コマンド チート シート (セットアップ、ステージング、ブランチ、リモート、スタッシュ、履歴、間違いの取り消し)。

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

JavaScript Promise の説明: then、catch、Promise.all、およびよくある間違い

JavaScript の Promise を、実行したコードで説明します。ステート、then および catch チェーン、エラー処理、Promise.all、allSettled、race および any、イベント ループ、およびよくある間違いです。

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

Python 辞書チュートリアル: メソッド、例、一般的なパターン

私たちが実行したコードを含む Python 辞書チュートリアル: 辞書の作成、読み取り、更新、主要なメソッド、マージ、内包表記、パターンのカウントとグループ化、およびよくある間違い。

記事を読む →
人工知能

RAGとは何ですか?検索拡張生成を実際の例で説明する

RAGとは何ですか?検索拡張生成について、インデックス作成、チャンク化、埋め込み、検索、実際に動作する小さな Python の例、評価、一般的な失敗など、ステップごとに説明します。

記事を読む →
DevOps

初心者向け Terraform チュートリアル: 最初のファイルからモジュールまでのコードとしてのインフラストラクチャ

初心者向けの Terraform チュートリアル: クラウド アカウントなしで開始し、初期化、計画、適用を学び、次に変数、出力、状態、モジュール、安全なチーム ワークフローを学びます。

記事を読む →
DevOps

Docker と Kubernetes: 主な違い、連携方法、どちらが必要か

Docker と Kubernetes について説明しました。それぞれの機能、同じアプリを両方で実行すること、Docker Compose と Swarm の比較、dockershim の変更、必要なものを決定する方法などです。

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

初心者向けの Pytest チュートリアル: フィクスチャ、パラメータ化、実際の例

pytest 9.2 で実行したテストを含む初心者向けの pytest チュートリアル: アサーション、フィクスチャ、parametrize、conftest、マーカー、tmp_path、monkeypatch、便利なフラグ、CI。

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

ソフトウェア テスト ライフ サイクル (STLC): 6 つのフェーズ、開始基準と終了基準、例

ソフトウェア テストのライフ サイクルについては、開始基準と終了基準を含む 6 つの STLC フェーズ、成果物、実際に動作するログイン機能の例、STLC と SDLC、およびアジャイルにおける STLC について説明しました。

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

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に加え、よくある間違いとパフォーマンスのコツも紹介します。

記事を読む →