در ادامه آموزش، در این بخش مدلهای مقیدسازی Method name- underscores و Method name- pascal case تشریح میگردند. تعاریف بسیاری از گامها بدون استفاده از عبارات منظم امکان پذیر است. در مدل Method name- underscores، در نامگذاری متد از علامت (_) underscore استفاده میشود و برخلاف حالت عبارات منظم،[Given][When][Then] خالی بوده و شامل هیچ عبارتی نیستند. برای مشخصسازی پارامترها در …
ادامه نوشته »آموزش
آموزش Robolectric-قسمت چهارم: اولین تست خود را بنویسید
فرض کنیم شما یک Activity Layout دارید که صفحه Welcome را به شما نشان میدهد: ما قصد داریم تستی بنویسیم که نشان میدهد هنگامی که یک کاربر بر روی یک دکمه کلیک میکند، برنامه LoginActivity راهاندازی میشود. برای تست کردن چنین چیزی، میتوانیم چک کنیم زمانی که یک کاربر بر روی دکمه “Login” کلیک میکند، کار درستی را آغاز کنیم. …
ادامه نوشته »چرخه حیات تست نرمافزار-STLC
بر خلاف باور عمومی، تست نرمافزار تنها یک فعالیت واحد نیست. چرخه حیات تست نرمافزار(STLC) چیست؟ چرخه حیات تست نرمافزار(STLC) به صورت دنبالهای از فعالیتهای انجام شده برای انجام تست نرمافزار تعریف میشود. این چرخه شامل مجموعهای از فعالیتهای انجام شده به صورت متدولوژیک برای کمک به تایید محصول نرمافزاری شماست. تصویر زیر مراحل مختلف در چرخه حیات تست نرمافزار …
ادامه نوشته »آموزش SpecFlow-قسمت چهارم: مقیدسازی Regular expressions
در این قسمت در ارتباط با مقید سازی گامها در SpecFlow با مدل Regular expressions صحبت خواهیم کرد. همان طور که پیشتر عنوان شد با استفاده از مقیدسازی(Binding) گامها، بین سناریوها به زبان آزاد و متدهای .NET به عنوان گامهای تست ارتباط برقرار میشود. برای این منظور در SpecFlow سه مدل Regular expressions in attributes ، Method names-underscores و Method names- …
ادامه نوشته »آموزش Robolectric-قسمت سوم: استفاده از Robolectric با دیگر محیطهای Build
Android Studio + Gradle – AGP < 3.0 در نسخههای قبلی شما باید فیلد ‘constants’ که به ‘BuildConfig.class’ تولید شده توسط Gradle اشاره میکند را مشخص کنید. Robolectric از constants در کلاس برای محاسبه مسیرهای خروجی مورد استفاده Gradle هنگام ساختن پروژه، بهره میگیرید. بدون این مقادیر، Robolectric قادر نخواهد بود Manifest، Resourceها و Assetهای Merg شده را پیدا کند. این کار …
ادامه نوشته »آموزش SpecFlow-قسمت سوم: آشنایی بیشتر با سناریوها
در قسمت سوم آموزش قصد داریم تا آشنایی بیشتری با سناریوها پیدا کنیم. برای این منظور با امکان(Feature) ورود کاربری به عنوان بازدید کننده سایت، کار را آغاز میکنیم. در واقع امکان ورود کاربری به SpecFlow Feature File اضافه میشود. فرض کنید مشتری از ما میخواهد تا هر کاربر برای ورود به سایت, یک نام کاربری و رمز عبور ایجاد …
ادامه نوشته »آموزش Robolectric-قسمت دوم: آغاز
Robolectric با Gradle یا Bazel بهتر کار میکند. اگر شما یک پروژه جدید شروع کردهاید، اول Gradle را توصیه میکنیم(از آنجایی که Gradle همان Build System انتخابی در Android Studio است) و دوم Bazel را. هر دو محیط پشتیبانی First Class برای Robolectric را ارائه میدهند. اگر از Build System دیگری استفاده میکنید، ببینید محیطهای دیگر چگونه پیکربندی میشوند و یا …
ادامه نوشته »آموزش Appium برای تست اپلیکیشنهای موبایل Android و iOS-قسمت چهارم: موبایل را با استفاده از Android Debug Bridge-ADB از طریق USB و WiFi متصل کنید
استفاده از هر Device واقعی برای اتوماسیون تست موبایل، همیشه یک چالش برای تسترهاست. اما، آندروید راه حلی برای اتصال یک دستگاه واقعی از طریق USB ارائه میدهد، یعنی Android Debug Bridge-ADB. ADB یک ابزار خط فرمانی(Command Line) است. این ابزار برای ارتباط بین یک Emulator Instance(دستگاه اندرویدی) و Daemon Process در حال اجرا در پس زمینه است(Server). پیکربندی ADB …
ادامه نوشته »آموزش SpecFlow-قسمت دوم: ایجاد Feature و سناریوی آن
در قسمت دوم آموزش SpecFlow بنا داریم تا نشان دهیم یک ویژگی نمونه به همراه سناریو آن چگونه ایجاد میشود و چگونه از مراحل سناریوی تعریف شده به زبان تعریفی قابل درک برای مشتری در سناریوها و به مراحل تست پذیرش و کد میرسیم. در ابتدا به نظر میرسد مروری بر مفاهیم BDD مفید واقع شود. BDD که از این …
ادامه نوشته »آموزش Robolectric-قسمت اول: معرفی
اجرای تستها در شبیهساز آندروید یا دستگاه کند است؟ ساخت(Building)، استقرار(Deploying) و راهاندازی(Lunching) برنامه اغلب یک دقیقه یا بیشتر طول میکشد؟ در اینجا هیچ راهی برای انجام TDD وجود ندارد؟اما باید راهکار بهتری هم وجود داشته باشد. Robolectric یک Framework است که تستهای سریع و قابل اطمینان را برای Android به ارمغان میآورد. تستها در چند ثانیه داخل JVM روی …
ادامه نوشته »