بیاموزید که چگونه مجموعه ای از سناریوهای بهینه برای یک برنامه معاملات سهام به طور موثر در Hexawise طراحی شده است.
نوشته شده توسط Conor Wolford. بیش از یک هفته پیش به روز شده است
اهداف تست ما چیست؟

به منظور تست معاملات سهام در بازارهای مختلف، این مدل یازده شرایط آزمایشی مختلف را برای هر سناریوی آزمایشی نشان می دهد. حتی در این مثال بیش از حد ساده شده، بیش از 600000 سناریو ممکن وجود دارد. در این زمینه، ما می خواهیم این فرآیند را به طور نسبتاً کامل آزمایش کنیم - با تعداد قابل کنترلی از تست ها.
ما می دانیم که آزمایش هر مورد در سیستم ما یک بار کافی نیست. ما می دانیم که تعامل بین چیزهای مختلف در سیستم ما (مثلاً یک نوع کاربر موجود که با نوع خرید فروش تعامل دارد) می تواند مشکلاتی ایجاد کند. به طور مشابه، ما می دانیم که سند الزامات مکتوب ناقص خواهد بود و همه آن تعاملات بالقوه مشکل ساز را برای ما شناسایی نخواهد کرد. به عنوان طراحان آزمون متفکر، ما می خواهیم در مورد آزمایش مشکلات احتمالی ناشی از تعاملات، بدون اینکه به پایان نهایی برسیم و سعی کنیم هر ترکیب ممکن را آزمایش کنیم، هوشمند و سیستماتیک باشیم.
Hexawise انتخاب مجموعه ای از تست های مناسب را با هر فشار زمانی که ممکن است روی پروژه وجود داشته باشد یا هر نوع الزامات دقیق آزمایشی که ممکن است داشته باشیم، سریع و ساده می کند. تست های هگزاوایز به طور خودکار تنوع را به حداکثر می رسانند، دقت تست را به حداکثر می رسانند و تکرار بیهوده را به حداقل می رسانند.
چه ویژگی های جالب Hexawise در این نمونه توصیف مدل برجسته شده است؟
تعاملات اجباری - چگونه برخی از سناریوهای با اولویت بالا را مجبور کنیم در مجموعه آزمایشات شما ظاهر شوند.
اسکریپت خودکار - نحوه صرفه جویی در زمان با تولید اسکریپت های آزمایشی دقیق در قالب دقیق مورد نیاز (نیمه) - به صورت خودکار.
نمودارهای پوشش - چگونه می توان بینش مبتنی بر واقعیت را در مورد "چقدر آزمایش کافی است؟" دریافت کرد.
نمودارهای ماتریسی - اگر بخواهیم اجرای آزمایش ها را در هر نقطه از زمان قبل از آزمایش نهایی Hexawise متوقف کنیم، چگونه تشخیص دهیم که کدام شکاف های پوشش دقیق در آزمایش ما وجود دارد.
با استفاده از "شماره گیری پوشش" Hexawise - چگونه مجموعه ای از تست های دو طرفه کامل و/یا تست های سه طرفه بسیار کامل را در چند ثانیه تولید کنیم.
با تاکید ویژه بر این ویژگی "آزمایش ابرقدرت طراحی":
آزمایش مبتنی بر ریسک / نسل آزمایش با قدرت ترکیبی - نحوه تمرکز بر دقت آزمایش اضافی به طور انتخابی بر روی تعاملات با اولویت بالا که شناسایی می کنیم
چه ملاحظات طراحی تست جالبی در این مدل نمونه خاص مطرح شده است؟

