ソフトウェアのテストは実際にプロのプロジェクトで行われていますか?


25

私は長い間開発者であり、請負業者であるため、いくつかの企業で多くのプロジェクトに携わってきました。

私はと推定して20%未満のプロジェクトを系統的にテストされています。綿密にテストされたとは、アドホックで計画的なテスト以外のテストを意味します。

また、チームの一部として専用のテスター、テスト計画ドキュメント、開発者が自動化されたテストを作成し、テストカバレッジを追跡し、結果を測定するプロジェクトでは、10%未満のプロジェクトが綿密にテストされていると推定しています。

2つの質問

  1. この問題についての推定パーセンテージは何ですか?
  2. ソフトウェアテストに関する専門的な経験は何ですか?

追加メモ

系統的なテストの質問にはかなり偏った答えが得られる可能性があるため(人々他の人より優れていることを自慢したい)他の開発者(系統的なテストにさらされていない開発者)にも答えを提供することをお勧めします。あなたの会社を除いてどこでも行われています。


偉大な質問、再定式化に時間を割いてくれてありがとう!

@マークトラップ:ありがとう。かなり基本的なことだと思いますが、(以前の一連の質問に基づいて)さらに質問することがあります
ロバートコリトニク

回答:


8

私のキャリアでのテストで見たパターンは、プロジェクトの失敗のリスクとの強い一致を示しています。大きなプロジェクトは小さなプロジェクトよりもテストされる可能性が高く、ミッションクリティカルなアプリケーションはマーケティングWebサイトよりもテストされる可能性が高く、社内のシステムは一般向けのものよりもテストされる可能性は低くなります。

それでも、過度にテストされたプロジェクトと十分にテストされていないプロジェクトがまだあるが、これらは少数です。


質問を少し編集しました。見積もりも教えてください。
ロバートKoritnik

私が関わってきたほぼすべてのプロジェクト(80%以上)は綿密にテストされていますが、その後、企業のミッションクリティカルなアプリケーションをほぼ独占的に行いました。
マーティンブラウン

私は製薬会社で働いています。アプリケーションの80%は、プロのテスターと開発者によってテストされていると思います。これらの20%は、iPadでのプロモーションプレゼンテーションのような低リスクアプリケーションです。しかし、これも誰かによってアドホックにチェックされます。
yoosiba

5

私たちが生産するものはすべて完全にテストされます。社内のQAチームが過負荷の場合、プロジェクトをテストするオフショアチームがあります。彼らは社内チームほどではありませんが、それは別のトピックです。


質問を少し編集しました。開発専門市場の見積もりを教えてください。プロジェクトが精査されるからです。テストは自動化されていますか?
ロバートKoritnik

このオフショアチームは誰ですか?お勧めしますか?
マーティンブラウン

通常、大企業は他の国(主にアジア)に研究開発センターを持っています。オフショア開発が行われる場所。オフショア開発の目的は、開発コスト(その一部)を削減することです。
ニプナ

2

過去15年間に私が働いていた3社はすべて、自動的に実行される単体テストを行っていました。

それらの会社のうちの2つで、私はそれらを紹介するように押しました。


質問を少し編集しました。プロフェッショナル市場でのソフトウェアテストについての見積もりも教えてください。
ロバートKoritnik

@ロバート:私は一般的な見積もりをするのに十分な就職活動をしていない。私が知っている小さなことから、物事は良くなっています。しかし、その後、私が言った3つのケースのうち2つで自動ユニットテストを推進していたのは私でした
...-sbi

しかし、あなたは他の会社の他の開発者と話をしませんか?
ロバートKoritnik

2

過去9年間で、私は基本的に受け入れ/回帰テストのみを満たしました。ユニットテストはほんの少ししかありませんでした。


質問を少し編集しました。プロフェッショナル市場でのソフトウェアテストの見積もりも教えてください。
ロバートKoritnik

2

はい。

テストの量は、アプリに必要な信頼性とプログラマー文化の成熟度に比例します。

Webサイトは非常に頻繁にバグの穴を歩いています(リンク切れ欠陥です)。

ビデオゲームはしばしばバグがあります。

Windows(最終的に)はかなり信頼できます。

ルーターは非常に信頼性が高い

病院のモニターは「壊れない」

障害の財政コストも信頼性と相関していることに注意してください。


2
私はあなたに強く反対します-あなたはルータが故障するのを見たことがありませんか?Xbox、Playstation、Wiiのゲームはロックされますか?Windowsでブルースクリーンや「アプリケーションが応答していません」が表示されたことはありますか?
JBRウィルキンソン

@JBRWilkinsonポールが言うように、多くの場合バグがあるPCゲームの大多数を取り込むだけでなく、彼の重大度修飾子が欠けていると思います。とにかく、このリストはおそらくある程度の改善を使用できますが、センチメントは正しいです。信頼性は、失敗に関連する財政的損失と相関することがよくあります。
ジェイカー14

