ソフトウェアのテストは簡単だと言われていますが、なぜそう感じないのでしょうか。

序文

ソフトウェアのテストは難しいですか? 試してみればわかります。

この業界に入りたい友人がこう言うのをよく聞きます。

ソフトウェアテストに切り替えたいのですが、ソフトウェアテストは非常に簡単だと聞きました。

この時、私の心は「ソフトウェアのテストは簡単だ、知っていますか?」という気持ちでいっぱいでした。テスト エンジニアは、開発よりも、運用と保守よりも、DBA よりも、プロダクト マネージャーよりも多くのことを理解できる必要があり、範囲や次元に関係なく、テスターが習得する必要がある内容が多すぎます。

次に、テスト エンジニアに必要なスキルを分析します。

01

ソフトウェアテスト理論

ソフトウェア テスターは、ソフトウェア テスト自体を知らなければなりません。

ソフトウェアテストとは何なのかを常に知る必要がありますか? テストケースとは何ですか? 欠陥とは何ですか? ソフトウェアテストの特徴は何ですか? これらは単なる理論であり、それが実現するかどうかは気にしません。

もう 1 つの例は、ソフトウェア テストの定義です。ソフトウェア テストはテスト プログラムですか? それともテストドキュメントでしょうか?それともソフトウェアなどのテストですか?

02

ソフトウェアテストプロセス

ソフトウェアテストプロセスを知りたい場合は、ソフトウェアエンジニアリング、ソフトウェアライフサイクル、研究開発モデル、テストモデルを知る必要があります。

モデルには、古典的なウォーターフォール モデル、最も一般的なアジャイル開発プロセス、V モデル、W モデル、X モデル、H モデルなどが含まれます。これらのモデルのうち少なくとも 3 ~ 4 つは何気なく知っておく必要があります。

これらに加えて、テスト プロセスの各段階で何をすべきかを知っておく必要もあります。

03

テストドキュメント

ソフトウェアテストは研究ベースの仕事ではなくスキルベースの仕事であり、ソフトウェアテストの理論を理解した後は、必ずドキュメントを書くなどの作業を行う必要があります。

ソフトウェア テスターに​​必要なスキルの 1 つは、ドキュメントを作成し、それを要約することです。

ソフトウェア テストでは、テスト計画書、テスト計画書、テスト ケース、バグの提出、テスト レポートなど、作成するドキュメントがたくさんあります。場合によっては、各イテレーションが完了した後、上司から複数の経験ドキュメントの出力を求められることがあります。文書を書ける試験にはいかに人材が必要かが分かります。

04

コンピュータの基本

ソフトウェアテストエンジニアは、どのような意味でも IT 人材と見なすことができ、コンピュータの基本を知っている必要があります。

それ以外の場合は、混乱するのでサービスを終了してください...

どんなに混乱していても、環境変数を設定してみましょう...

ソフトウェアをインストールさせて、ソフトウェアをアンインストールさせて、長い時間を費やし、インストールされたソフトウェアはすべてCドライブにあり、アンインストールされたソフトウェアはまったくアンインストールされず、再インストールは失敗し、そして再び混乱します...

DOS コマンド ウィンドウで IP を確認してから、静的 IP を設定すると、再び混乱することになります。

………………

コンピューターの基本は、ソフトウェア テスターに​​必要なスキルの 1 つです。

05

ソフトウェアツール

IT 担当者として、いくつかのソフトウェアを知らないと言うのは恥ずかしいですか?

それでは、ソフトウェア テスターが知っておくべきソフトウェアを一緒に調べてみましょう。

オフィスソフトはもちろん、ソフトウェアのテストでは多くの文書を書く必要があるため、オフィスソフトの知識が必要です。

要件を分析したり、テストポイントを分解したりする際には必ずマインドマップを描く必要があるため、XMINDなどのマインドマップソフトウェアには必ずマインドマップが必要です。

構成管理ツールには、以前の SVN であっても、人気のある git であっても、常に 1 つあります。

