内容:ガイド
序文
質問を投げます:
例: 特定のフレームワークを使用して自動テスト スクリプトを作成できますが、それはテスト開発とみなされますか?
面接ではこのスキルは大きなプラスになりますか?
業界の一般的な経験に基づくと、特定のフレームワークを使用していくつかの自動スクリプトを作成することはテストではないとしか言えません。通常、このスキルはビジネス テスト チームが担当します。
テストと開発の違い
概要の開発とテスト開発の類似点と相違点:
さまざまなサービス オブジェクト: 通常、開発者は特定のビジネス ニーズに直面し、明確な R&D 目標を持って R&D 活動を実行しますが、アジャイル環境では、開発できる要件が明確な「ストーリー」である必要があるため、これはさらに明白です。 。
テスト開発では、現在のテストチームからテスト活動やテストプロセスの問題点を見つけ出し、改善することがより必要です。出力は、小さなツール、特定のフレームワークのカスタマイズされた開発、または複数のプラットフォームの統合です。
承認基準は異なります。特定のビジネス要件を達成するために開発を行う場合、機能要件を満たすことに加えて、さまざまな非機能要件 (パフォーマンス、操作性、セキュリティなど) も満たす必要があります。
テスト開発の成果物は主にチーム内で利用され、性能や操作性、さらにはUIなどの要求はそれほど高くなく、実践的な問題を解決することが中心となります(もちろん、開発段階で考慮した方がよいでしょう)。同時にです。)。
テスト開発と開発の同じ点は、コード機能の要件が同じであるということです。
少なくとも、特定の言語 (JAVA、Python はすべて OK、言語軽蔑の連鎖があってはなりません) に精通している必要があり、同時にこの R&D 言語のいくつかの一般的なフレームワーク (Spring Family Bucket、Django、さまざまなMQ、Redis などのミドルウェア、Mysql などの一般的に使用されるデータベースなど)では、ビジネスをコードに変換して実装するには、ある程度の研究開発思考が必要です。
現時点では、DevOps の知識と能力を持っていることは大きなメリットとなりますが、時間が経つにつれて、このスキルはより一般的になり、最終的には基本的な能力になるでしょう。
試験に必要な能力
チーム特有のテスト開発の能力要件は、次の 3 つのカテゴリに単純に分類できます。
エントリーレベル:
インターフェイス テストで使用される Junit や Pytest、パフォーマンス テストで使用される Jmeter や Locust、UI ベースの Selenium、Airtest など、一般的に使用されるいくつかのテスト フレームワークに精通していること。
さらに、これらのフレームワークとチームの具体的なビジネスニーズに基づいて、レポート形式の変更、ポイント出力や特定機能の追加など、簡易的な二次開発を行うことも可能です。
チームビルディングの観点から見ると、このようなスキルにより、コードに興味があり、粘り強く学習できるテスト チームのメンバーは誰でも、この種の作業に挑戦できるようになります。
アップグレード レベル:
さまざまなフレームワークの特性を理解し、さまざまなプロジェクトの実際の状況に基づいて具体的な選択を行うことができるようになります (たとえば、チームのコーディング能力が一般的に低い場合、インターフェースとして Jmeter を使用することは受け入れられないわけではありません。テスト対象のシステムは
JAVA フレームワークを使用しているため、Pytest よりも Junit の導入が適しています)
フレームワークは、より適切に使用したり、ビジネス ニーズに準拠したりするためにリファクタリングできます。これらのフレームワークは他のプラットフォームに統合できるため、他のプラットフォームでテスト ケースを迅速に呼び出して実行できます。
テスト活動における本当の問題点を洞察し、解決策を提示できるようになります。この能力があれば、テスト開発としての責任を十分に果たせますが、そうでない場合は、開発とあまり変わらないか、一定のコーディング能力を備えた単なるテスターに過ぎません。チームにとってそれはそれほど重要ではない。
上級レベル:
グローバルな視点からテスト活動を観察し、チーム内に存在する共通の問題を発見し、独自の解決策を提案して実装できる。
有効性の観点から、チームのテストの品質と効率を向上させます。
私の考えでは、これが高度なテスト開発の中核となる競争力です。このときテスト開発は、テストチーム全体のパフォーマンスをいかに向上させるかに重点を置くと同時に、研究開発サイドを抜け出して開発を支援し、研究開発の効率を高めることができるようにする必要があります。
非常に興味深い言葉です。「
テクノロジーはわかりませんが、ビジネスには精通しています。協力してくれる強力な開発者を雇ってもらえますか?」
ある意味、これは少し自滅的です。
ほとんどの場合、あなたの表現はプロのプロダクト マネージャーよりも優れているわけではありません。プロダクトマネージャーと開発がどれだけ喧嘩するかは分からないですよね?
したがって、テスターとしては、落ち着いてコードを学び、実際のビジネスシーンで実装することが何よりも重要です。コード能力はテスターの基礎能力となっています。何も知らなければ、試験への道を進むことは困難です。
現在のテスト環境は大きく変化しています。DevOps の概念はますます多くのチームに受け入れられ、DevOps 関連のコンテンツを実践するチームが増えています。テスト チームは弱体化しています。
しかし、テスト機能は向上しており、デマンド側の DOD にせよ、研究開発側の TDD や DDD にせよ、いずれもテスト容易性と品質保証を重視しています。したがって、アジャイル開発におけるテスト機能の価値をどのように強調するかは、すべてのテスターが考えるべきテーマとなっています。
現在の環境では、テスト活動によって全体的な研究開発効率を向上させ、フィードバック経路を効果的に短縮できるかが、全員が追求する共通の目標となっています。
テストのキャリア開発パスには、アーキテクチャをテストする機能もあります。テストアーキテクトにとって必要なのは、「エンドツーエンド」のテスト制御です。
需要側では、製品のビジネス目標を理解し、ユーザーの使用シナリオを整理し、製品の全体的なテスト戦略を出力する必要があります。
R&D 側では、R&D アーキテクトと対面でコミュニケーションをとり、R&D プロセスのテスト可能性を確保し、テクノロジー選択の原因と結果を理解し、選択されたテクノロジー アーキテクチャの一般的な問題を的を絞った方法で理解して思い出させることができます。プロジェクト開発の初期段階での問題の数を減らします。
テスト側では、より適切で効果的なテスト戦略を立て、チームができるだけ早くテスト活動を実行できるように支援し、遭遇する問題を解決し、テストのパフォーマンスの効果的なバランスを取ることができる必要があります。
運用保守面では、製品の立ち上げ完了を支援し、オンライン監視をしっかり行うことで問題を早期に発見し、損失を軽減します。
以下は、私がまとめた 2023 年の最も完全なソフトウェア テスト エンジニア学習知識アーキテクチャ システム図です。 |
1. Pythonプログラミングの入門から習得まで
2.インターフェース自動化プロジェクトの実戦
3. Web自動化プロジェクトの実戦
4. アプリ自動化プロジェクトの実戦
5. 一流メーカーの再開
6. DevOps システムのテストと開発
7. 一般的に使用される自動テストツール
8、JMeterのパフォーマンステスト
9. まとめ(最後にちょっとしたサプライズ)
たとえ人生の道がどんなに険しいとしても、私たちは前に進む勇気を失ってはなりません。困難や障害を恐れず、強い意志とたゆまぬ努力で、自分らしい輝かしい人生を切り開いていきましょう!
成功は一夜にして達成されるものではなく、忍耐、勤勉、そして勇気が必要です。確固たる信念を持ち、粘り強く目標を追求する限り、最終的には私たち自身の輝かしい人生を創造することができます。
誰もが心の中に夢と粘り強さを表す旗を持っています。私たちが常に確固たる信念と高い志を持ち、勇敢に前進し、常に自分を超えて、より輝かしい明日を迎えられますように!