اتوماسیون مبتنی بر هوش مصنوعی در TestRail به شما کمک میکند سریعتر از test caseهای دستی به automation قابل اجرا برسید. این قابلیت بر اساس محتوای test case و تنظیماتی که انتخاب کردهاید، یک پیشنویس اولیه و ساختارمند تولید میکند و همزمان توضیح میدهد چه چیزی ساخته و چرا ساخته است.
این خروجی برای بازبینی، تست و اصلاح طراحی شده است. کار شما را سریعتر میکند، اما کنترل همچنان دست شماست.
کیفیت چیزی که دریافت میکنید مستقیماً به کیفیت چیزی بستگی دارد که ارائه میدهید. این راهنما توضیح میدهد چطور test caseهای بهتری بنویسید، prompt مؤثرتری بدهید و context مناسب فراهم کنید تا automation تولیدشده با project واقعی شما هماهنگ باشد.
#

بفهمید AI دقیقاً از چه اطلاعاتی استفاده میکند #
هنگام تولید automation، فقط اطلاعات متنی موجود در test case به AI ارسال میشود. این اطلاعات میتواند شامل موارد زیر باشد:
- عنوان
- توضیحات
- پیششرطها
- مراحل
- نتایج مورد انتظار
- سناریوهای BDD
- سایر فیلدهای متنی سفارشی
AI از هرکدام از این فیلدها که در test case وجود داشته باشند استفاده میکند. metadata ساختاریافته، پیوستها و فیلدهای غیرمتنی استفاده نمیشوند.
test caseها را برای automation بنویسید، نه فقط برای انسان #
صرفنظر از اینکه از کدام template برای test case استفاده میکنید، هرچه اطلاعات عنوان، پیششرطها، مراحل و نتایج مورد انتظار دقیقتر و ساختارمندتر باشد، automation تولیدشده بهتر خواهد بود.
AI نیت شما را مثل یک tester انسانی تفسیر نمیکند. AI دستورهای نوشتهشده را به منطق قابل اجرا تبدیل میکند. هرچه دستورها روشنتر باشند، نتیجه قویتر خواهد بود. حتی یک عنوان دقیقتر هم میتواند به AI کمک کند هدف test را بهتر بفهمد.
بیایید یک مقایسه ساده را ببینیم.
🟡 نمونه ضعیف #
عنوان: کاربر میتواند پروفایل را بهروزرسانی کند
مراحل:
- Log in کنید
- پروفایل را بهروزرسانی کنید
- ذخیره کنید
- تغییرات را بررسی کنید
این متن جای تفسیر زیادی باقی میگذارد:
- کدام فیلد باید بهروزرسانی شود؟
- چه دادهای باید وارد شود؟
- فرآیند log in چطور انجام میشود؟
- کدام selectorها درگیر هستند؟
- چه چیزی موفقیت را تأیید میکند؟
- automation باید منتظر چه چیزی بماند؟
#
🟢 نمونه قویتر #
عنوان: بهروزرسانی شماره تلفن در تنظیمات profile
توجه کنید که عنوان از همان ابتدا هدف مشخص test case را روشن میکند.
پیششرطها:
- حساب کاربری وجود دارد
- Base URL: https://staging.example.com
- کاربر logged out است
مراحل:
- به /login بروید
- ایمیل را در فیلدی با ID email وارد کنید
- رمز عبور را در فیلدی با ID password وارد کنید
- روی دکمهای با ID login-submit کلیک کنید
- صبر کنید تا URL شامل /dashboard شود
- به /profile بروید
- فیلدی با ID phone-number را پاک کنید
- مقدار +۴۴ ۷۷۰۰ ۹۰۰۱۲۳ را وارد کنید
- روی دکمهای با CSS selector .save-profile کلیک کنید
- منتظر success toast با متن Profile updated successfully بمانید
نتایج مورد انتظار:
- success toast نمایش داده میشود
- متن toast برابر است با Profile updated successfully
- فیلد phone-number شامل +۴۴ ۷۷۰۰ ۹۰۰۱۲۳ است
این نسخه موارد زیر را فراهم میکند:
- هدف کاملاً مشخص
- navigation صریح
- ارجاعهای مشخص به elementها
- test data تعریفشده
- assertionهای قابل بررسی
- actionهای دقیق
- inputهای دقیق
- validationهای دقیق
- نتایج قابل مشاهده
هرچه test case شما صریحتر باشد، اتوماسیون تولیدشده بهتر با رفتار مورد نظر شما هماهنگ میشود.
validationها را صریح بیان کنید #
اتوماسیون فقط زمانی درست کار میکند که سیستم بتواند بهروشنی تشخیص دهد یک test موفق شده یا شکست خورده است.
برخلاف تستر انسانی، یک تست خودکار نمیتواند به قضاوت شخصی یا برداشت بصری تکیه کند. باید شرایط مشخص و قابلاندازهگیری را در اپلیکیشن بررسی کند تا تشخیص دهد رفتار درست است یا نه.
در اتوماسیون، به این بررسیها میگویند assertionها. assertion یعنی یک قانون ساده در کد که بررسی میکند چیزی درست باشد، برای مثال:
- یک پیام نمایش داده شود
- یک دکمه فعال باشد
- یک URL تغییر کرده باشد
- یک فیلد مقدار مشخصی داشته باشد
اگر شرط برقرار نباشد، test شکست میخورد.
جزئیات validation میتواند در این بخشها بیاید:
- پیششرطها
- مراحل
- نتایج مورد انتظار
- یا در دستورالعملهای تکمیلی prompt
نکته مهم این است که نتیجه مورد انتظار، در بخشی از اطلاعاتی که برای AI ارسال میشود، بهروشنی تعریف شده باشد.
زبان و framework درست را انتخاب کنید #
قبل از تولید automation، زبان و framework را انتخاب میکنید؛ مثل Java یا Python، و Selenium یا Playwright.
اگر test case شما از قالبی با سبک BDD استفاده کند، AI بهطور خودکار آن را با ابزار مناسب هماهنگ میکند:
- Cucumber برای Java
- Behave برای Python
برای گرفتن بهترین نتیجه با BDD، در هر test case فقط یک scenario داشته باشید. چند scenario در یک test case میتواند خروجی را حجیم، پراکنده یا کمتمرکز کند.

