31 top database testing interview questions
私たちの専門家は最もよくある質問に答えました データベーステスト 新入生と経験豊富な候補者への面接の質問:
これは、詳細な回答を含む30以上のトップDBテストインタビューの質問のコレクションです。これらのDBテストの質問は、主にQAテストのインタビューで尋ねられます。
データベースのスキルも必要なソフトウェアテストの面接の準備をしている場合は、これらの質問と回答を確認してください。
データベーステストの面接に関する上位の質問
テストエンジニアのポジション(データベーステスターではない)のインタビューで尋ねられたデータベース(SQL)の質問の種類は何ですか?
これは、これらの質問がエントリーレベルのテストポジションに関するものか、経験豊富なテスト専門家向けかによって、多くの要因によって異なります。データベース面接の質問の深さは、候補者の経験によって異なります。
ポジションに関係なく、候補者は常にデータベースの概念について明確で自信を持っている必要があります。ほとんどのソフトウェアテストポジションでは、データベースチェックを実行するためにデータベースの知識が必要です。ほとんどすべてのアプリケーションは、データベースとの相互作用を必要とします。
エントリーレベルのソフトウェアテストのポジションについて、これらの面接の質問を考えてみましょう。
面接では、次の質問をすることができます。
- データベーステーブルからデータをフェッチするための基本的な、およびある程度ネストされたSQLクエリ。
- Create Database、Create table、およびDropTableのデータベースステートメントの例。
- 「主キー」、「外部キー」、およびDBインデックスの概念。
- SELECT、INSERT、DELETE、ALTER、およびUPDATESQLステートメントの例。
- 例を使用したSQL結合(内部結合、左結合、右結合、および完全結合)。
ダミーテーブルでSQL結合クエリを練習し、結果を確認します。
経験豊富なレベルのソフトウェアテストのポジションの場合、面接の質問は仕事の要件によって異なります。そのようなポジションの場合、面接官は候補者からの詳細なデータベース知識を期待します。
注意: データベースSQLクエリについて質問がある場合は、「すべてのクエリステートメントを開発者が実行できるようにする」とは決して言わないでください。開発者から複雑なSQLクエリを作成するための支援を受けていると言っても問題ありませんが、最終的には自分で管理します。
実際のDBの質問と回答から始めましょう。
Q#1)データベーステストとは何ですか?
回答: データベーステスト/バックエンドテストは、フロントエンドWeb /デスクトップアプリケーションに対するバックエンドデータベース操作の影響をチェックするプロセスです。
これは、次の異なるカテゴリに分類されます。
- データ妥当性テスト: このテストを行う間、テスターはSQLクエリについて十分な知識を持っている必要があります。
- データ整合性テスト: このテストを行う間、テスター/開発者は参照整合性とさまざまな制約を知っている必要があります。
- データベースパフォーマンステスト: このテストを行っている間、テスター/開発者はテーブルの構造をうまく設計する必要があります。
- 手順、トリガー、および機能のテスト: このテストを実行している間、テスター/開発者は、テスト手順、トリガー、および機能を完全に理解している必要があります。
Q#2)データベーステストが重要なのはなぜですか?
回答: データベースが小さなテーブルのようなものではないことは誰もが知っていますが、それは確かに多くのテーブルの大きなコンテナであり、多くのWeb /デスクトップアプリケーションに同時にデータを配信するデータでいっぱいです。
5年の経験のためのSQLインタビューの質問
データベースのテストプロセスにより、正確で一意のデータ(バグなし)が正しい場所に配信されることが保証されます。これらのバグは、デッドロック、データ破損、パフォーマンスの低下、不整合などの深刻な問題を引き起こす可能性があります。
Q#3)データベーステストプロセスでは、通常何をチェックしますか?
回答: データベーステストには、特定のアプリケーションのデータをテストするための、ある程度の深い知識とより明確なアプローチ計画が必要です。
このテストプロセスでは、通常、次のことを確認します。
- フィールドサイズの検証
- 制約。
- インデックスが作成されているかどうか(パフォーマンス関連の問題の場合)
- ストアドプロシージャ
- アプリケーションで定義されているフィールドサイズは、DBのフィールドサイズと一致しています。
Q#4)データベースを手動でテストできますか?はいの場合、どのようにテストしますか?例を挙げて説明します。
回答: 動作を観察する必要があります。フロントエンドの操作とバックエンドデータベースへの影響を観察します。フロントエンドからバックエンドデータベースにレコード(XYZ)を追加するときに、レコードがバックエンドデータベースで影響を受けているかどうかを手動で確認します。同様に、削除、更新などでも機能します。
例えば、 試験を行っている学生の記録を保持するには、フロントエンドシステムから学生の詳細を入力し、この追加がバックエンドデータベースに与える影響を手動で確認します。
Q#5) データベースのプロシージャとトリガーをテストする方法は?
回答: データベースプロシージャとトリガーをテストするプロセスには、入力パラメーター、出力パラメーター、およびEXECステートメントの知識が必要です。 EXECステートメントは、プロシージャーを実行し、テーブルの動作を観察するのに役立ちます。
データベースのプロシージャとトリガーをテストする方法を見てみましょう。
- まず、ソリューションエクスプローラーに表示されるデータベースプロジェクトを開きます。
- 目的のプロジェクトが開いたら、(表示)メニューに移動し、データベーススキーマをクリックして、(スキーマビュー)メニューからプロジェクトフォルダーを開きます。
- テストする必要のあるオブジェクトを右クリックし、(単体テストの作成)をクリックします。 「単体テストの作成」ダイアログボックスが開き、データベースプロジェクトのすべてのフォルダとオブジェクトが表示され、選択したオブジェクトのチェックボックスがオンになります。
- 次に、新しい言語テストプロジェクトを作成します。
- 単体テストを既存のテストクラスに挿入するか、新しいテストクラスを作成して(OK)をクリックするかを選択します。
- プロジェクトを構成するには、(プロジェクト構成)ダイアログボックスが表示され、テストプロジェクトの設定が構成されます。このプロセスには、データベース接続とデータ生成計画が必要です。データベース接続は、テスト結果を実行するためのものです。
- 最後に、プロジェクトを構成し、(OK)をクリックします。
Q#6)データ駆動型テストとはどういう意味ですか?
回答: データ駆動型テストは、実行中にテストスクリプトがテストデータを読み取ったり、データファイル(データプール、Excelファイル、ADOオブジェクト、CSVファイル、ODBCソース)から値を出力したりするテストプロセスで使用される用語です。 -毎回コード化された値。このテストは、テスターがさまざまな入力を処理する際のアプリケーションの効率をチェックするのに役立ちます。
Q#7)データベーストリガーとは何ですか?トリガーが起動されているかどうかを確認する方法と、オンデマンドでトリガーを呼び出すことができますか?
回答:
データベーストリガー: トリガーは基本的に、データベースに存在するデータの整合性を維持するために使用されるストアドプロシージャです。データベース内のテーブル/ビューの特定のイベントに応答するために自動的に実行されます。
トリガーが起動されているかどうかを確認するには;共通監査ログのクエリを使用すると、データテーブルのトリガーが表示されます。
トリガーはオンデマンドで呼び出すことはできません。トリガーは、特定のテーブルで定義されたアクション(INSERT、DELETE、およびUPDATE)がテーブルに表示されたときに呼び出されます。
Q#8)フロントエンドアプリケーションインターフェイスからデータを入力した後、データベースが更新されているかどうかをどのようにテストしますか?
回答: それはあなたが使用しているアプリケーションインターフェースに完全に依存します。
テストする方法は次のとおりです。
- 入力したデータの表示機能がアプリケーションインターフェイスに表示されている場合は、フロントエンドからのみ確認できます。主に、ブラックボックステストエンジニアはこの方法でこの機能検証テストを行います。
- 入力したデータの表示機能がアプリケーションインターフェースで提供されていない場合は、関連するSQL / Oracleクエリを使用してデータベースの更新を確認できます。
- WinRunner / QTPのチェックポイント機能を使用して、データベースの更新を確認することもできます。
Q#9)ストアドプロシージャをテストする方法は?
回答: テストエンジニアは、いくつかの手順に従ってテストする必要があります。 ストアドプロシージャ 、
- まず、テストエンジニアは、特定のストアドプロシージャの要件と目的を理解する必要があります。
- 次に、すべてのインデックス、結合、更新、削除がストアドプロシージャに記載されているテーブルと比較して正確であるかどうかを確認し、ストアドプロシージャがコメント、更新者などの共通の標準形式であることを確認します。
- 次に、入力パラメーターのさまざまなセットについて、プロシージャーの呼び出し名、呼び出しパラメーター、および予期される応答を確認します。
- 手動で、TOAD、MySQL、QueryAnalyzerなどのデータベースクライアントプログラムを使用してプロシージャを実行します。
- 期待値に対して結果を検証するには、さまざまなパラメーターを指定して手順を再実行します。
- 最後に、QTPを使用してテストを自動化します。
Q#10) 結合とは何ですか?さまざまな種類の結合について言及していますか?
回答: 結合は、2つまたは3つ以上のテーブルを結合し、単一のデータセットとして表示するために使用されます。
SQLには、次のものがあります。 結合の種類 :
- 内部結合
- アウタージョイン
- 左結合
- 右結合
Oracle / PLSQLには、4つの異なるタイプの結合があります。
- 内部結合
- 左外部結合
- 右外部結合
- フル外部結合
Q#11) インデックスとはどういう意味ですか?さまざまな種類のインデックスについて説明しますか?
回答: インデックスはデータベースオブジェクトであり、データをより迅速かつ効率的に検索するためにテーブルの列に作成されます(または、検索/クエリを高速化するために使用されます)。
さまざまなタイプのインデックスは次のとおりです。
- Bツリーインデックス
- ビットマップインデックス
- クラスター化インデックス
- カバーインデックス
- 一意でないインデックス
- 一意のインデックス
Q#12) DBMSとはどういう意味ですか?
回答: データベースは、構造化されたデータのセットです。データベース管理システム(DBMS)は、ユーザー、他のアプリケーション、およびデータベース間の通信ネットワークを作成して、データベースから情報を格納、変更、および抽出するコンピューターソフトウェアアプリケーションです。
有名なDBMSは、My SQL、Postgre SQL、Microsoft SQL Server、Oracle、SAP、およびIBMDB2です。
Q#13) DMLとはどういう意味ですか?
回答: データ操作言語(DML)は、データベース内のデータの選択、挿入、削除、および更新を容易にするコンピュータープログラミング言語のメンバーです。 DMLは基本的に、ユーザーがリレーショナルデータベース内のデータを取得して使用するのを容易にする構造化照会言語(SQL)に関与しています。
Q#14) DCLコマンドとはどういう意味ですか?DCLで使用されるコマンドの種類を説明してください。
回答: データ制御言語(DCL)はSQLのコンポーネントであり、データベースに格納されているデータの使用を制御します。
DCLコマンドには次の2つのタイプがあります。
- 付与: このコマンドは、ユーザーがデータベースへの特権にアクセスするのを容易にします
- 取り消す: ユーザーにデータベースへのアクセスを許可しない
Q#15) ホワイトボックステストとブラックボックステストとはどういう意味ですか?
回答:
ブラックボックステスト は、アプリケーションの内部構造に入ることなく、アプリケーションの機能動作をテストするためのソフトウェアテスト手法です。ブラックボックステストにはコアアプリケーションのコード/内部構造とプログラミングの知識は必要ありませんが、アプリケーションをテストするにはアプリケーション機能のコア知識が必要です。
ホワイトボックステスト(WBT) ソフトウェアアプリケーションの内部構造をテストするためのコードベーステストまたは構造テストとも呼ばれます。ホワイトボックステストの場合、テスターは、アプリケーションの内部構造を十分に理解しているだけでなく、テストケースとアプリケーションの内部構造を設計するためのプログラミングスキルについても十分に理解している必要があります。
Q#16)QTPはSQLクエリをサポートしていますか、使用方法 QTPでのSQLクエリ ?
回答: QTPにはデータベース接続用の組み込み関数はありませんが、テスターはVBScript言語を使用して、ADODBオブジェクトを使用してデータベースに接続および対話します。
ADODBオブジェクトは、データベース接続を正常に作成するのに役立つ4つの異なるプロパティ/メソッドに分割されています。
- 接続: データベースとの接続を形成するのに役立ちます
- コマンド: SQLコマンド(クエリ/ストアドプロシージャ)の実行に役立ちます
- 田畑: クエリ/ストアドプロシージャを実行した後、レコードセットから特定の列を取得するのに役立ちます。
- レコードセット: データベースからデータを取得するために使用されます
Q#17)データベーステストで使用できるSQLステートメントはどれですか?
回答: SQLのすべてのDDL、DML、DCL、およびTCLステートメントは、データベースのテストで使用できます。
(i)DDL(データ定義言語): これに関連するすべてのステートメントは、データベース構造またはスキーマの定義に使用できます。
ステートメント: CREATE、ALTER、DROP、TRUNCATE、COMMENT、およびRENAME
(ii)DML(データ操作言語): これに関連するすべてのステートメントは、スキーマオブジェクト内のデータを管理するために使用できます。
ステートメント: SELECT、INSERT、UPDATE、DELETE、MERGE、CALL、EXPLAIN PLAN、およびLOCKTABLE。
(iii)DCL(データ制御言語): GRANTステートメントとREVOKEステートメント。
(iv)TCL(トランザクション制御言語): これに関連するすべてのステートメントを使用して、DMLステートメントによって行われた変更を管理できます。 TCLを使用すると、ステートメントを論理トランザクションにグループ化できます。
ステートメント: COMMIT、SAVEPOINT、ROLLBACK、およびSETTRANSACTION。
Q#18)データベーステストで、データ負荷テストを行う方法を教えてください。
回答: データ負荷テストの場合、
- ソースデータベース(データテーブル、列、関連する制約、データ型)と宛先データベース(データテーブル、列、データ型、および制約)の知識が必要です。
- DTSパッケージを介して、ソースデータベースと宛先データベース間の互換性を確認する必要があります。
- SQL Enterprise Managerで対応するDTSパッケージを開き、DTSパッケージを実行する必要があります(SQL Serverを使用している場合)。
- ソースとターゲットの列のデータを比較します。
- ソースとターゲットの行数を確認してください。
- ソースデータベースのデータを更新した後、変更が宛先データベースに反映されているかどうかを確認します。
- ジャンク文字とNULLについて確認してください。
- データベースの負荷テストでは、データベースサーバーのボリュームを確認してクエリを処理し、データベースサーバーとクライアントの応答時間を確認します。
Q#19)「高速データベース検索レート」はテスト可能な要件ですか?
回答: いいえ。要件が不明確に見えるため、そうは思いません。 SRSは、パフォーマンスまたはトランザクションの要件を明確に表示する必要があります。つまり、次のように言及する必要があります。 「5マイクロ秒のデータベース検索速度」。
Q#20)データベースのチェックポイントを使用せずに、QTPでSQLクエリをテストするにはどうすればよいですか?
回答: 以下のスクリプト手順は、両方をテストできるデータベースへの接続に役立ちます。データベースとクエリ。
に) データベース接続のスクリプト手順、
db_connect(“ query1”、DRIVER = {ドライバー名}; SERVER = server_name;
UID = uidname; PWD = password; DBQ = database_name“);
b) クエリを実行するためのスクリプトプロシージャ、
db_excecute_query(“ query1”、” write query u want to execute”);
-言及される条件-
c) データベースとの接続を切断するためのスクリプト手順、
db_disconnect(“ query”);
Q#21)データベーステストでは、優れたテストケースを作成するために必要なものは何ですか?
回答: データベースのテストケースを作成する前に、次の知識が必要です。
- アプリケーションを完全に理解し、アプリケーションの機能要件も理解します。
- バックエンドデータベーステーブル、テーブル間の結合、カーソル(存在する場合)、トリガー(存在する場合)、ストアドプロシージャ(存在する場合)、開発用の入力パラメーターと出力パラメーターなど、アプリケーションで使用されている他のエンティティをチェックアウトします。その要件。
- 必要なすべての情報を収集した後、すべてのリソースを調べるために、さまざまな入力値を使用してテストケースを書き留めます。
バックエンドテストのテストケースを作成することは、機能テストの反対であり、ホワイトボックステスト手法を使用する必要があります。
Q#22)再テストとは何ですか?それはどのように違うのですか? データ駆動型テスト ?
回答: すでに検出され修正された欠陥を見つけるという観点からテストを実行した後、元の欠陥が正常に削除されたことを確認するために異なる入力値で同じテストを再実行することを、再テストまたは確認テストと呼びます。
再テスト はデータ駆動型テストとも呼ばれますが、両者の違いは、再テストは手動テストプロセスであるのに対し、アプリケーションテストは新しいデータセット全体を使用して行われることです。
データ駆動型テスト(DDT): これは、アプリケーションが複数のテストデータでテストされる自動化テストプロセスです。テスターがシステムの前に座ってフロントエンドインターフェイスから手動でさまざまな新しい入力値を入力する再テストよりも簡単で簡単です。退屈なテクニック。
Q#23)データ駆動型テストの種類は何ですか?
回答:
データ駆動型テストには、次の4つのタイプがあります。
- キーボードを介した動的テストデータの送信(キー駆動テスト): 場合によっては、テスターは、動的送信を介して計算を検証するために、異なる入力値を使用して特定のアプリケーションを再テストします。したがって、入力値を送信するために、テスターはTSLで次の関数を使用できます。スクリプト– create_input_dialog(“ label”);
- フラットファイル(.txt、.doc)を介したデータ駆動型テスト: 場合によっては、テスターはフラットファイルのデータを考慮して再テストを行います。テスターは、古いデータベース/顧客からこれらのフラットファイルを収集します。
- フロントエンドオブジェクトを介したデータ駆動型テスト: 場合によっては、テスターは、リスト、メニュー、テーブル、データウィンドウ、ocxなどのフロントエンドオブジェクトの値を考慮して自動化スクリプトを作成します。
- Excelシートによるデータ駆動型テスト: 場合によっては、テスターはこのデータ駆動型テストを利用して、複数の入力に対してスクリプトを実行します。これらの複数の入力は、Excelシートの列にあります。このテストデータをバックエンドテーブルから収集する必要があります。
Q#24)テーブルの特定の列から2番目に大きい値を取得するクエリを作成するにはどうすればよいですか?
回答: これは、テーブルの特定の列から2番目に大きい値を取得するためのクエリです。
SELECT MAX(COLUMN_NAME) FROM TABLE_NAME WHERE COLUMN_NAME <(SELECT MAX(COLUMN_NAME) FROM TABLE_NAME);
例えば、
「Students」テーブルの「Marks」列から2番目に大きいマークを取得するには
SELECT Max(Marks) from Students WHERE Marks<(SELECT Max(Marks) from students);
Q#25)10を取得するためのクエリの書き方th従業員テーブルからの最高の給与?
回答: これは、従業員テーブルからn番目に高い給与を取得するためのクエリです。
SELECT * FROM Employee Emp1 WHERE ( n ) = ( SELECT COUNT( DISTINCT ( Emp2.Employee_Salary ) ) FROM Employee Emp2 WHERE Emp2.Employee_Salary >= Emp1.Employee_Salary );
ここでは、それらを任意の数に置き換えることができます。
例えば、 10番目に高い給与を取得したい場合は、nを10に置き換えます。
SELECT * FROM Employee Emp1 WHERE (10) = ( SELECT COUNT( DISTINCT ( Emp2.Employee_Salary ) ) FROM Employee Emp2 WHERE Emp2.Employee_Salary >= Emp1.Employee_Salary );
Q#26)要件からテストケースを作成するにはどうすればよいですか?要件はAUTの正確な機能を示していますか?
回答: はい、要件はAUTの正確な機能を示す必要があります。
そうするために、
- 全体的な機能を理解するための要件を調べます。
- 次に、テストケースの作成に適したテスト設計方法を決定します–次のようなブラックボックステスト設計方法。等価分割、境界値分析、エラー推測、および因果関係のグラフ化。
- 適切なテスト設計方法を決定したら、要件分析と設計フェーズでテストケースを作成します。
このようにして、すべての要件がテスト可能であることを確認します。
Q#27)あるSQL Serverから別のSQL Serverに移行されたデータベースをテストするためのテストシナリオは何ですか?
回答: まず、移行を計画しているSQLServerにどのような機能拡張と変更が行われたかを確認する必要があります。
次、 次の考慮事項に従ってテストケースを設計します。
- 使用されたデータ型。
- SQL Server(データの移行先のサーバー)のデータフィールドの長さは、データを取得するSQLServerと同じである必要があります。
- すべてのタスクを正しく整理する必要があります。
Q#28) RDBMSは何の略で、SQLで使用される主要なRDBMSは何ですか?
回答: RDBMSは、リレーショナルデータベース管理システムの略です。 SQLに関係する主要なRDBMSには、Sybase、Oracle、Access、Ingres、Microsoft SQLServerなどが含まれます。
Q#29) パフォーマンステストとそのボトルネックについて説明します。
回答: パフォーマンステストは、重いワークロードの下で速度、感度、および安定性の観点からシステムパフォーマンスを判断するためのソフトウェアテスト手法です。このテストには、操作のために高価なツールと十分に訓練された経験豊富なテスターが必要です。
Q#30) CMMIとは何ですか?CMMのさまざまなレベルを説明していますか?
回答: CMMIはCapabilityMaturity Model Integrationの略で、ソフトウェアエンジニアリングにおけるさまざまなビジネスプロセスのプロセス開発トレーニングおよび評価モデルです。
組織の5つのCMM成熟度レベルは次のとおりです。
- 初期: このレベルでは、組織には検証済みの技術と環境がないため、通常、組織は予算とスケジュールの時間を超過します。
- 繰り返し可能: このレベルでは、組織はコストとスケジュール時間を制限するための基本的な手法とガイドラインを備えており、次の同様のプロジェクトで同じことを繰り返すことができます。
- 定義: このレベルでは、すべてのテクニックが適切に編成され、明確で標準的な形式で説明されています。
- 管理: このレベルでは、組織は定義済みレベルよりもはるかに発達しています。ここでは、統計的手法やその他の定量的手法を使用して手法にアクセスします。
- 最適化: 組織は、最新の技術進歩を通じてパフォーマンスの開発を断固として試みています。
Q#31)データベースのレコードの意味は何ですか?
回答: データベースでは、レコードは特定のエンティティの値/フィールドのセットです。
例えば、 Office_Employee Record、BookRecordなど。
これらの詳細なデータベースインタビューの質問と回答を気に入っていただければ幸いです。ご不明な点がございましたらお知らせください。
Eclipseで新しいプロジェクトを開始する方法