پنج شنبه , ۲۰ اردیبهشت ۱۴۰۳

مقاله

مقاله

مزایای Test Generatorهای تصادفی

Random Test Generators

چقدر در مورد Random Testing می‌دانیم؟ امروز می‌خواهیم مقداری در مورد FsCheck صحبت کنیم. FsCheck یک ابزار برای تست اپلیکیشن‌های NET. به صورت اتوماتیک است. با استفاده از این ابزار، کدنویس یک Specification از برنامه را به شکل Propertyهایی از Functionها، Methodها، یا Objectهایی که باید برآورده شوند، آماده می‌کند. سپس FsCheck تست می‌کند که این Propertyها به صورت تصادفی در تعداد …

ادامه نوشته »

استفاده از یادگیری ماشین برای پیش‌بینی پوشش تست(Test Coverage)

Test Coverage Prediction

در این راستا بهتر است که تسترها درگیر مرحله جمع‌آوری نیازمندی‌ها(Requirement) در چرخه توسعه نرم‌افزار شوند، زیرا این موضوع در جهت درک بهتر نیازمندی‌ها، به نفع تیم‌های تضمین کیفیت و Business خواهد بود. ما این نیازمندی‌ها را تحلیل کرده، Test Caseها را تهیه و اجرا نموده، اشکالات را ردیابی(Tracking) کرده، و در آخر برای استخراج و تائید Test Coverage اقدام …

ادامه نوشته »

یک کارآگاه Data شوید

Be a Data Detective

از ۱۹۶۰، تحلیلگران داده گزارش‌هایی را برای جمع‌آوری و به اشتراک‌گذاری اطلاعات از سیستم‌های کامپیوتری ایجاد کردند تا به افراد امکان اتخاذ تصمیمات بهتر را بدهند. بنابر تجربه‌ای که با آن برخورد داشته‌ام باید بگویم اگر چه این گزارشات مملو از اطلاعات هستند، اما اغلب اوقات اطلاعات مناسب و درستی را که مشتریان داده‌های ما بدان نیاز دارند و یا …

ادامه نوشته »

روش‌ها و ابزارهای Data-Driven API Testing(تست API مبتنی بر داده)

Data-Driven API Testing

تست نرم‌افزار دارای انواع مختلفیست اما مهمترین تمایز بین گونه‌های مختلف تست، دیدگاه موجود در تست نرم‌افزار است. این بدین معنیست که دیدگاه تست، مبتنی بر کد باشد یا دیدگاه مبتنی بر تعامل با محصول. در صنعت تست دو دیدگاه مشهور به نام دیدگاه مبتنی بر جعبه سیاه(Black Box) و دیدگاه مبتنی بر جعبه سفید(White Box) وجود دارد. در دیدگاه …

ادامه نوشته »

Continuous Performance Testing در محیط‌های Agile

Continuous Performance Testing

اجازه بدهید با حقیقتی مواجه شویم: Agile حقیقت زندگیست. شاید شما یک کارگاه Full Agile ندارید و یا ممکن است Continuous Integration-CI را انجام ندهید، یا حتی تا کنون در مورد DevOps صحبت هم نکرده باشید، اما واقعیت این است که فشارهای موجود در بازار باعث می­‌شود تا بسیاری از مزایا مانند کیفیت و سرعت، که جز ذات متدولوژی‌­های Agile …

ادامه نوشته »

۷ نکته ساده برای مهندسی Performance بهتر در عالم نرم‌افزار

Lamborghini

انعطاف‌پذیری  و Performance  نرم‌افزار، مولفه‌های کلیدی تجربه کاربری(User Experience-UX) هستند، اما از آنجایی که صنعت نرم افزار DevOps را در آغوش گرفته است، جنبه‌های Performance  و انعطاف پذیری روند کاهشی را آغاز کرده‌اند. مسائل مربوط به Performance  اغلب تا زمانی که نرم‌افزار به طور کامل با شکست مواجه نشود، نادیده گرفته می‌شوند. با این حال، همه ما می‌دانیم Performance  به …

ادامه نوشته »

۵ عامل کلیدی برای دستیابی به Agile Testing در DevOps

Agility In DevOps

در سال‌های اخیر، بسیاری از سازمان‌ها توسط DevOps تحت تاثیر قرار گرفته‌اند. با تغییر ذهنیات افراد، اتومات‌سازی فرآیندهای استقرار(Deployment) و Build بوسیله پیاده‌سازی ابزارها و فرآیندهای مناسب، افزایش تست اتوماتیک، شکست دیوارهای میان Development و Operation، و نیز اتوماتیک‌سازی Monitoring و Reporting، برخی DevOps را به صورت End-to-End اجرا کرده، و آنرا در همه شئونات دخیل کرده‌اند. با این حال، باید …

ادامه نوشته »

استفاده از پارتیشن‌بندی هم‌ارزی(Equivalence Partitioning) و تحلیل مقدار مرزی در تست Black Box

Boundaries

بخشی از کار تستر، نوشتن Test Caseها مطابق با مجموعه‌ نیازمندی‌هاست. زمانیکه با این نیازمندی‌ها پرزنت می‌شوید، آیا Panای برای طراحی Test Caseها بر اساس مشخصات دارید؟ من همیشه تعریف واژگان را بسیار مفید می‌دانم، بنابراین با تست مبتنی بر مشخصات شروع خواهم کرد. تکنیک‌های تست مبتنی بر مشخصات به عنوان تکنیک‌های تست Black Box یا تکنیک‌های تست ورودی/خروجی محور(Input/Output-Driven …

ادامه نوشته »

هوش مصنوعی در دنیای تست نرم‌افزار

Artificial intelligence

به عنوان یک فناوری نسبتا جدید و در حال رشد، تعریف “هوش مصنوعی”(AI) نیز به طور مداوم در حال تکامل است. در حالی که تحلیلگران و متخصصان مختلف در سراسر جهان تفسیرهای خود را در این رابطه مطرح می‌کنند، تعریف عمومی هوش مصنوعی این است که هوش مصنوعی با از استفاده از داده‌ها، و توانایی‌های شبه انسانی برای درک محیط‌ها …

ادامه نوشته »

تست بازنویسی نرم‌افزار

Software Rewriting

as-is System(سیستم موجود) ما را به جایی می‌برد که می‌خواهیم برویم، اما چیزی که ما بدان نیاز داریم to-be System(سیستم آتی) است تا بدینوسیله همان کارها را به صورت موثرتر انجام دهد. من چند سال پیش با یک Code-Base مواجه شدم. باید گفت که کد بدی نبود؛ کد مذبور با بهترین ابزار موجود در زمان خود ساخته شده بود. اما …

ادامه نوشته »