問題タブ [black-box]
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 - 単体テストはブラック ボックス テストとホワイト ボックス テストのどちらにするべきですか?
3 つのメソッドがあるとします。すべて非常に似ていますが、入力の種類が異なります。
3 つすべてが同じ基本ロジックを使用します。たとえば、double
数値を比較するのはバージョンだけで、他の 2 つは入力を に変換するだけかもしれませんdouble
。
いくつかの異なる単体テストを想像することができます: 最初の入力が大きい、2 番目の入力が大きい、両方の入力が負である、など。
私の質問
3 つのメソッドすべてに完全なテスト セットが必要です (コアの実装が同じであるとは想定していないため、ブラック ボックスです)。
また
パラメータ変換を検証するために、バージョンのみdouble
を厳しくテストし、他の 2 つを軽くテストする必要がありますか (同じ実装を共有し、テストで既にテストされていることがわかっているため、ホワイト ボックス テストをdouble
行います)。
php - $ a == md5($b。$secret)で$secretを検索します
関数は次のとおりです。
- $aと$bを選択できます
- あなたは$secretを知らない
- trueまたはfalseとして選択した$aおよび$bの関数の値を取得します。
一般的に$secretを見つけるために、ブルートフォースよりも優れた攻撃はありますか?PHPのmd5関数を使用して$secretを見つけるために、ブルートフォースよりも優れた攻撃はありますか?
私がウェブ上で見つけたものから、md5は他のいくつかのユースケースでは非推奨ですが、そうではないと思います。念のために...
敬具
proxy - プロキシによる脆弱な Web アプリケーションの安定化
この設定で実行して安定させたい不安定な動的 Web アプリケーションがあります。
- URLへのGETリクエストが与えられた場合、
U
私は- キャッシュ内を探し
U
ます - 既に存在する場合 - キャッシュから取得します - そうでない場合は、Web アプリケーションからキャッシュを生成します。
- キャッシュ内を探し
- 管理者は Web アプリケーションに直接アクセスできます。彼が Web ページにアクセスするたびに、生成された Web ページを使用してキャッシュが更新されます。
これにより、Web アプリケーションがダウンしても、ほとんどのページに引き続きアクセスできることが確実にわかります。また、管理者はキャッシュを簡単に更新できます (キャッシュで何かを編集すると、通常は後でこのページにアクセスするため、自動的に更新されます)。
同様の動作をする汎用キャッシュはありますか? ソースコードを変更せずに既存の Web アプリケーションを安定させるためのより良いアイデアはありますか?
design-patterns - Can You Decorate a Black Box?
I have a quick, very uninformed question about the Decorator pattern. If I have a class called BlackBox that I cannot edit in any way - can't add an interface, can't make any of the methods virtual, etc. - can this object be decorated using the Decorator pattern? If so, how?
unit-testing - メソッドのユニットテスト「構造」?
長い投稿でごめんなさい...
ブラウンフィールドプロジェクトに紹介されている間、私は特定のユニットテストのセットと何を考えるべきかについて疑問を持っています。ストアドプロシージャをラップするrepostoryクラスがあり、開発者ガイドブックに、このクラスをどのように構成するかを説明する特定のガイドライン(ルール)があるとします。クラスは次のようになります。
ここで、もちろん、いくつかの統合テストを作成し、SPを呼び出すことができ、動作が期待どおりであることをテストします。ただし、次のことを主張する単体テストを作成しますか。
- 入力パラメーター「someKey」を持つSomeProfilerのコンストラクターが呼び出されます
- PersonStoredProcedureのコンストラクターはと呼ばれます
- ストアドプロシージャのaddNameArgumentメソッドは、パラメータpersonNameを使用して呼び出されます。
- ストアドプロシージャのaddCityArgumentメソッドは、パラメータcityNameを使用して呼び出されます。
- ストアドプロシージャでinvokeメソッドが呼び出されます-
もしそうなら、私は潜在的に、振る舞いに加えて、メソッドの構造全体をテストするでしょう。私の最初の考えは、それはやり過ぎだということです。ただし、チームによって実施されたコーディングプラクティスに関して、これらのテストは、均一で「正しい」構造を確認し、次のレイヤーが正しく呼び出されることを確認します(DALからDB、BLLからDALなど)。
私の場合、これらのタイプのテストは、アプリケーションの各レイヤーに対して実行されます。
フォローアップの質問-SomeProfilerクラスの使用は私には慣習のような匂いがします-これに対する明示的なテストを作成する代わりに、静的コード分析またはユニットテスト+リフレクションを使用して慣習スタイルのテストを作成できますか?
前もって感謝します。
.net - Entity Framework SaveChanges-動作をカスタマイズしますか?
したがって、EFコンテキストをインスタンス化し、オブジェクトをプッシュインまたはプルアウトすると、オブジェクトの変更の完全な状態が追跡されます(変更の追跡がオンの場合)。この時点まで、開発者はこれらの変更を行う責任がありました。ただし、SaveChangesが呼び出されると、これらのレコードはすべて一括で送信され、開発者は最終結果から権利を剥奪され、エラー時にエラーメッセージを保存するか、完了時に呼び出しが成功します。
SaveChangesプロセスをカスタマイズして、そのようなブラックボックスにならないようにする方法はありますか?理想的には、プロセスをカスタマイズできることは、特に私のアプリケーションアーキテクチャで、私にとって本当に物事を開くでしょう。
ありがとう。
optimization - Mathematica: ブラック ボックス関数の数値最適化中の評価順序
Mathematica で「ブラック ボックス」関数の数値最適化を実行しようとしています。概略的には、次のようになります。
ここで、comb[x,y,z] は次のように定義されます。
ただし、私が試したすべての最小化関数は、comb[x,y,z] に数値をすぐには提供しないようで、最終的に x、y、z の記号値で FindMaximum を評価しようとします (これは簡単に検証できます)。 Print[x,y,z] も記号的に評価されるため)。したがって、Findmaximum は失敗し (FindMaximum::nrnum: 関数値の何とか何とかは実数ではありません)、最小化は失敗します。
櫛のサブ関数が数値で評価されるように評価順序を修正するにはどうすればよいですか?
dll - DLL はコードを「ブラック ボックス」にする唯一の方法ですか?
私の DAL と BLL は、類似した Web フォームの基本クラスとして使用されます。ただし、これらの基本クラスを「非表示」にして、継承するだけにしたいと考えています。変更が必要な場合は、1 つの場所から実行され、dll (または他のソリューション) が再配布されます。DLL を使用してそのようなことができることは知っていますが、.NET 3.5 に同じことを行う他の方法があるかどうか疑問に思っていました。
testing - デスクトップ ベースのアプリケーションのセキュリティ テストでは、どの側面を重視する必要がありますか?
デスクトップ ベースのクライアント サーバー アプリケーションを 1 つテストしています。そのアプリケーションのセキュリティ テストを実行したいと考えています。
デスクトップ アプリケーションのセキュリティ テストを実行する際に考慮できる点を誰か説明してもらえますか?
ios - initWithCoder: NSCoder (UINibDecoder) のキーは何ですか? (UIImageView用)
具体的には、画像パスを見つけようとしています。これは非常に便利なものです。私が見つけた限りでは、誰もその方法を知りません。キー用に生成された nib ファイルを調べたところ、そこに画像の URL (test.jpg) が表示されていますが、それを取得するためのキーが見つかりません。キー "UIImage" は、実際に既に構築されたイメージ (上記の init 呼び出しを呼び出すinitWithCGImageStored:(CGImageRef)cgImage scale:(CGFloat)scale orientation:(UIImageOrientation)orientation
神秘的な UIKit 関数呼び出しGetImageAtPath
を介して構築されたもの) を返すため、これは役に立ちません。
また、NSKeyedArchiver を使用して UIImageView をディスクに書き込もうとしましたが、これらの値のいずれも正しいようには見えず、そこに test.jpg 値も存在しません。
誰もこれを理解できない場合-バイナリファイルをテキストとして読み取る方法を知っている人はいますか? nib を読み込んで URL を解析するだけで済みます。これは何もないよりはましですが、NSString のコンストラクターは、どの形式を試しても失敗します。