به طور کلی داشتن بسیاری از مقادیر پارامتر چیزی برای جلوگیری از آن است زیرا تعداد آزمایشات مورد نیاز را تا حد زیادی افزایش می دهد. روش هایی برای دستیابی به لیست های طولانی از ارزش ها وجود دارد. کلاسهای هم ارزی با گسترش ارزش متداول ترین روش است. با این حال ، گاهی اوقات نیاز به آزمایش عملکرد یا ادغام ، از نیاز به مجموعه کوچکی از تست های بهینه شده بیشتر است.
در این مدل نمونه ، ما یک پارامتر بسیار مهم داریم: مبادله معاملات (کشور). این پارامتر مبادله ای را که برای سفارشات قرار می گیرد تعیین می کند. اگر یکی از گزینه های موجود برای مبادله کار نکند ، می تواند نه تنها سردرد برای معامله گران بلکه به طور بالقوه میلیون ها دلار سود از دست رفته باشد. آزمایش کنندگان موظفند هر مبادله را با تمام مقادیر پارامتر تعیین شده دیگر آزمایش کنند.
مبادله معاملات پارامتر (کشور) چهارده مقدار دارد. و یکی از مقادیر (ایالات متحده) حتی دارای یک ارزش ارزش است. در مورد چگونگی اطمینان از اینکه پوشش بیشتری از این پارامتر خاص وجود دارد ، بخوانید.
ایده های تنوع اضافی را در نظر بگیرید تا در مورد فعل و اسم ما با استفاده از "سؤالات روزنامه" بپرسید - چه کسی ، چه ، چه زمانی ، چرا ، کجا ، چگونه ، چند؟

طراحی تست های نرم افزاری قدرتمند مستلزم آن است که افراد با دقت در مورد ورودی های احتمالی در سیستم مورد آزمایش قرار بگیرند. و اینکه چگونه این ورودی های بالقوه ممکن است بر رفتار سیستم تأثیر بگذارد. همانطور که در این پست وبلاگ توضیح داده شده است ، ما به شدت طراحان آزمون را تشویق می کنیم تا با یک فعل یک اسم را شروع کنند تا دامنه معقول را برای مجموعه ای از تست ها تنظیم کنند و سپس از "خبرنگار روزنامه" بپرسیم که چه کسی؟ ، چه؟چه زمانی؟جایی که؟چرا؟چگونه؟و چند؟
چه کسی سهام را معامله می کند؟(به عنوان مثال ، نوع کاربر چیست) چه زمانی آنها سهام را تجارت می کنند؟(به عنوان مثال ، تاریخ خوب مورد استفاده) چه زمانی سفارش ایجاد شد؟(به عنوان مثال ، یک دستور قبلی ذخیره شده را تجارت کنید)
چگونه / چند
معامله آنها چقدر است؟ چگونه آنها سهام را تجارت می کنند؟(آنلاین ، تماس و غیره) در هر سفارش چند معامله انجام می شود؟
چه / چه نوع
آنها برای تجارت سهام چه مجوزهایی دارند؟ چه نوع تغییراتی را می توان در یک ترتیب موجود ایجاد کرد؟ چه نوع نظمی است؟(خرید یا فروش) چه نوع نظمی است؟(بازار یا سفارش محدود) آنها سهام را از کجا تجارت می کنند؟(به عنوان مثال ، مبادله واقع در کدام کشور است)
ایده های تنوع وارد صفحه پارامترهای Hexawise شد

پرسیدن سؤالات روزنامه که در بالا توضیح داده شد ، برای درک روشهای بالقوه سیستم تحت آزمایش ممکن است مفید باشد.
هنگامی که ما تصمیم گرفتیم که کدام شرایط تست به اندازه کافی مهم است که در این مدل گنجانده شود (و مواردی را حذف کنیم - مانند "آنها هنگام معامله سهام چه پیراهنی می پوشند؟" - که بر نحوه عملکرد سیستم مورد آزمایش تأثیری نخواهد داشت)، Hexawise آن را سریع وایجاد آسان سیستماتیک تست های قدرتمندی که به ما امکان می دهد کارایی اجرای تست خود را به حداکثر برسانیم.
هنگامی که پارامترهای خود را در Hexawise وارد می کنیم، به سادگی روی پیوند "Scenarios" در صفحه ناوبری سمت چپ کلیک می کنیم.
Hexawise به ما کمک می کند مجموعه ای از سناریوهای با اولویت بالا را در عرض چند ثانیه شناسایی کنیم

