問題タブ [software-quality]
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.
unit-testing - コードをテストするためのテストケース...境界は?
私は最近、プリンター会社の QA/ファームウェア開発者として採用されました。私の仕事の多くは、プリンター自体に配置する小さなウィジェット/テスト アプリを作成して、すべてが正しく機能することをテストすることです。これをキャリアエクスチェンジやプログラマーなどに移す前に....私は実際にここでソースコードについて話している...
しかし、私は CS の学士号を取得して大学を卒業したばかりなので、プロの世界、特に QA にはかなり慣れていません。
とにかく、良いテストケースの結果を出すための本当に良い「方法」を理解するのに苦労しています。
たとえば、キーパッドから数字を入力する場合 (0 ~ 9) .....テストするには、許容範囲 (1 ~ 100 など) をテストしますが、その範囲内でいくつテストする必要があるかを自問します (これらのいくつかは手動で押す必要があるため、自動化できないことを念頭に置いてください)
次に、明らかに範囲外をテストします(ただし、何回ですか?)
たとえば、* $ % のような属さない ASCII 文字や文字を入力します。有界/無界のケースに適切なテストケースを与える方法について少し混乱していますか?
何か案は?
sql-server - SQL Server データベース設計の静的分析に適したツールはありますか?
SQL Server データベースに対して静的分析を実行できるツールの存在に興味があります。本質的に、私は FxCop または NDepend に相当する DB を探しています。データレイヤーを検査し、デザイン、ネーミング、品質に関連するその他の測定可能な属性などのメトリックに関する推奨事項を返すことができるもの.
設計フィードバックを提供できるツールを過去に使用したことがある人はいますか? ありがとう。
java - IntelliJ IDEA デバッグ構成: cpu/帯域幅を制限するための bash スクリプト
開発プロセス中にテスト目的でアプリケーションの CPU と帯域幅を制限する必要があり、java コマンドの周りに小さな bash スクリプト ラッパーを作成しましたが、このアプローチを IDEA の実行/デバッグ構成と統合する方法がわかりません。
IDEA 統合の最初の失敗したアプローチは
cpu/down/up を静的に設定し、シフトを削除
Javaフォルダーを新しいフォルダーにコピーし、Javaコマンドの名前を変更し、スクリプトをbin/javaにシンボリックリンクしました
この JRE 構成を使用するよう IDEA に伝えました - クラッシュしました
この問題にアプローチするためのより良い方法についての洞察をいただければ幸いです。
software-quality - 欠陥密度をどのように測定する必要がありますか?
欠陥密度を測定する標準的な方法はありますか?オンラインのほとんどのサイトは、次のように測定する必要があると述べています。
私の質問は次のとおりです。
- 期間中に「修正された」欠陥は、発見された欠陥から差し引かれるべきですか?
- 時間の不足のために、次のリリースで修正することを決定した欠陥をどうすればよいですか?これらのバックログの欠陥を次のリリースの密度に追加する必要がありますか?
- 重複が多いためにコードが不必要に肥大化していることが証明されている場合、分母のKLOCはおそらく適切な尺度ではありません。それをどのように考慮すべきですか?
- 特定の期間のチャーン、および特定のモジュールの既存の欠陥のバックログを、チャーンの結果として作成/発見された欠陥の数に関連付けることができますか?
私たちの最終的な目標は、(a)欠陥密度を業界標準と比較し、(b)壊れやすくバグが多く、注意を払う価値のあるモジュールを特定できるようにすることです(c)一貫したメトリックを使用して、次のような傾向線を描くことができます。時間の経過に伴うモジュールの品質の向上
language-agnostic - 選言標準形でコードを表現することが重要なのはなぜですか?
私が働いている会社では、最近、すべての「非常に可視性の高い」ブール論理を選言標準形で表現する必要があるという義務があります。
したがって、たとえば(概念は言語に依存しませんが)、
次のように置き換える必要がありました:
コードをこのように表現する必要があることを義務付ける動機は何ですか?利点は何ですか?
security - オープンソース セキュリティ テスト方法論 (OSSTMM)
Open-Source Security Testing Methodology (OSSTMM)このテスト方法は、セキュリティ上の問題をテストするためにソフトウェア アプリケーションに適用できますか?
software-quality - ソフトウェア品質の客観的な指標を探す
ソフトウェア製品で測定できる品質にはさまざまな種類があります。たとえば、目的への適合性(たとえば、最終用途)、保守性、効率などです。これらのいくつかは、ある程度主観的またはドメイン固有です(たとえば、優れたGUI設計の原則は、文化によって異なる場合や、使用状況に応じて異なる場合があります。軍隊と消費者の使用法を考えてください)。
私が興味を持っているのは、タイプのネットワーク(またはグラフ)に関連するより深い形式の品質とそれらの相互関係、つまり、各タイプがどのタイプを参照しているか、適切に関連する相互接続性の明確に識別可能なクラスターがあるかどうかです。階層型アーキテクチャ、または逆に、型参照の大きな「ボール」(「モノリシック」コード)があります。また、各タイプおよび/またはメソッドのサイズ(たとえば、Javaバイトコードまたは.Net ILの量で測定)は、より管理しやすく保守しやすいものに分解されるのではなく、大規模で複雑なアルゴリズムがコードのモノリシックブロックとして実装されている場所を示す必要がありますチャンク。
このようなアイデアに基づく分析では、少なくとも品質の代用となるメトリックを計算できる場合があります。高品質と低品質の間の正確なしきい値/決定ポイントは主観的だと思います。たとえば、保守性とは人間のプログラマーによる保守性を意味し、したがって機能分解は人間の心の働きと互換性がなければならないためです。そのため、考えられるすべてのシナリオで考えられるすべてのソフトウェアを超越する、数学的に純粋なソフトウェア品質の定義が存在する可能性があるのではないかと思います。
また、これは危険な考えであるかどうか、品質の客観的なプロキシが普及すると、ビジネス上の圧力により、開発者は全体的な品質(プロキシによって測定されない品質の側面)を犠牲にしてこれらのメトリックを追求するようになるのではないかと思います。
補遺:品質についての別の考え方は、エントロピーの観点からです。エントロピーは、システムが秩序だった状態から無秩序な状態に戻る傾向です。現実の世界で中規模から大規模のソフトウェアプロジェクトに取り組んだことがある人なら誰でも、コードベースの品質が時間の経過とともに低下する傾向があることを理解するでしょう。ビジネス上の圧力により、一般に、新しい機能に焦点を当てた変更が発生し(アビオニクスソフトウェアなど、品質自体が主なセールスポイントである場合を除く)、回帰の問題や「シューホーニング」機能による品質の低下が発生します。品質とメンテナンスの観点。では、ソフトウェアのエントロピーを測定できますか?もしそうなら、どのように?
python - Pythonを使用したリアルタイムシリアルデータロギング-設計アドバイス
ラップトップコンピューターのGPSロギングデバイスからGPRMC文を読み取る小さなプログラムを設計する必要があります。シリアル接続で生の値を読み取っています。生の値を読み取ったら、GPRMCセンテンス(12個のコンマ区切り値)を解析し、それらをsqlliteデータベースに入れて、別のアプリケーションが読み取れるようにします。
専門家のアドバイスと実装に関するヒントが必要でした。私が最もアドバイスを求めているプログラムの部分は次のとおりです。
- パフォーマンス(これは非常にCPUを集中的に使用するプロセスのように見えますか?)
- エラーチェック(考えられるすべてのエラー状態を考慮する必要があります)
- 更新のしやすさ(コードツリーに変更を加えると、プログラムの更新が簡単になります)
testing - フリーソフトウェアに適用される品質監査ソフトウェア
私はフリーソフトウェアに適用される品質監査ソフトウェアを探して調査を行っていますが、今のところあまり運がありません。品質監査http://en.wikipedia.org/wiki/Computer-aided_audit_toolsを行うソフトウェアの情報は既に見つけましたが、それらがフリー ソフトウェアにも当てはまるかどうかはわかりません。
この問題に関するアイデアや情報は非常に役立ちます。
ありがとうございます。