質問

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

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

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

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

ソフトウェアチームが彼らがしていることすべてをドロップし、テストスイートの作成を2週間費やすことを期待していませんが、システムのさまざまな部分が機能していることを確認できるように、彼らが時間の経過とともにテストスイートのカバレッジの拡大を開始した場合は素晴らしいことです。

それで、それを煮詰めて、ソフトウェアチームにテストスイートの構築を開始するにはどうすればよいですか?

その他の警告:

a)IT部門の管理に加えて、まだソフトウェアプロジェクトを行うように求められています(UNIXエンジニア、デスクトップサポートガイ、関連するオフィスおよび生産機器)

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

役に立ちましたか?

解決

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

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

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

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

テストを自動化することが重要です。

他のヒント

まず、テスト駆動型開発を調査して、開発者が管理者と経営陣を理解するという点でそれを快適に説明する必要があります。 Webアプリケーションを開発しているようで、技術的なスキルがあるように見えるので、思い切って、Webアプリケーションをテストするためのオープンソースツールを選択し、インストールして、自分で開発するもののテストを作成します。

ツイル 必要なテストツールの種類の例です。

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

全体として、目的は、良い結果を得るためにより少ない仕事をすることであることを忘れないでください。コーナーを切ることは、仕事をする方法を減らす方法ですが、悪い結果、または壮大な悪い結果のリスクにつながります。リスクレベルと潜在的なコストを危険にさらしていることを管理し続けてください。

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

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

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

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

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

私の2セント。

Michaelkebeに反対する必要があります。これらの変更は、完全に成功するために、いくつかの主要な開発者に加えて、エグゼクティブレベルからのサポートが必要です。

そのサポートがなければ、あなたは「すでに機能しているもののテストを書くのに時間を浪費している」と思われるいくつかの開発者になります。

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

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

それでそれらを販売できる場合、あなたが興奮していること(ソフトウェアを迅速に、簡単なメンテナンス、自動テストなど)に配信することが所定の位置に分類されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top