<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های مهندس پیشگان آزمون افزار یاس</title><link>https://virgool.ir/feed/@mohandespishegan.com</link><description>شرکت مهندس پيشگان آزمون افزار ياس زمینه اصلی فعالیتهای خود را بر روی تست نرم افزار و تضمين کيفيت نرم افزار متمرکز نموده است</description><language>fa</language><pubDate>2026-11-11 10:59:04</pubDate><image><url>https://virgool.ir/images/default-avatar.jpg</url><title>مهندس پیشگان آزمون افزار یاس</title><link>https://virgool.ir/@mohandespishegan.com</link></image><item><title>هنگام انجام تست نرم افزار سرویس های شخص ثالث چه می شوند؟</title><link>https://virgool.ir/@mohandespishegan.com/هنگام-انجام-تست-نرم-افزار-سرویس-های-شخص-ثالث-چه-می-شوند؟-gjdpzjnkovko</link><description>در مهندسی نرم افزار ، مجازی سازی سرویس یا مجازی سازی خدمات روشی است برای تقلید از رفتار اجزای خاص در برنامه های مبتنی بر مولفه های ناهمگن مانند برنامه‌های مبتنی بر API، برنامه‌های مبتنی بر ابر و معماری سرویس‌گرا.مجازی سازی سرویس امکان دسترسی آسان به اجزای محدودی را که مانع توسعه و آزمون می‌شوند ، به تیم ها می دهد. این امر معمولاً به صورت محدودیت های محیطی آشکار می شود که در آن اجزایی که از نظر فنی خارج از محدوده آزمون هستند، برای عملکرد کامل لازم هستند.با مجازی سازی سرویس، می‌توان با شبیه سازی وابستگی های پایین دست و جایگزینی عملکرد واقعی با رفتار شبیه سازی شده ، این محدودیت ها را برطرف نمود. وقتی این سیستم بدرستی پیاده سازی شود، می‌توان تضمین کرد سیستم شبیه مولفه واقعی رفتار نماید.بنابراین با قابلیت مجازی سازی سرویس می توان محدودیت های زمان‌بندی را با دسترسی به یک محیط آزمون شبیه‌ سازی شده از بین برد. همچنین می‌توان گلوگاه های فرآیند را با دسترسی سریع به سیستم های وابسته‌یِ در حال تکامل یا غیرقابل دسترس از بین برد.مجازی سازی سرویسمجازی سازی سرویس، رفتار مولفه های نرم افزاری را شبیه سازی می‌کند تا بتوان محدودیت های وابستگی به تیم های توسعه و آزمون را حذف کرد. این محدودیت ها در محیط های پیچیده رخ میدهد؛ خصوصا در محیط‌هایی که اجزای یک برنامه ی تحت آزمون به اجزایی که شرایط زیر را داشته باشند متصل باشد، از جمله:توسعه برخی اجزا به پایان نرسیده باشددر حال تکامل باشدتوسط شخص ثالث کنترل شود· آزمون آن فقط بصورت محدود و در زمان نامناسب میسر باشدپیکربندی در محیط آزمون دشوار باشددسترسی به سرویس موردنظر با تنوع داده ای دشوار باشدگرچه اصطلاح مجازی سازی سرویس نشان دهنده تمرکز اولیه این روش بر مجازی سازی سرویس‌های تحت وب می‌باشد، اما مجازی سازی سرویس در حوزه های دیگر نیز کاربرد دارد، مانند سرویس ها، پایگاه های داده ها، فریم ورک های اصلی، ESBها و سایر مولفه هایی که با استفاده از پروتکل های پیام رسان مشترک ارتباط برقرار می کنند.در مجازی سازی سرویس، صرفا رفتارها و سرویس‌هایی که توسعه دهندگان و آزمونگرها نیاز دارند تا تراکنش های نقطه به نقطه را به پایان برسانند، شبیه سازی می شوند. به جای مجازی سازی کل سیستم، فقط برش‌های خاصی که نیازمند آن است که وظایف بطور کامل انجام شوند، مجازی‌سازی می‌شود.چرا مجازی سازی سرویس مهم است؟برای دسترسی به کیفیت توامان با سرعت، دسترسی نامحدود به یک محیط آزمون قابل اعتماد و واقع گرایانه ضروری است. از عوامل بسیار مهم این است که بتوان محیطی کامل را شامل برنامه تحت آزمون (AUT)  و تمامی اجزای وابسته به آن را تشخیص و فراهم آورد (به عنوان مثال APIها، سرویس های شخص ثالث، پایگاه های داده و ....)مجازی سازی سرویس، تیم های DevTest را قادر می سازد تا به یک محیط آزمایشی کامل از جمله کلیه اجزای مهم سیستمِ وابسته دسترسی پیدا کنند و همچنین رفتار آن مؤلفه های وابسته ای را شبیه‌سازی کند که در محیط آزمون مرحله ای غیرممکن باشد ولذا شرایطی ایجاد می‌گردد که شما قادر باشید آزمون‌ها را سریعتر و کامل‌تر انجام دهید. همچنین این امکان را فراهم می‌کند که لایه های مختلف برنامه را برای اشکال زدایی و آزمون جدا کنید.مجازی سازی سرویس برای آن دسته از تیم های توسعه‌ی آزمون محور(TDD) که می‌خواهند برنامه تولید خود را با تمرکز بر روی رفع اشکالات خود در لایه API تسریع کنند، ایده آل است. با استفاده از مجازی سازی سرویس، توسعه دهندگان می توانند یکپارچه سازی را زودتر از مواقع دیگر اعتبار سنجی کنند. با توجه به اینکه تجربه کاربری یک برنامه تابعی از اجزاء مختلف آن است، منطقی است که اطمینان حاصل کنیم این اجزاء به همان خوبی که ایجاد شده اند کار می‌کنند، نه اینکه منتظر یک برنامه کامل باشند. مجازی سازی سرویس می تواند در هر مرحله از توسعه یک برنامه مفید باشد، از کمک به آزمایشات واحد دستی کوچک تا امکان آزمایش عملکرد خودکار یک سیستم یکپارچه.</description><category>مهندس پیشگان آزمون افزار یاس</category><author>مهندس پیشگان آزمون افزار یاس</author><pubDate>Sat, 02 Jan 2021 14:30:24 +0330</pubDate></item><item><title>چگونه تست واحد را انجام دهیم؟</title><link>https://virgool.ir/@mohandespishegan.com/تست-واحد-l5d3bth3ozyp</link><description>منظور از تست واحد، تست‌هایی هستند كه در سطح مولفه‌های پیاده سازی شده توسط تولید كنندگان سیستم جهت بررسی عملكرد و كارایی آن مولفه‌ها صورت می‌گیرد. در زبانهای شی‌گرایی همچون جاوا، منظور از مولفه همان كلاسها هستند.تست واحددر SDLC ، STLC ، V Model ، تست واحد اولین سطح تست است که قبل از تست ادغام انجام می شود. تست واحد تکنیکی برای آزمایش WhiteBox است که معمولاً توسط توسعه دهنده انجام می شود. اگرچه ، در یک دنیای عملی به دلیل تنگ شدن زمان یا عدم تمایل توسعه دهندگان به آزمایشات ، مهندسان QA همچنین واحد را انجام می دهند.چرا تست واحد؟تست واحد از این جهت مهم است که توسعه دهندگان نرم افزار گاهی اوقات سعی در صرفه جویی در وقت می کنند و حداقل تست واحد را انجام می دهند و این افسانه است زیرا تست واحد نامناسب منجر به هزینه بالای رفع نقص در هنگام تست سیستم ، یکپارچه سازی تست و حتی تست بتا بعد از ساخت برنامه می شود. اگر تست واحد مناسب در اوایل توسعه انجام شود ، در نهایت در وقت و هزینه صرفه جویی می شود.در اینجا ، دلایل اصلی برای انجام تست واحد در مهندسی نرم افزار وجود دارد:سطوح تست نرم افزارتست واحد به رفع اشکالات در اوایل چرخه توسعه و صرفه جویی در هزینه کمک می کند.تست واحد به توسعه دهندگان کمک می کند تا پایه کد تست را درک کنند و این باعث می شود که بتوانند به سرعت تغییرات ایجاد کنندتست  های واحد خوب به عنوان مستندات پروژه عمل می کنندتست های واحد به استفاده مجدد از کد کمک می کند. هم کد و هم تست های خود را به پروژه جدید خود منتقل کنید. کد را تغییر دهید تا آزمایش دوباره اجرا شود.چگونه تست واحد را انجام دهیمبه منظور انجام تست واحد، توسعه دهندگان بخشی از کد را برای آزمایش عملکرد خاص در نرم افزار می سنجند. توسعه دهندگان همچنین می توانند این تابع را برای آزمایش دقیق تر جدا کنند که این امر وابستگی های غیرضروری بین عملکرد مورد آزمایش و سایر واحدها را نشان می دهد تا وابستگی ها از بین بروند. توسعه دهندگان عموماً از چارچوب UnitTestبرای توسعه موارد آزمایشی خودکار برای تست واحد استفاده می کنند.تست واحد بر دو نوع است:دستیخودکارآزمون واحد معمولاً خودکار است اما هنوز هم ممکن است به صورت دستی انجام شود. مهندسی نرم افزار یکی را بر دیگری ترجیح نمی دهد اما اتوماسیون ارجح است. یک رویکرد دستی برای تست واحد ممکن است از یک سند گام به گام آموزشی استفاده کند.تحت رویکرد خودکاریک توسعه دهنده فقط برای آزمایش عملکرد بخشی از کد را در برنامه می نویسد. آنها بعداً اظهار نظر کرده و سرانجام هنگام اجرای برنامه ، کد آزمون را حذف می کنند.همچنین یک توسعه دهنده می تواند عملکرد را برای تست دقیق تر آن جدا کند. این یک روش دقیق تر تست واحد است که شامل کپی و چسباندن کد در محیط تست خود از محیط طبیعی آن است. جداسازی کد به کشف وابستگی های غیرضروری بین کد مورد آزمایش و سایر واحدها یا فضای داده در محصول کمک می کند. سپس می توان این وابستگی ها را از بین برد.یک کدنویس به طور کلی از UnitTest Framework برای توسعه موارد آزمایشی خودکار استفاده می کند. با استفاده از یک چارچوب خوذکارسازی ، توسعه دهنده برای بررسی درستی کد ، معیارها را برای تست کد می کند. در حین اجرای موارد آزمایشی ، چارچوب موارد ناموفق را ثبت می کند. همچنین بسیاری از چارچوب ها به طور خودکار این موارد آزمایشی ناموفق را پرچم گذاری و گزارش می کنند. بسته به شدت خرابی ، چارچوب ممکن است آزمایش بعدی را متوقف کند.مزیت های تست واحدتوسعه دهندگانی که می خواهند بدانند چه کارایی توسط یک واحد ارائه می شود و چگونه می توان از آن استفاده کرد ، می توانند با استفاده از تست های واحد درک درستی از API واحد پیدا کنند.تست واحد به برنامه نویس این امکان را می دهد که کد را دیرتر بازسازی نماید ، و اطمینان حاصل کنید که ماژول همچنان به درستی کار می کند (یعنی تست رگرسیون). روش کار این است که موارد آزمایشی را برای همه توابع و روش ها بنویسید تا هر زمان که تغییری باعث ایجاد خطا شد ، به سرعت شناسایی و برطرف شود.با توجه به ماهیت ماژولار تست واحد ، ما می توانیم قسمت هایی از پروژه را بدون انتظار برای تکمیل سایر قسمت ها آزمایش کنیم.معایب تست واحداز تست واحد نمی توان انتظار داشت که هر خطایی را در یک برنامه مشاهده کند. ارزیابی همه مسیرهای اجرا حتی در پیش پا افتاده ترین برنامه ها امکان پذیر نیست.تست واحد واحد براساس ماهیت خود بر روی یک واحد کد متمرکز است. از این رو نمی تواند خطاهای یکپارچه سازی یا خطاهای سطح گسترده سیستم را پوشش دهد.توصیه می شود از تست واحد همراه با سایر فعالیت های آزمایش استفاده شود.</description><category>مهندس پیشگان آزمون افزار یاس</category><author>مهندس پیشگان آزمون افزار یاس</author><pubDate>Wed, 30 Dec 2020 15:25:08 +0330</pubDate></item><item><title>تست نرم افزار(قسمت اول)</title><link>https://virgool.ir/@mohandespishegan.com/تست-نرم-افزارقسمت-اول-fuajsjce5nlk</link><description>در این مقاله قصد داریم نگاه عمیق‌تری به تست نرم‌افزار، شیوه‌ها و کاربردهای آن داشته باشیم. اگر بخواهیم از تست نرم افزار تعریفی ساده داشته باشیم می‌توان گفت&#34; تست نرم‌افزار فرآیند اجرای یک برنامه کاربردی با هدف پیدا کردن اشکالات و متعاقبا بهبود کیفیت آن است&#34;. تست نرم‌افزار به عنوان يك فرايند كليدی در تضمين كيفيت سيستم‌های نرم افزاری ايفاء نقش مي‌كند. در حال حاضر تست به عنوان يك صنعت در حوزه نرم‌افزار محسوب مي‌شود.در سال‌های اخير آمارهای شگفت آوری از سوی موسسه (NIST(National Institute of Standards and Technologyدرباره شكست سيستم‌های نرم افزاری ارائه شده است. در كشور ايالات متحده، اين شكستها ساليانه حدود 59.5 ميليارد دلار به اقتصاد اين كشور صدمه می‌زند. طبق بررسي‌های انجام شده با بكارگيری تست در تمام فازهای توليد نرم افزار 22.2 ميليارد دلار از اين خسارت را می‌توان كاهش داد. طبق آمارهای ارائه شده از سوی موسسه (IDC(International Data Corporation، چهل درصد از بودجه نرم افزارها صرف تست آن می‌گردد.در کشور ما نیز، با توجه به رشد فناوری اطلاعات و ارتباطات در طی چند سال گذشته و توليد بومی بسياری از نرم افزارهای مورد نیاز، نياز به اين فرايند بيش از پيش احساس شده و در صورت عدم توجه به آن، كاهش كيفيت سيستم‌های ارائه شده، عدم رضايت مشتری و در نهايت از دست دادن بازار را به همراه خواهد داشت.1.ریسک نرم افزارامروزه بسیاری از کارها در زندگی شخصی، صنعت، امور نظامی و غیره به نرم افزارها سپرده شده است. گاهی یک اشتباه کوچک نرم‌افزاری می‌تواند سبب خسارات جبران ناپذیری شود. برای تشریح موضوع به چند نمونه اشاره می‌گردد.در سال 1994 خطای محاسبات اعشاری در پردازنده پنتیوم شرکت اینتل، علاوه بر کاهش فروش آن، اعتبار شرکت را تا مدتی خدشه‌دار کرد.در سال 1998 مدارگرد مریخ به دلیل یک خطا در محاسبات نرم افزاری، در جهت اشتباهی وارد اتمسفر مریخ شده و منفجر گردید. 327 میلیون دلار صرف این پروژه شده بود.واحد ممیز شناور اندازه‌گیری شتاب افقی این ماهواره بر بود. 7 میلیارد دلار و 10 سال زمان برای ساخت این ماهواره بر هزینه شده بود. همچنین باری که این ماهواره بر حمل می‌کرد، 500 میلیون دلار ارزش داشت.تنها 26% از پروژه های نرم افزاری دنیا با موفقیت اجرا می‌شوند. معیار های موفقیت پروژه عبارتند‌از:اتمام به موقعبا بودجه تعیین شدهبا تمام قابلیت‌ها و عملکردهای مورد نظربدون خطا (با خطای جزئی)بسیاری از پروژه‌های تولید نرم افزار با شکست مواجه می‌شوند، هزینه بالایی صرف پروژه‌های شکست خورده می‌گردد.در آمریکا، بیش از 81 میلیارد دلار صرف پروژه‌های شکست خورده می‌شود.در انگلیس، بیش از 33 میلیارد دلار صرف پروژه‌های شکست خورده می‌شود.2.شیوه های تضمین کیفیت نرم افزاربرای تضمین کیفیت نرم افزار با توجه به شرایط، نوع و کاربرد آن از روش‌های مختلفی استفاده می‌شود. در یک تقسیم بندی کلی می توان شیوه‌های تضمین کیفیت نرم افزار را به سه دسته تقسیم بندی نمود.1. روش‌های پیشگری از خطا از طریق حذف ریشه خطاآموزشبازبینی در ابتدای چرخه حیات (Inspection)2. روش‌های کاهش خطا از طریق تشخیص دلیل خطاتستبازبینی (در انتهای چرخه حیات)3. روش‌های حبس خطا از طریق موضعی کردن خطاتحمل خطا (fault tolerance)3.تعریف کیفیت نرم افزارکیفیت نرم افزار موضوعی است که مورد توجه تمامی تولید کنندگان و مصرف کنندگان سامانه‌های نرم افزاری است. کیفیت نرم افزار از دیدگاه‌های مختلفی قابل بررسی است.1. کیفیت از دیدگاه کاربربرآورده شدن نیازهای کاربری2. کیفیت از دیدگاه ساختتبعیت از استاندارد3. کیفیت از دیدگاه محصول</description><category>مهندس پیشگان آزمون افزار یاس</category><author>مهندس پیشگان آزمون افزار یاس</author><pubDate>Sun, 27 Dec 2020 11:51:03 +0330</pubDate></item></channel></rss>