از prompt مستقیم، هدفمند استفاده کنید #
هنگام تولید automation در TestRail، میتوانید قبل از کلیک روی generate، در پنجره AI automation دستورالعملهای بیشتری وارد کنید. به این کار prompting میگویند.
prompt یعنی مجموعهای ساختاریافته از دستورالعملها که به AI میگوید هنگام تولید کد چگونه عمل کند. این دستورالعملها میتوانند شامل ترجیحها، محدودیتها، قوانین و راهنماییهای مخصوص project باشند.
آن را مثل توضیح دادن کار به یک عضو جدید تیم در نظر بگیرید، پیش از اینکه شروع به نوشتن automation کند. هرچه prompt دقیقتر باشد، نتیجه هم بهتر خواهد بود.
موثرترین promptها دو بخش دارند:
- دستورالعملهایی برای ساخت context
- دستورالعملهایی برای تعیین boundary
هر دو بخش ضروری هستند.
promptهای context-building چیستند؟ #
برای خوانندگان غیر فنی، promptهای context-building دستورالعملهایی هستند که توضیح میدهند project شما چگونه کار میکند. این دستورالعملها به AI کمک میکنند بفهمد:
- از چه frameworkی استفاده میکنید
- automation شما چه ساختاری دارد
- از چه قراردادهای نامگذاری استفاده میکنید
- ترجیح میدهید validationها و waitها چگونه نوشته شوند
این دستورالعملها با کم کردن خروجیهای عمومی و هماهنگ کردن کد تولیدشده با framework فعلی شما، کیفیت را بهتر میکنند. نمونههایی از دستورالعملهای context-building:
- روش ترجیحی برای locatorها
- استفاده از Page Object Model
- wrapperهای سفارشی برای assertionها
- قراردادهای نامگذاری
- استراتژیهای انتظار
- الگوهای معماری
promptهای تعیینکننده مرز چه هستند؟ #
promptهای تعیینکننده مرز به هوش مصنوعی میگویند چه کارهایی را نباید انجام دهد.
سیستمهای هوش مصنوعی سعی میکنند جاهای خالی را پر کنند. اگر چیزی واضح نباشد، ممکن است ساختار، selector، ابزار کمکی یا test data را از خودش بسازد.
مرزها به حفظ یکپارچگی کمک میکنند.
این مرزها جلوی موارد زیر را میگیرند:
- فراتر رفتن از معماری تعیینشده
- دادههای ساختگی
- الگوهای تأییدنشده
- refactoring غیرضروری
آنها کد تولیدشده را پایدار و قابل پیشبینی نگه میدارند.
چرا هر دو مهم هستند #
promptهای زمینهساز کیفیت را بهتر میکنند.
promptهای تعیینکننده مرز از یکپارچگی محافظت میکنند.
این دو در کنار هم کنترل بیشتری به شما میدهند.
وقتی promptی میفرستید که هر دو مورد را ترکیب میکند، هوش مصنوعی فقط نمیفهمد هنگام تولید کد از چه چیزهایی استفاده کند؛ بلکه میفهمد از چه چیزهایی هم باید دوری کند.
این کار خروجیهای کلی و عمومی را بهطور محسوسی کاهش میدهد و احتمال اینکه کد تولیدشده ویژگیهای زیر را داشته باشد بیشتر میکند:
- با framework شما هماهنگ باشد
- به تصمیمهای معماری شما پایبند بماند
- از patternهای درست استفاده کند
- انتظارات شما را برآورده کند
نمونهای از یک prompt خوب #
در ادامه نمونهای را میبینید که context و مرزها را در یک دستورالعمل ساختاریافته کنار هم قرار میدهد:
Generate automation using Playwright with Python.
Follow our existing Page Object Model structure as shown in the uploaded files.
Use data-testid selectors wherever available.
Use our custom assert_text_equals() wrapper for validations.
Use explicit waits from our wait utility and do not use fixed sleeps.
Do not introduce new helper classes or base classes.
Do not invent URLs, credentials, or test data.
If required information is missing, insert a clearly marked TODO instead of guessing.
Only implement the steps defined in this test case. Do not extend behaviour beyond what is described.
وقتی چنین promptی را در پنجره AI automation وارد میکنید:
- هوش مصنوعی framework و patternهای مورد نظر شما را میفهمد.
- از ساختن معماری دلخواه خودش خودداری میکند.
- بهجای فرضهای ناامن، placeholder قرار میدهد.
- script تولیدشده بسیار بیشتر با project واقعی شما هماهنگ خواهد بود.
یک prompt خوب چنین ساختاری دارد.
چه چیزهایی promptها را مؤثرتر میکند #
promptهایی که نتیجه بهتری میدهند معمولاً این ویژگیها را دارند:
- بهجای کلیگویی، مشخص و دقیق هستند
- ساختار واقعی project شما را منعکس میکنند
- راهنمایی و محدودیت را با هم ترکیب میکنند
- از دستورهای مبهمی مثل «کد تمیز بنویس» دوری میکنند
- واضح مشخص میکنند که با اطلاعات ناقص یا ناموجود چه برخوردی شود
promptنویسی به معنی اضافه کردن متن بیشتر نیست.
یعنی شفافیت درست را اضافه کنید.
وقتی promptها خوب نوشته شوند، AI automation بهجای یک generator عمومی، به دستیاری تبدیل میشود که با framework شما هماهنگ است.
از آپلود فایل بهعنوان عاملی برای افزایش کیفیت استفاده کنید #
قبل از تولید automation، میتوانید فایلهای تکمیلی را آپلود کنید تا context بیشتری در اختیار AI قرار بگیرد. فرمتهای پشتیبانیشده شامل فایلهای رایج کد، فایلهای پیکربندی و قالبهای مستندات است. آپلود فایلهای واقعی project، ارتباط و هماهنگی automation تولیدشده را بهطور چشمگیری بهتر میکند.
فایلهای مفید برای آپلود: #
- کلاسهای Page Object
- کلاسهای پایه test
- متدهای کمکی
- فایلهای نمونه test
- مخزنهای متمرکز locator
- فایلهای setup مربوط به test
- پیکربندی runner
- بخشهای نمونه از framework
- wrapperهای سفارشی برای assertion
- ابزارهای logging
- helperهای wait
- و موارد مشابه
بازبینی، اصلاح و تکرار کنید #
پاسخ AI شامل این موارد است:
- توضیحی درباره آنچه تولید شده است
- کامنتهای inline که کد را به مراحل test وصل میکنند
- placeholderهای مشخص برای جاهایی که ورودی کافی وجود ندارد.
همیشه:
- اسکریپت را بازبینی کنید
- آن را در محیط خودتان اجرا کنید
- selectorها و waitها را اعتبارسنجی کنید
- برای نگهداری آسانتر، آن را اصلاح کنید
تولید automation قابل ردگیری است و در history و audit logs ثبت میشود، اما اعتبارسنجی انسانی همچنان ضروری است.
این اسکریپت شامل کدی است که با استفاده از LLM تولید شده است. چون این کد را یک سیستم خودکار تولید میکند، لطفاً به موارد زیر توجه کنید:
- پشتیبانی رسمی ندارد. برای کدی که AI تولید کرده است، پشتیبانی فنی، عیبیابی یا رفع bug ارائه نمیکنیم.
- بازبینی الزامی است. قبل از استفاده، باید همه خروجیها را بهصورت دستی بررسی و test کنید. سیستمهای خودکار ممکن است خطا، ضعف امنیتی یا syntax قدیمی تولید کنند.
- context محیطی. بهدلیل نبود context کافی، مراحل تولیدشده ممکن است ناقص یا نادرست باشند. این میتواند شامل نیازمندیهای ذکرنشده browser، dependencyهای موجود نبودن، یا پیکربندیهای خاص محیط باشد.
- مسئولیت کاربر. مسئولیت عملکرد، امنیت و نگهداری هر کد تولیدشدهای که برای پیادهسازی انتخاب میکنید، فقط بر عهده شماست.
TestRail Academy
یاد بگیرید چطور از Automate with AI استفاده کنید
#
دوره TestRail Academy را ببینید تا یاد بگیرید چطور با AI اسکریپتهای automation بسازید، workflow را بهتر بشناسید و از این قابلیت بهترین نتیجه را بگیرید.