リモート接続ツール、データベース、サーバーは基本的に計算機室で設定するため、データベース、サーバーのリモート接続ツールを知っておく必要がある 計算機室に行って操作することはできない 計算機室に行って操作する場合、モニターを忘れずに持参する必要があります。

知らない場合は、常にDu NiangとUncle Guを確認してください。誰もがそれを知っているとは言わないので、しないでください。そうでなければ、どうして同じ問題が発生し、他の人はすぐに解決策を見つけられるのに、自分が検索した Web ページが常に見つかるとは限らないのでしょうか。

06

データベース

MySQL 、Oracle、SQLServere、DB2 など、データベースの特性、パフォーマンス、最適化を知る必要はないかもしれませんが、SQL 言語を知る必要があります

SQL 言語は、DDL、DML、DQL、および DCL になります。

データ定義言語 (DDL):

データベース、データ テーブルなどを含むデータ オブジェクト (ライブラリ、テーブル、インデックス、ビュー) を定義および管理するために使用されます。例: CREATE DROP ALTER およびその他のステートメント。

データ操作言語 (DML):

データベース オブジェクトに含まれるデータを操作するために使用されます (例: INSERT UPDATE DELETE ステートメント)。

データクエリ言語 (DQL):

これはデータベース オブジェクトに含まれるデータをクエリするために使用され、単一テーブル クエリ、接続クエリ、ネストされたクエリ、コレクション クエリなどのさまざまな複雑で異なるデータベース クエリを実行し、表示のためにデータをクライアントに返すことができます。 : SELECT ステートメント。

データ制御言語 (DCL):

GRANT、REVOKE、COMMIT、ROLLBACK、その他のステートメントなど、管理権限やデータ変更を含むデータベースの管理に使用される言語。

ソフトウェアテスターはデータベース構造を気にする必要がない場合でも、DDL と DCL を使用する必要はありませんが、データ (追加、削除、変更、クエリ) の DML 言語と DQL 言語を知っている必要があります。 )。

INSERT、UPDATE、DELETE ステートメントは形式に従って直接使用するだけで非常に簡単であると言っても、SELECT はどうでしょうか。

SELECT ステートメントには単純なクエリだけでなく、複雑なクエリもあります。

複雑なクエリには、複数テーブル クエリ、結合クエリ、サブクエリ、およびさまざまな関数を備えたクエリが含まれます。

ソフトウェア テスターはこれらの文をマスターする必要があります。

07

リナックス

サーバーのオペレーティング システムとして Linux が使用されており、ソフトウェア テスターは LINUX 上にテスト環境を構築する必要があることがよくあります。

自社でテスト環境をすべて開発し、運用保守でシステムやソフトウェアを導入するというなら、Linuxシステムの知識は必要ありません。

それならあなたは間違っています。

テスト中にエラーが報告された場合は、常にバックグラウンドでログを確認してバグかどうかを分析する必要があり、バグの場合はその場所を特定する必要があります。

Linux システムが非常にスタックしている場合は、常にプロセスを確認したり、システム リソース管理を確認したり、いくつかのプロセスを強制終了したり、サービスを再起動したりする必要があります。

したがって、ソフトウェア テスターはこれらのコマンドを知っている必要があります。

これらがまだ開発と運用保守に頼れると言うなら、私が言わなかったことにしてください。

08

プログラミング言語

私はIT関係者なので、プログラミング言語を知らないと外に出るととても恥ずかしいと思われます。

現在、世界中にはC、C++、C#、世界最高の言語(PHP)、JAVA、Perl、Pythonなど、何百ものプログラミング言語があるため、常に言語を選択する必要があります使い方を学ぶこと。

通常、会社のシステムで現在使用されている言語が選択されます。

しかし、どのように選べばよいかわからない場合は、ソフトウェア テスターは JAVA と Python を選択することをお勧めします。JAVA には長い間その利点があるはずですが、Python がこれほど短期間で普及できるのには理由があるはずです。時間。

プログラミングの基礎がない場合は、まず Python を学習することをお勧めします。Python は自然言語に近く、より簡単かつ迅速に学習できます。

