コードを適切に検証する方法は?


8

JavaScript / PHP / CSS / HTMLのWebアプリケーション用に約4000行のコードがあります。どうすれば適切にテストできますか?

IEとSafariの最新バージョンのみをサポートしています。私はすべてのバグを解決しました。それをテストして、コードをロバストと呼べるようにするための良い方法はありますか?

私は、perl Mechanizeを使用してフォームに自動入力するか、同様のことを行うことを検討しました。

また、PHPクラスの内部動作をテストするためのPHPテストクラスもあります。ただし、満たす必要がある標準または適合性のガイドラインはありますか?このコードがコードの強盗などのIEEE xxx foo標準に合格していると言う方法はありますか?

W3バリデーターを使用してHTMLを検証し、jslint.comを使用してJavaScriptを検証しました。

勤勉項目のリストはここにあります:

  1. HTML / CSSがW3検証に合格
  2. JavaScriptはjslintを渡します
  3. PHPが内部PHPテストクラスに合格

ユーザーテスト

  1. ユーザーアクションのセットを作成し、perl mechanizeなどを使用して実装します。

コードをWebにリリースするための標準または手順はありますか?



PHPUnitは、PHPコードをテストするための事実上の標準であるため、おそらくカスタムソリューションよりもPHPクラスをテストするための方法として尊重されるでしょう。

そこにある唯一の「標準」は、プライベートベータ版+パブリックベータ版であり、十分な時間をかけて十分な時間が確保されています。あなたの推測は、そこにどのような値を置くかについては私のものと同じです。
Itay Moav -Malimovka

回答:


2

ソフトウェアの検証は非常に大きな領域であり、質問に対する明確な答えはありません。さらに、ソフトウェア検証エンジニアは通常、開発よりもはるかに多くの知識を必要とする特別なポジションであり、現在開発者コミュニティで一般的な多くのスキル(たとえば、非常に重要な「デバッグ仕様」など)が必要です。

第二に、ソフトウェア検証(およびその重要な部分としてのコード検証)はテストされていません。ダイクストラによる有名な引用があります:

テストはバグの欠如ではなく存在を示します

したがって、これはソフトウェアの検証(つまり、ソフトウェアが有効であり、エラーがないことを示す)とテスト(潜在的なエラーやバグがないか)との主な違いです。

質問を「PHPベースのWebアプリケーションを適切に検証する方法」に絞ると、私は次の答えを出すことができます:

汚染分析。

いくつかのきちんとしたツール(がある12を実行するために)汚染分析を PHPには。これは、機密情報の潜在的なシンク(リーク)を特定する静的分析(つまり、コードを実行せずに実行される)です。

私はこれらのツールのいくつか(Pixy)を自分の実践で使用しましたが、静的分析の他のすべてのツールと同様に、潜在的な危険を過大評価しているようです。それにもかかわらず、それらはあなたが気づいていないかもしれないいくつかのセキュリティ問題を識別するのを助けることができます。これは、一部の機密データを扱うWebアプリケーションにとって特に重要です。

これにより、XSSのようなすべての潜在的な脆弱性が排除されるわけではありませんが、PHPコードやSQLインジェクションなど、多くの一般的な脆弱性がカバーされます。

適合性検証。

このステップは、完全なWebサイトに対してJSLintおよびCSS / HTMLバリデーターを実行することですでに実行しました。

負荷テスト。

Webアプリケーションの可用性が問題(またはSLAの一部)である場合は、負荷テストも実行します。これらは、Visual Studioなどの一部のIDEで生成することも、この目的でオープンソースのJMeterフレームワークを使用することもできます。


どうもありがとうございました。JavaScriptのようなPHPの静的分析ツールがあることに気づきませんでした...最初にこれを調べます。

アーメン、ダイクストラ☺–
ジェレミア

1

標準は、それを実施する人々と同じくらい優れています。(特にISO品質基準に当てはまります...)

ソフトウェアを完全にテストする場合は、すべてのタスク/機能/その他を実装する必要があるため、それらを実行/実装したことを確認するために使用できる優れた要件仕様が必要です。また、品質保証/ソフトウェアテストの観点(コードレビューから探索的ユーザーテストまで)からプロジェクトを他の誰かに見てもらうことも役立ちます。

あなたが考慮したいと思うかもしれないもう一つの注意は、開発者として明確な要件仕様がなければ、おそらく「バグ」ではなく「機能」として物事を想定しないという事実です:)

要件仕様(IEEE 830)とテスト計画(IEEE 829)のIEEE規格があります。しかし、私はそれらが多くのプロジェクトにとって少しOTTだと思います。

(データベースがないことにも少し驚いていますか?)


私はデータベースを持っています。PHPのテストの一環としてそれをテストすることを考えました。ご入力いただきありがとうございます。横方向の知識を追加するために、IEEE 830とIEEE 829を調べます。ご入力いただきありがとうございます。

1

答えは人気がありません。

あなたはユーザーにそれから生きている地獄を倒す必要があります。テストを何度も繰り返した後に報告されたバグのリストを使い尽くした後は、コードをロバストとしか呼び出せません。

コーディングしている木の中にいて、森を見ることができないので、それを単独でテストしてもほとんど役に立ちません。

開発者がこれまでで最悪のテスターであることを知らないのですか?私は開発者であり、「ラップトップで完全に機能する」と誇らしげに述べた後、何年にもわたって私の顔に落ちた後、これを知っています。


使用されているものだけをテストするため、これも最も簡単です。別のユーザーがこれをベータ版と呼び、プライベートユーザーが他の誰かの製品を使用するときにバグを発見してほしくないプライベートベータ版と呼びました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.