پوشش به دست آمده در 87 تست بالا به عنوان پوشش تست زوجی (یا پوشش تعامل دو طرفه) شناخته می شود. تست های جفتی تولید شده توسط شش گانه در بسیاری از زمینه ها و انواع آزمایش ها ثابت شده اند که در مقایسه با مجموعه ای از سناریوهای انتخاب شده دستی، مزیت های دقیق و کارایی زیادی را ارائه می کنند.
Hexawise به طراحان تست کنترل می کند که می خواهند پوشش آزمایشی خود چقدر کامل باشد. همانند این مورد، Hexawise به آزمایش کنندگان اجازه می دهد تا به سرعت ده ها، صدها یا هزاران آزمایش را با استفاده از "شماره گیری پوشش" Hexawise تولید کنند. اگر زمان بسیار کمی برای اجرای تست دارید، آن 87 تست زوجی به طور چشمگیری دقیق تر از تعداد مشابهی از تست هایی هستند که ممکن است با دست انتخاب کنید. اگر زمان زیادی برای آزمایش داشتید، می توانید به سرعت مجموعه ای از تست های سه طرفه حتی کامل تر را ایجاد کنید (همانطور که در تصویر صفحه بلافاصله زیر نشان داده شده است).
برای توضیحات دقیق تر در مورد روشی که Hexawise برای به حداکثر رساندن تنوع، به حداکثر رساندن پوشش و به حداقل رساندن تکرار بیهوده در مجموعه های آزمایشی استفاده می کند، لطفاً به این ارائه مقدماتی با تصویر سنگین، این مقاله 3 صفحه ای در مورد تست ترکیبی (منتشر شده توسط IEEE) و/یا مراجعه کنید. این توضیح مفصل برای مقایسه تفاوت بین پوشش دو طرفه و پوشش 3 طرفه است.
انتخاب "تعامل های 3 طرفه" مجموعه طولانی تری از تست ها را ایجاد می کند که هر "سه گانه" ممکن از مقادیر را پوشش می دهد.

Hexawise این مجموعه بسیار کامل از 505 تست سه طرفه را در عرض چند ثانیه برای شما تولید و نمایش می دهد. این به طور چشمگیری دقیق تر از مجموعه های معمول سناریوهای آزمایشی انتخاب شده به صورت دستی است که معمولاً توسط شرکت های بزرگ جهانی هنگام آزمایش سیستم های خود استفاده می شود.
تنها نقصی که می تواند توسط این مجموعه آزمایش ها پنهان شود این دو نوع است:
نوع اول - نقص هایی که توسط مواردی که به هیچ وجه در ورودی های آزمون شما گنجانده نشده است ، ایجاد شده است (به عنوان مثال ، اگر قوانین ویژه کسب و کار برای تجارت در سوریه اعمال شود ، این قانون تجارت آزمایش نمی شود زیرا این ورودی آزمایش هرگز در آزمون گنجانده نشده استاصلاً مدل). این خطر همیشه هر بار که تست های نرم افزاری را طراحی می کنید ، خواه از Hexawise استفاده کنید یا نه.
این خطر در تجربه ما بسیار بزرگتر از نوع دوم خطر است:
نوع دوم - نقص فوق العاده غیرمعمول که در صورت و تنها اگر 4 یا بیشتر شرایط آزمایش خاص همه در یک سناریو ظاهر می شوند ، ایجاد می شود. به عنوان مثال ، اگر تنها راهی که یک نقص رخ داده بود این بود که اگر تجارت (i) در وب از (ii) تجارت جدید کاربر در (iii) هنگ کنگ قرار بگیرد و معامله (IV) 100،001 دلار بود. برای نقص نیاز به 4 یا بیشتر ورودی های تست خاص برای ظاهر شدن در کنار هم بسیار نادر است. بسیاری از آزمایش کنندگان سالها بدون دیدن چنین نقصی ، نرم افزار را آزمایش می کنند. اطلاعات بیشتر در اینجا در دسترس هستند.
اگر یک تستر چند روز را در تلاش برای انتخاب تست ها با دست گذراند که به پوشش 100 ٪ از هر "سه گانه" ممکن از مقادیر (مانند ، به عنوان مثال ، (من) کاربر موجود ، و (ب) مبادله تایلند ، و (iii)فروش) ، نتایج زیر احتمالاً اتفاق می افتد:
این یک تستر بسیار طولانی تر خواهد بود که سعی کند مجموعه ای از تست ها را به طور مشابه انتخاب کند و تستر به طور تصادفی بسیاری از شکاف های پوشش بسیاری را ترک کند.
تستر در تلاش است تا تست ها را با دست انتخاب کند تا با این سطح کاملاً بالا "همه سه گانه" مطابقت داشته باشد ، بیش از 505 تست را ایجاد می کند (که این راه حل بهینه شده است که در بالا نشان داده شده است).
تقریباً مطمئناً ، اگر تستر سعی در دستیابی به این هدف پوشش در 600 یا کمتر آزمایش داشته باشد ، بسیاری از شکاف ها در پوشش وجود خواهد داشت (به عنوان مثال ، ترکیبی از مقادیر 3 طرفه که تستر به طور تصادفی فراموش کرده است).
سرانجام ، بر خلاف تست های تولید شده توسط هگزاویز که به طور سیستماتیک تکرار زباله را به حداقل می رساند ، بسیاری از سناریوهای انتخاب شده تستر احتمالاً از یک آزمایش به آزمایش دیگر بسیار تکراری خواهند بود. این تکرار بی فایده منجر به تلاش هدر رفته در مرحله اجرای آزمایش خواهد شد.
ما می توانیم سناریوهای خاصی را مجبور کنیم که در تست ها ظاهر شوند و یا از ظاهر شدن ترکیبات "غیرممکن برای آزمایش" جلوگیری کنیم