09

業界

ソフトウェア テストの原則の 1 つは、テスト アクティビティがテストの内容に依存するということです。

そうすると、このテストの内容は、その会社のビジネス、ビジネスになる前に、俗に需要と呼ばれるものです。

JDでは、決済業界の経験が優遇される、金融業界の経験が優遇される、通信業界の経験が優遇される、電子商取引業界の経験が最適化される、などの傾向がよく見られます。

なぜそうなるのでしょうか?

テスターはビジネスを理解し、ビジネスに精通していなければならないからです。

電気通信業界に従事するテスターは、HTTP プロトコル、TCP/IP プロトコルなどのさまざまなプロトコルを習得する必要があり、スイッチやルーターの原理に精通している必要がある場合があります。

金融業界に従事するテスターは、さまざまな会計知識に精通している必要があります。

組み込みシステムをテストしている場合は、ハードウェアの知識も理解する必要があります。

ソフトウェア テスターは、他の誰よりもテスト対象のソフトウェアのビジネスに精通している必要があります。

これらは基礎の基礎です。

それでも大きな牛に成長する場合は、テスターとして、テスト、パフォーマンス テスト、セキュリティ テスト、インターフェイス テストなどを自動化できる必要もあります。

各テストには、自動テストなどのさまざまなツールやフレームワークが含まれます。

たとえば、RobotFramwork、QTP、Selenium、AutoRunner などのツールが多数あります。すべてを使いこなす必要はありませんが、少なくとも 1 つは知っておく必要があります。

他の種類のテストについても同様です。

ソフトウェアのテストは簡単だとまだ言えますか?

「道は長くて、上も下も探してみるよ」と言いたいです、友達、一緒に頑張りましょう。


最後に、エディターは、テスト理論、Linux の基本、MySQL の基本、Web テスト、インターフェイス テスト、アプリ テスト、管理ツール、Python の基本、Selenium 関連、パフォーマンス テスト、LordRunner を含む、最新のソフトウェア テスト システム学習チュートリアルのセットをまとめました。関連する待機

ビッグデータの要約により、ソフトウェアテスト職の面接はほぼ同じであることがわかりました。よくある質問には次のようなものがあります。

  • 第 1 部、テスト理論 (テスト基礎 + 要件分析 + テストモデル + テスト計画 + テスト戦略 + テストケースなど)
  • 第 2 部、Linux (Linux の基礎 + Linux の練習問題)
  • 第三部、MySQL (基礎知識 + クエリの練習 + 万年学生テーブルの典型的な面接質問の要約 + データベース企業の実際の質問)
  • パート IV、Web テスト
  • パート V、API テスト
  • パート VI、アプリのテスト
  • パート VII、管理ツール
  • 第 8 部、Python の基礎 (Python の基礎 + プログラミングの質問 + コレクション + 関数 + Python の機能など)
  • パート IX、Selenium 関連
  • パート 10、パフォーマンス テスト
  • パート 11、LordRunner 関連
  • パート 12、コンピュータ ネットワーク
  • 第 13 部、構成の原則
  • パート 14、データ構造とアルゴリズム
  • パート XV、論理の問題
  • パート XVI、人事

1. ソフトウェアテストの基礎

  • ソフトウェアテストの手順は何ですか?
  • テストスクリプトを記録するにはどうすればよいですか?
  • テスト方法について検討すべきテスト方法
  • テストの労力を見積もるにはどうすればよいですか?
  • テスト設計の問題
  • テストプロセス中にエラーが発生した場合、解決策は何ですか?
  • テスト実行の問題
  • テスト評価の目標
  • テストを改善するにはどうすればよいでしょうか?
  • C/Sモードのメリットとデメリット
  • B/Sモードのメリットとデメリット
  • ....

ここに画像の説明を挿入

