2

私は現在の会社でソフトウェアエンジニアとして始めました。時が経つにつれ、私はさまざまなシステムに積極的または責任を負うことができる唯一の人物であったため、ITマネージャーになるように「昇進」しました。今では、ソフトウェアエンジニアとして、構築するさまざまなソフトウェアモジュールの機能テストを作成していました。その結果、今日でも、作業したシステムのさまざまな部分をすばやくテストできます。ただし、ここで作業している他のさまざまな開発者からのカバレッジがほとんどまたはまったくない、大規模な大規模なコードベースがあります。

今、ITマネージャーとして、システムのすべての部分が機能していることをテストできるようにしたいと思いますが、次のことがあります。

A)コードテストカバレッジの作成に専念する予算時間はありません

B)ソフトウェアが機能していることを監視するのに役立つテストスイートの作成を開始したいという「チーフソフトウェアエンジニア」からの要望はありません。

ソフトウェアチームが行っていることをすべてやめて、テストスイートの作成に2週間を費やすことは期待していませんが、システムのさまざまな部分が機能していることを確認できるように、テストスイートの対象範囲を徐々に拡大し始めたらいいのですが。 。

それで、それを煮詰めて、どうすればソフトウェアチームにテストスイートの構築を開始させることができますか?

その他の注意事項:

A)IT部門(UNIXエンジニア、デスクトップサポート担当者、および関連するオフィスと生産設備)の管理に加えて、ソフトウェアプロジェクトを実行するように求められています。

B)私のUNIX管理者は、本番システムで完全なコードベースを実行するのに非常に苦労しており、ソフトウェアチームから十分な支援を受けていません。彼は、新しいインストールでWebアプリがどこで失敗しているかを確認するために、いかなる種類の診断も実行できません。会社のVPは、何が起こっているかを確認するために、コードでprint_rを実行するように私に言い続けています。これは最悪です!!!

4

4 に答える 4

2

まず、テスト駆動開発を調査して、開発者が理解できるように、また管理者が理解できるように説明できるようにする必要があります。あなたはWebアプリケーションを開発しているようで、技術的なスキルを持っているので、思い切ってWebアプリケーションをテストするためのオープンソースツールを選択し、インストールして、自分で開発したものすべてのテストの構築を開始することをお勧めします。

ツイルは、あなたが必要とする種類のテストツールの例です。

次に、マネージャーとして、開発者にあなたの例に従うように誘惑し、そうすることで彼らに報酬を与える必要があります。そして、彼らがテストフレームワークを使用せず、それが予防可能な問題につながる場合、彼らを罰します。そのような事件が1つ発生するとすぐに、上司を乗せて勢いをつけることができるはずです。

全体として、目的は良い結果を得るために行う作業を減らすことであることを忘れないでください。角を切ることは仕事を減らす方法ですが、悪い、または見事に悪い結果のリスクにつながります。リスクレベルとリスクのある潜在的なコストを管理者に通知し続けます。

テストのために人々にテストを強制するだけではいけません。それは彼らがより生産的になるのを助けなければならないので、それのための最初のプロジェクトを慎重に選んでください。

于 2009-10-20T18:10:10.210 に答える
1

それは良い質問です。そして、それに対する正解が1つあれば、はるかに多くのソフトウェアプロジェクトが成功し、高品質を実現します。

そのような変更をトップダウンで行うのは良い考えではないと思います。それは開発者自身から推進されなければなりません。したがって、TDD方向のトレーニングは良いことですが、それは長い時間の投資であり、時間がかかります。

より高速なソリューションが必要な場合は、機能テスト、受け入れテスト、およびシステムテストを検討する必要があります。これらのテストでは、アプリケーション全体をほぼすべてのレイヤーでテストします。Webアプリケーションを開発している場合は、Seleniumを使用してテストを自動化することを検討する必要があります。それを使用してテストを作成するのは簡単です(SeleniumIDE)。

ただし、そのようなテストのみを使用しても(単体テストではなく)、TDDから得られる利点は得られません。

テストの自動化は非常に重要です。

于 2009-10-20T17:59:10.950 に答える
1

テストチームまたはQAチームはありますか?

最初に、ビルドの認定に使用するテストケースがあるかどうかを確認し始めます。そうでない場合は、製品のコア機能をテストするためにこれらのテストケースを開発する必要があります。

次のステップは、テストケースの自動化です。

トラブルシューティングツールやデバッグ機能なしでアプリケーションが十分に開発されていない場合、これらが次のリリースの要件として追加されるまでは困難です。

私の2セント。

于 2009-10-20T18:09:17.210 に答える
1

私はmichaelkebeに同意しない必要があります。これらの変更を完全に成功させるには、いくつかの主要な開発者に加えて、エグゼクティブレベルからのサポートが必要です。

そのサポートがなければ、「すでに機能しているもののテストを書くのに時間を無駄にしている」ように見える開発者になるでしょう。

明確なビジョンが必要であり、それを大声で頻繁に繰り返す必要があります。

私はここで必ずしもアジャイルを支持しているわけではありませんが、多くの場合、それはビジネスオーナーのためにクリックします。

その上でそれらを売ることができれば、あなたがワクワクすること(ソフトウェアの迅速な提供、簡単なメンテナンス、自動テストなど)が実現します。

于 2009-10-20T18:33:34.993 に答える