問題タブ [regression-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 数値回帰テスト
私は科学計算コード(C ++で記述)に取り組んでおり、小さなコンポーネントの単体テストを実行することに加えて、「既知の良さ」と比較することによって、数値出力の一部で回帰テストを実行したいと思います。以前のリビジョンからの回答。私が欲しいいくつかの機能があります:
- 数値を指定された許容誤差と比較できるようにします(丸め誤差と緩い期待の両方)
- int、doubleなどを区別し、必要に応じてテキストを無視する機能
- 何がどこで問題が発生したかを示す適切にフォーマットされた出力:データの複数列のテーブルで、異なる列エントリのみを表示します
- 戻る
EXIT_SUCCESS
かEXIT_FAILURE
、ファイルが一致するかどうかに応じて
これを行う優れたスクリプトやアプリケーションはありますか、それとも出力ファイルを読み取って比較するためにPythonで自分自身をロールバックする必要がありますか?確かに、私はこの種の要件を持つ最初の人ではありません。
[以下は厳密には関係ありませんが、何をすべきかの決定に影響を与える可能性があります。私はCMakeとその組み込みCTest機能を使用して、GoogleTestフレームワークを使用する単体テストを実行します。必要な回帰ソフトウェアを呼び出すために、いくつかのadd_custom_command
ステートメントを追加するのは難しいことではないと思います。]CMakeLists.txt
testing - DST、Wanem などのさまざまなテストとは何ですか?
DST、Wanem などのさまざまなテストについて説明できる人はいますか。
automated-tests - 複雑な入力データを必要とするプログラムをどのようにテストしますか?
複雑なデータを取得して変換する一連のコンバーターがあります。ほとんどの場合、入力は EDI で出力は XML、またはその逆ですが、他の形式もあります。
データには多くの相互依存関係があります。このような複雑な入力データを生成できる方法やソフトウェアはありますか?
現在、私たちは 2 つの方法を使用しています: (1) 主にファイルのバグとドキュメントのサンプルから長年にわたって構築してきた一連のサンプル ファイル、および (2) 疑似ランダム テスト データの生成。しかし、前者はほんの一部のケースしかカバーしておらず、後者には多くの妥協点があり、フィールドのサブセットのみをテストしています。
複雑なテーブル駆動型データ ジェネレーターの実装 (再発明?) に進む前に、どのオプションが成功したと思いますか?
automated-tests - 自動UIテストを作成するのは誰ですか?開発者またはテスター?
私たちは大規模なプロジェクトの初期段階にあり、何らかの形の自動UIテストが役立つ可能性があると判断しましたが、これがどのように機能するかを正確に分類していません...
主な目標は、アプリの基本的なインストールと実行を自動化することです。そのため、開発者が大きな破損を引き起こした場合(たとえば、アプリがインストールされない、ネットワークが接続されない、ウィンドウが表示されないなど)、テスター壊れたビルドのインストールと構成に時間を浪費する(そしてイライラする)必要はありません
二次的な目標は、反復的なタスクを処理するときにテスターを支援することです。
私の質問は、誰がこれらの種類のテストを作成する必要があるかということです。私たちのチームの暗黙の前提は、テスターがそれを行うというものでしたが、ネットで読んだすべてのことは、開発者が一種の「拡張単体テスト」としてそれらを作成することを常に暗示しているようです。
いくつかの考え:
コントロールIDやクラスなどを知っていて、アプリがどのように機能しているかをよりよく把握していることを考えると、開発者はこれを行うのにはるかに適しているようです。
テスターには、アプリがどのように機能しているかがわからないという利点があるため、はるかに便利なテストを作成できます。
IronRubyとWhiteを使用していくつかの初期スクリプトを作成しました。これは本当にうまく機能し、文字通り何でもできるほど強力ですが、UIテストを書くためのコードを書くことができる必要があります
私たちが試したすべての自動UIテストツール(TestCompleteなど)は非常に複雑で壊れやすいようです。テスターはそれらを使用できますが、約100倍の時間がかかり、常に「偶発的な複雑さ」に直面しています。 UIテストツールが原因です。
私たちのテスターはコーディングできません。彼らはかなり賢いですが、テスターが単純なルビースクリプトを書く可能性があることを示唆したとき、私が得たのは面白い外観でした(スクリプトは混乱した混乱よりも約100倍簡単に読み書きできますが)自動UIテストツールの標準と思われるボタンとデータグリッド)。
開発者とテスターの両方のチームでUIオートメーションを試した他の人からのフィードバックに心から感謝します。誰が何をしましたか、そしてそれはうまくいきましたか?前もって感謝します!
編集:問題のアプリケーションは、WCFを使用してサーバーに接続するC#WPF「リッチクライアント」アプリケーションです。
testing - ウェブサイトのQAに利用できるツールは何ですか?それはユニットテストとして扱われます
Webアプリケーションの機能をテストできるQAツールを探しています。現時点では、すべての作業/機能強化/欠陥を手作業でQAしていますが、Webアプリが非常に多いため、いくつかの変更でサイト全体をQAすることは困難です。
少なくともプッシュ前に信頼水準を構築するために、開発に変更をプッシュするたびに実行するテストケースのリストが必要です。
これは、私たちWeb開発コミュニティでは普通の問題だと確信しています。
testing - 継続的改善(別名ソフトウェア強化)プロセスを実装する正しい方法はありますか?
リリースごとに、お客様はソフトウェアにいくつかの古い問題を見つけているようです。実際には新しいコードは一般的に堅実ですが、すべてのリリースに複数のバグがあるように見えます。
小さな問題に先んじるために、テスターに毎月1つのアプリで数時間の月次回帰テストを実行させる追加のテストを実装しようとしました。このプロセスをソフトウェア強化プロセスと呼びますが、バグを十分に把握しているようには見えず、作成する新しいコードが常にあるため、非常に後回しのプロセスのように感じます。
この種のテストのコツはありますか?一度に1つの特定の機能をターゲットにする必要がありますか?
svn - 破壊のための自動構築システムと回帰テストシステムを構築する方法は?
私は次のことをするように頼まれました:
a)Subversionサーバー用のVMを構築する
b)自動構築システムと回帰テストシステムを理解する
c)人々がSubversionを使い始めるためのドキュメントまたは簡単な手順を書く
漠然とした考えはありますが、これらの指示が何を意味するのかはよくわかりません。あなたが知っているなら、私がグーグルするべきいくつかのドットポイントと適切な用語を提供できますか。
c++ - C++ 環境での回帰テストの最適化
過度のテストを避けるために、開発の反復後にどの機能を回帰テストする必要があるかについてのヒントを品質保証 (QA) チームに提供したいと思います。C++ および Subversion (およびビジュアル スタジオ) 開発環境でそれを実行できるツールを知っていますか?
ユースケースの詳細:
- 機能は、開発チームによってエントリ ポイント (通常はクラスまたはクラス メソッド) の観点から定義されます。たとえば、機能「Excel ファイルのインポート」は、クラス FileImporter のメソッド ImportExcelFile(...) によって定義されます。
- 開発の反復中に、開発チームはいくつかのクラスのいくつかのメソッドにいくつかの変更をコミットします。たとえば、これらのクラスの 1 つがメソッド ImportExcelFile() によって間接的に使用されているとします。
- 反復の最後に、すべてのコミットがツールによって分析され、レポートが作成されて QA チームに配信されます。この例では、「Excel ファイルのインポート」機能をテストする必要があり、他の機能 XY と Z は変更されていないことが QA チームに通知されます。
おそらく、このツールは静的コード分析を使用し、Subversion API を使用します。しかし、それは存在しますか?
sql - Web インターフェイスから DBUnit DatabaseOperation メソッドの機能をユーザーに提供するにはどうすればよいですか?
私は現在、データベース開発者がデータベース テスト用のストアド プロシージャ リグレッション テスト スイートを作成できる Java ベースの Web アプリケーションを更新しています。
現在、テストのセットアップ、実行、およびクリーンアップの各段階で、isql コマンドによって実行される SQL コードを入力できるテキスト ボックスがユーザーに提供されます。
アプリケーションを拡張して、DB Unit の DatabaseOperation メソッドを使用して、SQL ステートメントだけでなく、データベースの状態を設定する方法をさらに提供したいと考えています。SQL ステートメントだけでなく Db Unit を使用する主な理由は、xml および xls DataSet を作成してサーバー上に保存し、テスト ケースに関連付けてデータ セットアップに使用できるようにするためです。
私の質問は:
Web インターフェイスから DBUnit DatabaseOperation メソッドの機能をユーザーに提供するにはどうすればよいですか?
私は考えました:
簡単なプログラミング言語とパーサーを作成して、xml または xls DataSet へのファイルの場所であるパラメーターを受け入れる DB ユニット メソッド名を含むいくつかの簡単な構文を読み取ります。私は、ユーザーが必要なファイルを Web アプリに登録できるようにすることを考えていました。これにより、ファイルがカタログ化され、この単純なプログラミング言語のメソッドにパラメーターとして渡すことができる識別子が各ファイルに提供されます。
操作とパラメータを指定する機能をユーザーに提供する XML DTD を作成します。このアプローチを行った場合、XML ドキュメントから解析したメソッドとそのパラメーターをどのように実行できますか?
メソッドとカタログ化された DataSet ファイルへの FK リレーションを格納するデータベースにテーブルを作成しますが、データ入力が面倒になるため、これは良い解決策ではないと思います。
ご協力いただきありがとうございます。
c - 「再突入」の問題を回避する体系的な方法はありますか? (組み込みシステム)
C を使用して、ARM コア上にシステム (つまり、組み込みシステム) を構築しています。問題は、再突入の問題を正式な方法でどのように回避し、すべての再突入バグが削除されたと確信できるかです。これは実際的な希望ではないかもしれませんが、どのシステムにとっても確かに重要だと思います。
議論のために、UMLダイアグラムを描くか、完全なステートマシンを用意するのが良い出発点だと思います(しかし、システム全体が開発された後にそれを生成する方法は?)。ステート マシン/UML ダイアグラムを使用して分析を行う方法について何か提案はありますか?