2、Linux

  • grep と find の違いは何ですか? grep の用途は何ですか?
  • IPアドレスを表示しますか?
  • 複数レベルのディレクトリを作成および削除しますか?
  • 現在のユーザーのホーム ディレクトリで haha​​.txt ファイルを見つけますか?
  • Tomcat プロセスにクエリを実行してプロセスを強制終了し、Linux コマンドを記述するにはどうすればよいですか?
  • ログ ファイルを動的に表示しますか?
  • システムのハードディスク容量を表示するコマンド?
  • 現在のマシンのすべてのポートを表示します、聞きますか?
  • ……

ここに画像の説明を挿入

3. パイソン

  • Python ソース コード ファイル内のコードの行数を数え、コメント、空白行を削除して出力しますか?
  • Python は cmd を呼び出して結果を返しますか?
  • バブルソート
  • 4 つの数字 1、2、3、4 から構成される、繰り返しのない 3 桁の異なる数字は何通りありますか?
  • Python を使用して 10000 以内の対称な数値を出力してください (対称的な数値の特徴: 数値は左右対称です。たとえば、1、2、11、121、1221 など)。
  • 整数 N と 0 ~ 9 の数値 K が与えられた場合、0 ~ N 内の数値 K の出現数を返す必要があります。
  • 101 ~ 200 の間に素数がいくつあるかを判断し、すべての素数を出力します
  • 三角形を入力する関数、入力後の出力が三角形を形成できるかどうか、および三角形の種類は、同値クラス分割法を使用してテスト ケースを設計してください。
  • ……
    ここに画像の説明を挿入

4.MySQL

  • どの Mysql エンジンを使用していますか?各エンジンの違いは何ですか?
  • クエリコマンドを最適化するにはどうすればよいですか?
  • データベースの最適化?
  • SQL インジェクションはどのように発生し、それを防ぐにはどうすればよいですか?
  • NoSQL とリレーショナル データベースの違いは何ですか?
  • MySQL の本質と MongoDB の最も基本的な違いは何ですか
  • MySQLデータベースにページングを実装するにはどうすればよいですか?
  • MySQLデータベースの操作は?
  • データベースを最適化しますか? データベースのパフォーマンスを向上させますか?
  • データの整合性とは何ですか?
  • ……
    ここに画像の説明を挿入

5. ウェブ

  • Webテストとアプリテストの違いは何ですか?
  • WEBテスト環境構築とテスト方法
  • WEBテストチュートリアル
  • WEBテストのポイントと基本的なやり方
  • Webテストページの概要
  • ……
    ここに画像の説明を挿入

6. インターフェーステスト

  • インターフェースとは何ですか
  • モジュールが http から https にリクエストする場合、テスト計画はどのように策定および変更する必要がありますか?
  • 一般的に使用されている HTTP プロトコル デバッグ エージェントは何ですか? HTTPS プロトコルをキャプチャするための設定プロセスを詳しく説明してください。
  • TCP/IPプロトコルの階層構造と各層の重要なプロトコルについて説明する
  • jmeter の場合、インターフェイスの応答結果は次のようになります。
  • インターフェースによって生成されたガベージデータをクリーンアップする方法
  • サードパーティのインターフェイスへの依存に対処する方法
  • テストデータはどこに置きますか?
  • データドリブンとは何ですか?またそれをパラメータ化する方法は何ですか?
  • ...
    ここに画像の説明を挿入

7. 性能試験

  • パフォーマンス テストの目的は何だと思いますか? パフォーマンス テストで適切な作業を行うための鍵は何ですか?
  • サーバーサイドのパフォーマンス分析はどのような角度から行われますか?
  • ストレステスト、ネガティブテスト、パフォーマンステストをどのように理解すればよいでしょうか?
  • メモリリークがあるかどうかを判断する方法と懸念される指標は何ですか?
  • ソフトウェアにおけるメモリリークの原因とその確認方法を説明します(開発言語と組み合わせて記述可能)
  • バリュー転送とは何ですか、アドレス転送とは何ですか。また、この 2 つの違いは何ですか?
  • システムのボトルネックとは何ですか?
  • ...
    ここに画像の説明を挿入