1

10年以内に、正式なコードテストを使用したプロジェクトに取り組んだことはありません。

私の現在の仕事では、機能テストのみを行っています。

問題は、経営陣の誰もコードテストについて知らないことです。テスト部門はコードのテストについても知らず、単に高レベルの仕様に従い、行動/機能の観点から準拠しているかどうかを検証します。

適切なコーディングを強制する有能なソフトウェアリーダーはいません。結果は、スパゲッティコード、多くの回帰、見逃されたスケジュールなどです...


あなたの正直な答えをありがとう。あなたの見積もりは何ですか(編集した質問を確認してください)?
ロバートKoritnik

イタリアの私の見積もりは、正式なコードテストの10%未満です。おそらく、ほとんどのミッションクリティカルなコードのみ。
Wizard79

私はアイルランド、イギリス、スコットランド、スロベニアで働いてきましたが、イタリアもそうであるように見えます。
ロバートKoritnik

1

私たちは南アジアの中規模のオフショア会社です。ただし、常に米国ベースのプロジェクトを行い、米国企業から送信された要件を直接処理します。

構築するすべてのアプリケーションに系統的なテストを適用します。おそらく、テストの品質は標準に達していませんが、私たちはそれらを採用しています。


これらのテストは自動化されますか、それとも主に手動で行われますか?質問を少し編集しました。プロフェッショナル市場でのソフトウェアテストの見積もりも教えてください。
ロバートKoritnik

テストのほとんどは手動で行われます。
シャミムハフィス

1

私の純粋主義者は、あなたがどれほど厳密にテストするか、または正式なテストを行うかどうかの決定に組み込まれたリスク管理が必要であることを受け入れたくありません。プログラミングプロジェクトの大部分を占めると思われる内部アプリの場合、バグをリリースし、気づいた後すぐにパッチを適用するコストは、完全なテストチームのコストを上回る場合あります。もちろん、それはアプリと失敗の潜在的なコストに依存します。

そうは言っても、リスク管理計画が正式なテストの欠如の理由だとは思わない。それは、技術以外のマネージャーがそれが提供する価値を理解しておらず、コストだけを見ている結果だと思います。


2
あなたが言っていることは聞きますが、正当化するのは難しいです。バグが気付かれないほど長くなるほど、コストが指数関数的に増加することが研究により示されています顧客に提供するバグのコストは莫大であり、ユニットテストフレームワークがない場合、パッチを適用すると新しいバグが発生することがよくあります(この種の「パッチと修正」の考え方が存在する場合のシナリオ)。その結果、テストツールと方法論の賢明な使用は、パッチと修正よりもはるかに安価であることが示されます。
ロバートハーベイ

3
私はその教義、特にそれがどのように普遍的に適用されているかについてますます懐疑的になっています。時々それは真実であると確信していますが、すべてのバグが等しく作成されるわけでも、すべてのアプリが作成されるわけでもありません。10人が使用している内部アプリのバグは、パッチリリースよりもユニットテスト中に見つかった場合、修正するのに非常に費用がかかることを非常に難しく感じます。テスターがバグの発見に費やす時間の実際のコストを無視しない限り、指数関数的にはより恥ずかしいかもしれませんが、それほど高価ではありません。
JohnFx

2
また、これらの統計は、作成された大規模プロジェクト(オペレーティングシステムなど)に適用できず、ほとんどの人が生計を立てているCRUDタイプのアプリに変換されないのだろうかと思います。
JohnFx

私はあなたたちの両方に同意し、両方のケースを見てきました。しかし、特にソフトウェアにバグがあり、修正された場合に他の機能が実際に壊れ始める場合、ロバートが説明している指数関数的コストの私のシェアは確かに見えます。問題に十分な長さの時間を費やし、バグが十分に長い時間内にとどまる見苦しい十分な必死のコーディングでは、1 + 1は2ではありません。

1

私のサンプルはパーセンテージを推定するのに非常に小さいですが、とにかくここに行きます。

1つはファブレスチップ+ファームウェアの会社で、熱狂的なテストを行いました。それぞれが数十台のユニットを並行してテストする、数十のインストールでの24時間365日の自動テスト。テストソフトウェアの開発に専念するソフトウェアチーム。テスト装置の構築に専念するハードウェアチーム。数十の競合他社に対する互換性テスト。ちなみに、彼らは数百万ドルのチップテスターのインストールを購入して、チップがファウンドリを離れるときにファブが実行するテストの一部を開発およびデバッグしました。

