تبدیل یک آزمایش به محصول

در حال آموزش عکس‌برداری
در حال آموزش عکس‌برداری

چه نرم افزاری نیاز به آزمون و آزمایش ندارد؟ به طور خلاصه باید گفت هر نرم‌افزاری که تنها و تنها به درد عمویِ توسعه دهنده می‌خورد، نیاز به آزمون و آزمایش ندارد.

با این مقدمه و ارجاع مخاطب به منابع موجود در اینترنت (هر کلمه یک لینک مجزا می‌باشد) قصد دارم یکی از روش‌های پیاده‌سازی نسخه آزمایشی و آزمونی‌ای که چندماه است ذهن حقیر و مشتری را درگیر کرده را توضیح دهم.

نکته اول: این روش شاید ابداعی نباشد و قبلاً فرد یا گروه دیگری اقدام به اجرا کرده باشند
نکته دوم: این روش ممکن است یک روش اشتباه و ناکارآمد باشد، اما حداقل در این مرحله به نظر حقیر و کارفرما روش خوبی‌ست :* :) ^__^ *__*

توضیح بحث

یک سرویس اینترنتی که:

  • از یک سو کاربرانی دارد که برروی کلاینت‌ها (اندرویید، آی‌او‌اس) با سرویس ارتباط برقرار می‌کنند
  • و از سوی دیگر اپراتورهایی دارد که نیازها و درخواست‌های کاربران را برروی سایت پاسخ می‌دهند

سفارش ایجاد نسخه آزمایشی در کمترین زمان و کمترین هزینه را داده است.

نیازها و موانع پیش روی یک نسخه آزمایشی

  1. نسخه آزمایشی باید بتواند تمامی امکانات سیستم اصلی را دارا باشد.
  2. نسخه آزمایشی باید بتواند برای آموزش پرسنل و اپراتورها مفید باشد و اپراتورها قبل از دست و پنجه نرم کردن با نسخه اصلی و سرویس آنلاین، آموزش‌های کم ریسک را بر روی نسخه آزمایشی دیده باشند.
  3. نسخه آزمایشی باید بدون کامپایل نسخه تست کلاینت‌ها و در همان نسخه اصلی کار کند، به این صورت که نیاز به نوشتن کلاینتی برای نسخه آزمایشی نباشیم و کاربران آزمایشی با همان کلاینت اصلی نسخه آزمایشی را دارا باشند.
  4. ثبت، تغییر، ویرایش و حذف رکوردها نباید هیچ تاثیری در نسخه اصلی بگذارد، اما نیاز است این تغییرات در محلی ثبت شود و به صورت پایدار باقی بماند تا بتوان توان، بهره و گزارش سیستم را رصد کرد.
  5. نسخه آزمایشی باید برروی اجرای اصلی و نهایی سرویس پیاده شود، یعنی همان اجرایی که کاربران اصلی در حال کار با آن می‌باشند.

راه حل

در پنل سرویس ویژگی‌ای برای ادمین یا سوپروایزر ایجاد می‌شود که بتواند نسخه‌های متفاوتی از پایگاه‌داده‌ها ایجاد کند؛ مثلا:

  • نسخه خام اولیه
  • نسخه خام همراه با لیست کاربران تاریخ ...
  • نسخه محصول با فاکتورهای تاریخ ...

در مرحله بعدی ادمین یکی از این نسخه‌ها را به عنوان نسخه آزمایشی انتخاب می‌کند.

در آن تکه کدی که ورود کاربر را اعتبارسنجی می‌کند مشخص می‌کنیم که اگر قبل نام کاربری کاراکتر نقطه (.) بود این کاربر قصد اجرای نسخه آزمایشی را دارد.

در این حالت نرم‌افزار برروی پایگاه داده نسخه آزمایشی سوییچ می‌کند و هر رفتاری که در آن انجام شود به صورت پایدار اما در محیط ایزوله و جدای از محیط اصلی اعمال می‌گردد.

  • در این حالت حتی ادمین می‌تواند قبل از نام کاربری خود یک (.) قرار دهد و وارد نسخه دموی ادمینی خودش شود.
  • در این حالت حتی ادمین می‌تواند تراکنش‌های مالی فرضی ایجاد کند، بن خرید به افراد نسخه آزمایشی بدهد کاربران را در نسخه آزمایشی کنترل و ویرایش کند
  • افراد می‌توانند تراکنش‌های مالی و اجرایی حقیقی اما در محیط آزمایشی داشته باشند؛ فقط باید توجه کنند که اگر هزینه‌ای پرداخت کردند از جیبشان رفته :))

انتها

در انتها شما یک نسخه آزمایشی ندارید؛ بلکه محصولی دارید که به صورت مجزا درحال کار است.