8、セレン

  • 自動テストフレームワークを構築するにはどうすればよいですか?
  • 自動テストケースを設計する方法:
  • Webdriver はどのようにしてブラウザを開いたり終了したりするのでしょうか?
  • 自動テストフレームワークとは何ですか?
  • Selenium とは何ですか?また、一般的なバージョンは何ですか?
  • コマンドラインから Selenium RC を起動するにはどうすればよいですか?
  • 私のマシンではポート 4444 が空いていません。別のポートを使用するにはどうすればよいですか?
  • Selenium Server とは何ですか? Selenium Hub との違いは何ですか?
  • Selenium からデータベースに接続するにはどうすればよいですか?
  • オブジェクトが複数のページに存在することをどのように確認しますか?
  • XPath での単一スラッシュと二重スラッシュの違いは何ですか?
  • SeleniumIDE/RC のユーザー拡張機能を作成するにはどうすればよいですか?
  • ページが正常に読み込まれた後に要素の存在を確認するにはどうすればよいですか?
  • Selenium Grid について何を知っていますか?それが提供する機能は何ですか?
  • Java クラスから Selenium サーバーを起動するにはどうすればよいですか?
  • Seleniumの検証ポイントは何ですか?
  • XPath とは何ですか? Selenium で XPath を使用する必要があるのはどのような場合ですか?
  • ……
    ここに画像の説明を挿入

9. コンピュータとネットワーク

  • コンピュータの IP は 192.168.10.71、サブネット マスク 255.255.255.64、192.168.10.201 です。
  • DNS、Active Directory、ドメインの概念について簡単に説明してください。
  • 10M ブロードバンドとは何を意味しますか? 理論上のダウンロード速度はどのくらいですか?
  • IPアドレスとは何ですか?
  • OSI ネットワーク モデルの 7 つの層とは何ですか?
  • TCPとUDPの違いは何ですか?
  • HTTP はどのプロトコル層に属しますか?
  • HTTP と HTTPS の違いは何ですか?
  • Cookie とセッションの違いは何ですか?
  • HTTP get リクエストと post リクエストの違いは何ですか?
  • HTTP1.0とHTTP1.1の違いは何ですか
  • TCPコネクションの確立処理と切断処理?
  • クライアントが DHCP を使用して IP を取得するプロセスは?
  • ネットワーク セグメントのネットワーク アドレスとブロードキャスト アドレスを書き留めますか?
  • ……
    ここに画像の説明を挿入
    ここに画像の説明を挿入

10. 人事

  • テストのキャリアアップはどのようなものですか? テストを行うメリットは何だと思いますか?
  • 仕事を探すとき、最も重要なことは何ですか?
  • なぜあなたを認めなければならないのでしょうか?
  • あなたの個人的なベストポイントを教えてください。
  • テストエンジニアにはどのような資質やスキルが必要なのでしょうか?
  • また、ソフトウェアの品質をどのように確保するか、つまりソフトウェアの品質を最大限に保証するにはどうすればよいとお考えですか。
  • なぜこのラインをテストすることにしたのですか?
  • あなたを採用したら、その部門にどのような貢献ができますか?
  • ……
    ここに画像の説明を挿入

やっと

文書全体は合計 200 ページ近くあります。すべてをお見せするのは決して非現実的です。読者の読書体験に影響を与えないよう、内容の一部のみを示します。ご理解いただき、事前の復習にお役立ていただければ幸いです。面接や良い仕事を見つけて、インターネットで情報を検索して学ぶ時間を節約しましょう。

私の記事を注意深く読んでくださった皆さんに感謝します。あまり価値のあるものではありませんが、使用できる場合は持ち帰っても構いません。

 これらの資料は、[ソフトウェア テスト] の友人にとって、最も包括的かつ完全な準備倉庫となるはずです。この倉庫は、最も困難な旅を乗り越える何万人ものテスト エンジニアにも同行してきました。そして、あなたにも役立つことを願っています。

情報取得方法:

おすすめ

転載: blog.csdn.net/qq_56271699/article/details/131171963