ما به راحتی با استفاده از ویژگی "تعامل اجباری" Hexawise ، چند سناریو اولویت بالا را مجبور کردیم:
شما از عکس های صفحه نمایش آزمایش های 2 طرفه و تست های 3 طرفه در بالا نشان داده شده است که برخی از مقادیر موجود در هر دو مجموعه از تست ها پررنگ هستند. این مقادیر پررنگ مواردی هستند که ما با استفاده از این ویژگی "هگزاویز" را مجبور کردیم که در آن گنجانده شوند.
اسکریپت خودکار به ما اجازه می دهد تا تقریباً فوراً جداول شرایط تست بهینه شده را تبدیل کنیم (که در بالا در عکس های صفحه نمایش برگه "سناریوها" نشان داده شده است) به اسکریپت های تست دقیق (نشان داده شده در زیر در عکس صفحه یک فایل اکسل)

ویژگی اسکریپت خودکار با استفاده از بخشی از فرآیند مستند سازی اسکریپت های تست دقیق و پله ای ، زمان زیادی را صرفه جویی می کند.
ما از ابتدا تا انتها یک اسکریپت تست را با جزئیات مستند می کنیم. با انجام این کار ، ما نشان می دهیم که متغیرهای ما (مانند "کانال" و "نوع کاربر" و "خرید یا فروش؟") در هر جمله قرار دارند. خودشه. به محض اینکه یک آزمایش واحد را از این طریق مستند کنیم ، ما آماده صادر کردن هر یک از تست های خود هستیم.
از آنجا ، Hexawise به طور خودکار اسکریپت تست الگوی واحد را که ما ایجاد می کنیم اصلاح می کند و مقادیر مناسب را در هر آزمون در مدل شما وارد می کند (خواه 10 تست داشته باشد یا 1000).
ما حتی می توانیم نتایج مورد انتظار ساده را به اسکریپت های تست دقیق خود اضافه کنیم

اگر نتایج مورد انتظار مانند صفحه فوق را در صفحه "دستی دستی" توصیف کنید ، Hexawise به طور خودکار آنها را در هر مرحله آزمایشی قابل اجرا در هر آزمون قابل اجرا در مدل شما اضافه می کند. برای این مثال ، هر آزمایش با کانال به عنوان "سالن VIP" این نتیجه مورد انتظار را پس از مرحله 1 تست نشان می دهد.
ایجاد قوانین ساده با استفاده از منوی کشویی که تعیین می کند نتیجه مورد انتظار مشخص می شود ، امکان پذیر است. برای انجام این کار ، ما از منوهای کشویی در این ویژگی استفاده می کنیم تا قوانینی ساده مانند "وقتی ____ ___ است و وقتی ____ ____ نیست ، نتیجه مورد انتظار _____ باشد."
این ویژگی نتایج مورد انتظار باعث می شود حفظ مجموعه های آزمون در طول زمان آسان شود زیرا نتایج مورد انتظار مبتنی بر قوانین در تست ها به طور خودکار به روز می شوند و با تغییر مجموعه آزمون با گذشت زمان تغییر می کنند.
نمودارهای پوشش به تیم ها اجازه می دهد تا تصمیمات مبتنی بر واقعیت را در مورد "چقدر آزمایش کافی است؟"

