実際の開発環境なしで自信を持って開発する


12

私は最近、いくつかのサードパーティ製の「エンタープライズ」システムとその周辺での作業を伴うプロジェクトに雇われました。私が想像するのは、実稼働環境の十分に忠実なレプリカを構築するために必要な天文学的なコストと労力であるため、実際の開発環境を持つ見込みは、ごくわずかにしか見えません。

これはもちろん理想的ではありません。明るい面では、このような複製不可能な環境にソフトウェアを安全にテストおよび展開している人々がいるはずであり、おそらく彼らの足跡をたどることができるでしょう。

このような状況に効果的に対処する人はどのようにそれを行うのでしょうか?


1
仮想化、「類似」環境など...本質的に、システムのほとんどの「可動部分」を少なくともカバーするために、小規模で複製可能なものを試してください。
-Oded

6
エンタープライズシステムのAPIの正確さに依存し、おそらくいくつかのテストアカウントを使用して、多くの統合テストを行う必要があります。
ロバートハーベイ

@RobertHarveyはここで死んでいます。誰かがこれについて答えて説明する必要がありますが、これはまさにあなたが必要とするものです。システムを手動でテストする環境がない場合、できることは自動的にコードをテストすることだけです。
ジミー・ホッファ

1
さて、完全な開発環境を用意できない場合は、実稼働環境のテストアカウントが次善の策になる可能性があるという点をお勧めします。
ジェイソンスウェット

回答:


9

これは現実の世界では常に起こります。 私は巨大な農業用温室を制御するアプリを書いている男を知っています-換気、暖房、水分制御、あなたはそれに名前を付けます。彼には「テスト温室」はありませんが、実際のハードウェアシステムを構築する会社が提供するシミュレータプログラムがあります。コードがシミュレータで正常に動作する場合、実際の機器で正しく動作すると推定されます。まれに、シミュレーターが間違っていることが判明しますが、それは正しくシミュレートされていないため、それは温室ハードウェア企業の対処すべき問題です。


OPには「シミュレータ」の保証がないようです。また、あなたの場合、シミュレータが失敗した場合、同僚の雇用主はおそらく補償を要求することができます。OPは同様の状況で何ができますか?保険会社を悩ます?
K.ステフ

4
OPにシミュレーターがない場合、彼はそれを取得する必要があります-請う/盗む/借りる/ビルド-本当に重要ではありません。シミュレーターがどれほど優れている必要があるか-それは彼が決定する必要があるものであり、必要性を感じた場合、彼は補償と呼ばれる小さなことについて保険会社に話すことができる/すべきです。
マッテンツ

3

これらは、APIドキュメント、インターフェイス制御ドキュメント、およびエミュレーターが最重要である状況です。私が以前働いていた会社では、これは実際に起こりました。あるセグメントは準備ができているが、他のセグメントは遅れていて、別の機能が働いている、または展開できない何らかの理由で、プロジェクト内で頻繁に起こりますセグメントの最新バージョンをテストシステムに追加します。そのため、実際にテストした本番環境の忠実なレプリカがありました。ただし、実際にはすべてのセグメントがスケジュールどおりに準備されることはありませんでしたが、開発開始前にインターフェイスが合意され、ロックダウンされ、他のセグメントの動作をほぼ模倣できるエミュレータが作成されました。

別の回答にあるように、エミュレータは展開前にテストを実行できるようにするものです。優れたエミュレーター。ただし、明確に定義されたインターフェイスとドキュメントに依存します。


1

私はいつもそのような状況にいます。

確かにアプリケーション全体とやり取りする必要はありませんが、おそらくいくつかの種類のインターフェイスが必要です。インターフェイスの詳細なドキュメントを確認してから、これらのインターフェイスのモックをセットアップして、追加/変更されたコードが意図したとおりに機能することを確認してください。

ハイブリッドもできます。かなり簡単にできる部分を複製してから、実際のシステムに「接続」します(これが状況で可能であれば)。私はある程度成功しました-ロジックとサーバーソフトウェアがローカルで実行される場合もありますが、インボケーションなどを検証するために実際のERPシステムへの接続がまだありました。理想的ではありませんが、めったにありません。

実稼働システムのみを使用する場合-レプリカのセットアップに費やした開発時間のみをカウントすることはできませんが、実際のビジネスデータでテストされていないコードを使用するビジネスリスクを考慮する必要があることに注意してください。コードは、レプリカに対してテストされたコードよりも信頼性が低くなります。システムをしばらく停止させることはできますか?データが破損した場合に復元できますか?それはいくらですか?

企業でのベストプラクティスは、運用環境のセットアップ時に、運用環境のレプリカ(または複数)を配置することです。その時点で、追加費用はそれほど大きくありません。


1

私たちのシステムは、多数の大規模な外部システムで動作します。完全なエンドツーエンドのセットアップがない場合、テストする際に次のアプローチを組み合わせます。

  • 記録再生の実データ。実際のデータ(実際の外部システムからの要求/応答)を記録し、必要に応じてパラメーター化して再生します
  • 外部システムとして機能するシミュレーター構築または購入する
  • テストデータ生成用のDSL。データ駆動型システムの場合、テストデータを生成するための高レベルDSLを記述します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.