2

私はソフトウェア品質保証の初心者です。私は上司から、私たちの会社でどのようにそれを行うことができるかを調べるように言われました. ソフトウェアの品質保証とは何か、またソフトウェアの品質保証に使用できるオープン ソース ツールを教えてください。

4

6 に答える 6

7

こんにちは 'Bliki' の Martin Fowler や Uncle Bob's Blatherings の Robert Martin のような人々、そして Joel Spolsky の今は亡き Joel On Software のブログを読んでみてください。品質とは何かについての意見にはすべて良い.

現在、Java と Macker や Findbugs などのツールを使用して、コードの正確性とガイドラインへの準拠をチェックしています。

再現性と管理を満足させるために、ソース管理システムから抽出されたコードに対して Hudson や Cruise Control などのビルド サーバーによってユニット テストを自動的に実行することをお勧めします。また、「力」にいくつかの指標を与えるので、コードの構築、テストなどをどのように行うかを示すことができます.

最終的には、自分のしていることに気を配る善良な人々に帰着します。

于 2010-09-23T12:53:59.063 に答える
2

それはすべて、テスト、テスト、テストです。単体テスト フレームワーク、コード アナライザー、メモリ プロファイラーなど、これを実現するのに役立つツールは多数あります。使用するツールは、会社がソフトウェアに使用するプログラミング言語と開発プラットフォームによって異なります。

于 2010-09-23T12:50:08.217 に答える
2

他の人が言ったように、テストはソフトウェア QA の重要な部分です。しかし、コードレビューについてまだ誰も言及していないことに驚いています。ピア コード レビューを開発プロセスに統合する方法を見てみましょう。これは、コードの品質を向上させ、チーム全体で知識を共有するための優れた方法です。問題の検出が早ければ早いほど、修正が容易になり、費用もかからないため、ソース コードの変更ごとにコード レビューを検討してください。

QA の優れた完全な紹介が必要な場合は、Steve McConnell によるCode Completeのパート II と V をお読みください。実際、すべてを読んでください。コードの品質を改善する方法の実用的な例と、さまざまな QA 手法の利点を説明する指標 (管理者に提示できます) が提供されています。

私が言及する章には、次のようなトピックが含まれます。

  • 品質を向上させるための設計コンセプトとプラクティス
  • 高品質のルーチン
  • 防御的プログラミング
  • 疑似コードプログラミング
  • ソフトウェアの品質を改善するための手法 (相対的な有効性の評価を含む)
  • いつ品質保証を行うか
  • 共同構築(ペアプログラミング、コード検査含む)
  • 開発者テスト
  • デバッグ(心理的考慮を含む)
  • リファクタリング
  • コードチューニングの戦略とテクニック

McConnell のソフトウェア品質の一般原則を引用すると、次のようになります。

品質の向上による開発コストの削減

于 2010-09-23T13:39:19.330 に答える
1

また、使用される検証プロセスについてもです。ソフトウェアを 1 日中テストすることはできますが、それが何を意図していて、どのような結果が期待されるかがわからない場合は、まったく間違ったテストを行っている可能性があります。手始めに堅固なフレームワークを説明している非常に優れた本があります (会社が ISO 認定を受けている場合は、ISO 要件もカバーします): http://www.amazon.com/Computer-System-Management-Validation-Cycle /dp/1932828095

于 2010-09-23T12:56:19.887 に答える
1

バーナードが上で言ったように、テストを行う必要があります。Java で開発している場合は、JUnit を使用できます (NUnit は .Net でも同様に機能します)。単体テストは始まりにすぎませんが、単体テストがどの程度完了しているかを示すために、コード カバレッジ ツールを参照することもできます (オープン ソース ツールの EMMA と Cobertura が Java 用にこれを提供しています)。変更がソース ツリーにチェックインされるたびに、これらのテストを自動的に実行するために hudson を使用することもできます (hudson は、開発がどの程度安定しているかを示します。テスト ケースの合格率の変動が多いということは、多くの違反を行っていることを示しています)。変更例)。

その後、Findbugs for Java のようなものを調べて、危険な慣行を見つけることができます。Java 開発に Eclipse を使用している場合は、メトリクス プラグインを取得して、コードに対して他のさまざまな分析を実行できますが、これらのメトリクスが実際に何を示しているかを知る必要があります。

最終的に、製品の品質は、リグレッションを引き起こすことなく目的を達成する変更を確実に導入できるかどうかによって定義されます。上記のツールはほんの始まりにすぎません。テストが上手になるには長い時間がかかります (私自身はそこにいません)。しかし、ツールとプラクティスを組織に導入すれば、そこから取り組むことができます。

于 2010-09-23T13:03:25.313 に答える
1

一般に、これは IT スタッフだけの問題であると考えてはいけません。コードにバグを入れたくないのは明らかであり、それを支援するツール/プロセスはいくつもあります。QA は実際にはより大きな範囲のプロセスです。上で DBA_Alex が述べたように、ソフトウェアを使用してビジネスでどのような問題を解決しようとしているのかを知る必要があります。最終的には、その質問に答えるためにビジネス団体が関与する必要があります。最終的なソリューションには、IT とビジネスの両方の人々が含まれていることを確認してください...

于 2010-09-23T13:05:55.700 に答える