پس از اجرای 37 آزمایش اول مجموعه 2 طرفه این مدل ، 80. 2 ٪ از کل "جفت" های ممکن از مقادیر موجود در سیستم با هم آزمایش می شوند. پس از تمام 87 تست ، هر "جفت" احتمالی مقادیر موجود در سیستم با هم آزمایش می شود (100 ٪ پوشش).
این نمودار و نمودارهای اضافی که در زیر نشان داده شده است ، بینش هایی را در مورد "چقدر آزمایش کافی است؟"و آنها به وضوح نشان می دهند که میزان یادگیری / میزان پوشش که از اجرای آزمون ها در ابتدای مجموعه آزمون حاصل می شود ، بسیار بیشتر از یادگیری و پوشش به دست آمده با اجرای آن تست ها به سمت انتهای مجموعه آزمون است. همانطور که در اینجا توضیح داده شد ، این نوع "بازده حاشیه ای کاهش می یابد" اغلب در مورد مجموعه های آزمایشی بهینه شده علمی مانند اینها اتفاق می افتد.
تست های Hexawise همیشه دستور داده می شود تا حداکثر پوشش آزمایشی حاصل از آن را در هر زمان که در آنجا برای آزمایش در دسترس باشد ، به حداکثر برسانند. آزمایش کنندگان باید به طور کلی آزمایشات را به این ترتیب انجام دهند که در hexawise ذکر شده اند. انجام این کار به آزمایش کنندگان این امکان را می دهد تا پس از هر آزمایش با اطمینان که آنها تا حد امکان در زمان مجاز پوشش داده اند ، آزمایش را متوقف کنند.
ما می دانیم که اگر بعد از آزمایش شماره 37 آزمایش را متوقف کنیم ، به پوشش 80. 2 ٪ جفت های موجود در سیستم می رسید ، اما کدام شکاف های پوشش خاص در آن نقطه وجود خواهد داشت؟برای این اطلاعات به نمودار ماتریس زیر مراجعه کنید.
نمودار پوشش ماتریس دقیقاً به ما می گوید اگر ما قبل از پایان مجموعه تست ، تست را متوقف کنیم ، کدام شکاف های پوشش وجود خواهد داشت

نمودار ماتریس بالا هر جفت خاص را نشان می دهد که اگر بخواهیم بعد از تست شماره 37 آزمایش را متوقف کنیم ، هنوز با هم آزمایش نمی شوند.
به عنوان مثال ، در 37 تست اول ، هیچ سناریویی وجود ندارد که شامل هر دو (الف) "محدودیت مجوز مشتری - 1 - 5000" همراه با (ب) "مبادله معاملات (کشور) - اندونزی" باشد.
ما می توانیم پوشش را روی مجموعه کاملاً کامل از تست های 3 طرفه ای که ایجاد کردیم نیز تجزیه و تحلیل کنیم.

پس از اجرای اولین تست های 202 آزمایش 3 طرفه این مدل ، 80. 0 ٪ از کل "سه گانه" ممکن از مقادیر موجود در سیستم با هم آزمایش می شوند. پس از هر 505 تست ، هر "سه گانه" احتمالی مقادیر موجود در سیستم با هم آزمایش می شود (100 ٪ پوشش).
این نمودار بینش در مورد "چقدر آزمایش کافی است؟"و به وضوح نشان می دهد که میزان یادگیری / میزان پوشش که از اجرای تست ها در ابتدای مجموعه آزمون حاصل می شود ، بسیار بالاتر از یادگیری و پوشش به دست آمده با اجرای آن آزمون ها به سمت انتهای مجموعه آزمون است. همانطور که در اینجا توضیح داده شد ، این نوع "بازده حاشیه ای کاهش می یابد" اغلب در مورد مجموعه های آزمایشی بهینه شده علمی مانند اینها اتفاق می افتد.
تست های Hexawise همیشه دستور داده می شود تا حداکثر پوشش آزمایشی حاصل از آن را در هر زمان که در آنجا برای آزمایش در دسترس باشد ، به حداکثر برسانند. آزمایش کنندگان باید به طور کلی آزمایشات را به این ترتیب انجام دهند که در hexawise ذکر شده اند. انجام این کار به آزمایش کنندگان این امکان را می دهد تا پس از هر آزمایش با اطمینان که آنها تا حد امکان در زمان مجاز پوشش داده اند ، آزمایش را متوقف کنند.
ویژگی تست مبتنی بر ریسک - - - با "تولید تست با قدرت مختلط" ، ما می توانیم پوشش کامل دیگری را به صورت انتخابی روی تعامل با اولویت بالا در سیستم خود تحت آزمایش متمرکز کنیم