もう一つは銀行でした。これは完全に異なる環境です。製品リリースはありませんが、継続的に実行し続けるための多くの社内ソフトウェアがあります。これらの人たちは、行ったすべての変更からcr * pをテストしました。DEV / QA / PROD環境の非常に厳密な分離、自動回帰テスト、本番環境にリリースする前にエンドユーザーがサインオフする必須のQAテストなどがありました。

ええ、人々は系統的なテストを行います。しかし、あなたが言うことができるように、私は典型的なコンピュータユーザー向けに典型的なGUIソフトウェアを出荷する場所で働いたことがない。


1

私は現在、無線医療機器を製造している小さなスタートアップ企業向けの組み込みファームウェアを書いています。厳格なテストを行う必要があり、CEOに直接報告する誰かが率いる完全に独立した品質部門があります。私は以前に別のテスターでコードを徹底的にテストしたことがありません(比較するのは、約15年前に衛星テレビシステムで作業していたときだけです)。

テスト結果はFDAに提出されます(これまでのところ、2つのFDA認可を取得しました。各提出は約500ページの長さでした)。開発とテストの両方の方法論は、定期的な監査の対象です。

したがって、多くの正式なテストを行うのは大企業だけではありません。

注-私は25年以上の契約プログラミング/コンサルティングで、正式なテストを実質的に行わなかった多くの企業で働いてきました。それらのほとんどはもうありません。


私は医療機器会社にも所属しており、GMP(Good Manufacturing Practices、制御された設計/テストプロセスのFDA-speak)の紹介は、私にとって非常に目を見張るものでした。それは、私より良いエンジニア(残念ながらDocBookの専門家)作られている
ビル・Gribble

0

私がこれまでに行ってきたほぼすべての会社は、系統的なテストを実施しました。私の現在の会社にはいくつかの基本的なユニットスタイルテストがあり、それだけでは十分ではありません。このため、品質上の問題がいくつかありました。自分以外の人が使用するプロジェクトについては、独立した徹底的なテストを強くお勧めします。費やしたお金はそれだけの価値があります。動作しないアプリケーションは使用されません。これは、内向きと外向きの両方に当てはまります。


質問を少し編集しました。プロフェッショナル市場でのソフトウェアテストの見積もりも教えてください。
ロバートKoritnik

@ロバート:あなたの質問「ソフトウェアテストの見積もり」は理解できません。いくつの企業がテストするかについて私の意見を聞いていますか?私の見積りは、私が自分の目で見たものに基づいて、おそらく90%以上になるでしょう。テストは専門能力開発の一般的な部分です。
ブライアンオークリー

0

過去8年ほどの会社での20年ほどのキャリアの中で、テストを行わなかったプロジェクトに取り組んだことがありません。テストの量は会社ごとに異なりましたが、私がこれまで取り組んできたすべての専門的な開発プロジェクトは正式なテストを行いました。これは、中小企業の両方に等しく適用されます(「小」は従業員10人未満、「中規模」は従業員数千人以下を意味します)。

一部の企業は自動テストをあまり行っておらず、一部の企業は手動テストをあまり行っていませんでしたが、少なくともどちらか一方がありました。


0

それは顧客のニーズに依存します。契約状況では、おそらく受け入れテストがあります。社内は通常、ほとんどテストのない平手打ちです。消費財は通常、頻繁な機能で高度にカバーされていますが、端は粗雑です。


0

短い答え:はい

長い答え:

  1. 最初のカテゴリの推定値はよくありません(おそらく0からの距離ですが、いくらですか?)が、私の経験は実際には2番目の推定値と一致しています。テストの量と種類は、開発中のアプリケーションの種類、利用可能な時間枠、開発者のスキルセット、プロジェクトの実行方法に依存するため、意味のある割合を与えることは困難です。実際には、開発者にとって最も重要なハードルは受け入れテストです。これは、請求の目的にとって重要なマイルストーンであるためです。しかし、予期せぬ事態が発生する可能性があり(要件が増える)、開発者は、トラブルシューティングと克服に必要な時間に加えて、可能な限りタイムリーなアドホックテスト(この段階で)を提供し、順守するように圧力を受ける可能性があります予期もせぬ出来事。

  2. 上記の要因の異なる組み合わせで、さまざまなプロジェクトを経験しました。

    • 正式な単体テストはなく、統合テストとほとんどアドホックテストのみ

    • ユニットテストから、専用のQAリソース、自動テスト(テスターが独自のツールセットを使用して実施)、コードカバレッジレポートを含む詳細なテスト計画に至るまで、非常に形式的です。しかし、これらはマネージャーにとっても開発者にとっても常に意味があるとは限りません

個人レベルでは、扱っているテクノロジーに適した適切なテストを作成する際に、オプションの理解を維持し、自分の裁量でそれらを行使しようとします。基本的には、私の仕事にとって実際に意味があり有益なものであり、それほど多くの数字を出すものではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.