برخی از فعل و انفعالات موجود در سیستم ما برای آزمایش کامل با یکدیگر از سایر فعل و انفعالات مهمتر است. تقریباً همیشه اینگونه است ، اینطور نیست؟
در این مثال ، ما می خواهیم هر ترکیب ممکن را شامل شود (الف) خرید یا فروش ، (ب) مبادله معامله (کشور) ، (ج) بازار یا سفارش محدود و (د) اندازه معامله. دلیل این امر این است که هر مبادله باید جزئیات معاملات اولیه را کاملاً آزمایش کند. ذینفعان (و با صدای بلند ، رئیس ، خصمانه ، در آن) کاملاً روشن کرده اند که ، هر کاری که انجام می دهیم ، باید مطمئن باشیم که هر تعامل 4 طرفه شامل این 4 پارامتر "اولویت بالا" را آزمایش کنیم. ما نمی توانیم فراموش کنیم که هر یک از این ترکیبات 4 طرفه را آزمایش کنیم.
برای جلوگیری از تردید ، یکی از چنین ترکیب های با اولویت بالا این است:
ترتیب بازار سفارش محدود؟= سفارش محدود شده با همراه با اندازه معامله = 5001 - 100000 و همچنین همراه با خرید یا فروش؟= خرید و همچنین همراه با مبادله معامله (کشور) = تایلند
اگر ما بهتر نمی دانستیم ، ممکن است سعی کنیم مجموعه کاملی از هر ترکیب 4 طرفه ممکن را ایجاد کنیم (به عنوان مثال ، از جمله نه تنها ترکیبات 4 طرفه با اولویت بالا بلکه همه ترکیبات 4 طرفه). اما این باعث می شود تست های بسیار بیشتری از آنچه برای دستیابی به این هدف خاص پوشش نیاز داریم ، ایجاد کند.

اگر فکر می کنید "آسان! بیایید فقط 1،971 سناریو را از مجموعه 4 طرفه ما اجرا کنیم!" ، شما در مسیر صحیح هستید. این راه حل "نیروی بی رحمانه" مطمئناً به هدف جدید ما در مورد پوشش جامع از هر ترکیب 4 طرفه ممکن که شامل بالاترین متغیرهای اولویت در سیستم ما تحت آزمایش باشد ، می رسد. با این حال ، ما به سادگی زمان زیادی برای آزمایش در اینجا نداریم. خوب است که از لوکس بودن وقت کافی برای اجرای تمام آن تست ها برخوردار باشید ، اما زندگی پر از مشکلات و ناامیدی است ، اینطور نیست؟به نظر می رسد ، ما فقط نیمی از زمان را که در ابتدا برنامه ریزی شده بود ، داریم. ما باید به پوشش 100 ٪ این ترکیبات 4 طرفه فوق العاده بالا دست یابیم و همچنین به پوشش 100 ٪ هر جفت ورودی آزمایشی برسیم - خواه این جفت ها "اولویت بالایی" باشند یا نه.(به عنوان نمونه ، یک جفت از این دست می تواند محدودیت مجوز مشتری = 0 باشد که همراه با معامله دوم آزمایش شده است؟ = n).
مشکلی نیستما می توانیم با ویژگی قدرت مخلوط به هر سه هدف خود برسیم:
به مراتب کمتر از 1،961 تست (که تعداد تست های لازم برای دستیابی به پوشش 4 طرفه هر ورودی آزمایش ممکن ، صرف نظر از اولویت ورودی ورودی ها) بود.
بهترین استراتژی معاملات...
ما را در سایت بهترین استراتژی معاملات دنبال می کنید
برچسب :
نویسنده : صدرا ذوالریاستین
بازدید : 76
تاريخ : شنبه
11 شهريور
1402 ساعت: 19:44