STLC & QA TESTING – انجمن DEV

Q1)مدل های SDLC:
- مدل آبشار.
- مدل V شکل.
- نمونه اولیه.
- مدل مارپیچ.
- مدل افزایشی تکراری.
- مدل بیگ بنگ. Q2) STLC چیست؟ STLC مخفف عبارت Software Testing Life Cycle است. STLC مجموعه ای از فعالیت های مختلف است که توسط تیم آزمایش برای اطمینان از کیفیت نرم افزار یا محصول انجام می شود. STLC بخشی جدایی ناپذیر از SDLC است. اما STLC فقط با مراحل آزمایش سروکار دارد. مراحل STLC”. اولین مرحله از چرخه عمر تست نرم افزار است. در این مرحله تیم تضمین کیفیت الزاماتی مانند آنچه که باید آزمایش شود را درک می کند. اگر چیزی گم شده یا قابل درک نیست، تیم تضمین کیفیت با ذینفعان ملاقات می کند تا دانش دقیق نیازمندی ها را بهتر درک کند. 2) برنامه ریزی تست: برنامه ریزی تست کارآمدترین مرحله از چرخه عمر تست نرم افزار است که در آن تمام برنامه های تست تعریف می شوند. در این مرحله مدیر آزمایش، تیم تلاش و هزینه تخمین زده شده برای کار تست را محاسبه می کند. این مرحله پس از تکمیل مرحله جمع آوری نیازها شروع می شود. 3) توسعه مورد آزمایشی: مرحله توسعه آزمایشی پس از اتمام مرحله برنامه ریزی آزمایشی آغاز می شود. در این مرحله تیم آزمایش موارد آزمایش دقیق را یادداشت می کند. تیم آزمایش همچنین داده های مورد نیاز آزمون را برای آزمایش آماده می کند. هنگامی که موارد تست آماده می شوند، توسط تیم تضمین کیفیت بررسی می شوند.
4) راه اندازی محیط تست:
راه اندازی محیط آزمایشی یک بخش حیاتی از STLC است. اساساً محیط تست شرایطی را که نرم افزار روی آن تست می شود، تعیین می کند. این یک فعالیت مستقل است و می تواند همراه با توسعه آزمایشی شروع شود. در این فرآیند، تیم آزمایش درگیر نیست. یا توسعه دهنده یا مشتری محیط آزمایش را ایجاد می کنند
5) اجرای آزمون:
پس از توسعه تست و راه اندازی محیط تست، مرحله اجرای تست شروع می شود. در این مرحله تیم تست شروع به اجرای موارد تست بر اساس موارد تست آماده شده در مرحله قبل می کند
6) بسته شدن تست:
بسته شدن تست مرحله نهایی چرخه حیات تست نرم افزار (STLC) است که در آن تمام فعالیت های مربوط به تست تکمیل و مستند می شود. هدف اصلی مرحله بسته شدن تست، اطمینان از تکمیل تمام فعالیت های مربوط به تست و آماده بودن نرم افزار برای انتشار است.
Q3) فهرست عوامل خطر بالقوه و توضیحات آنها که ممکن است شامل شود:
-
ریسک عملکرد و مقیاس پذیری:
این خطر به توانایی برنامه برای مدیریت کارآمد حجم بالایی از کاربران همزمان یا مجموعه داده های بزرگ مربوط می شود. این شامل نگرانی در مورد زمان پاسخ، تعادل بار، و عملکرد پایگاه داده است. -
خطر امنیتی:
خطرات امنیتی شامل آسیبپذیریهایی است که میتواند منجر به نقض دادهها، دسترسی غیرمجاز یا سایر مسائل امنیتی شود. این شامل نگرانی در مورد احراز هویت، مجوز و رمزگذاری داده ها می شود. -
خطر سازگاری:
خطرات سازگاری شامل توانایی برنامه برای عملکرد صحیح در مرورگرها، دستگاه ها و سیستم عامل های مختلف است. اطمینان حاصل کنید که تست سازگاری ترکیبات مختلف را پوشش می دهد. -
ریسک یکپارچه سازی:
این خطر مربوط به ادغام برنامه وب با سایر سیستم ها یا خدمات شخص ثالث است. ممکن است مشکلات مربوط به تبادل داده، سازگاری API یا تضاد نسخه ایجاد شود. -
خطر از دست دادن داده و بازیابی:
خطر از دست دادن اطلاعات به دلیل خرابی سیستم یا خطاهای غیرمنتظره وجود دارد. برنامه ای برای پشتیبان گیری از داده ها، بازیابی، و پاسخ به فاجعه باید وجود داشته باشد. -
خطر استفاده:
خطرات قابلیت استفاده شامل کاربر پسند بودن برنامه است. مسائلی مانند ناوبری ضعیف، دستورالعملهای نامشخص، یا رابطهای کاربری نامشهود میتوانند بر رضایت کاربر تأثیر منفی بگذارند. -
ریسک رگرسیون:
تغییرات یا بهروزرسانیهای برنامه ممکن است عوارض جانبی ناخواسته یا پسرفتهایی را در عملکرد موجود ایجاد کند. برای کاهش این خطر، آزمایش رگرسیون باید جامع باشد. -
خطر شبکه و اتصال:
مسائل مربوط به تأخیر شبکه، قطع شدن اتصالات یا شرایط شبکه غیرقابل اعتماد می تواند بر عملکرد برنامه و تجربه کاربری تأثیر بگذارد. -
انطباق و ریسک نظارتی:
اگر برنامه باید به مقررات خاص صنعت یا استانداردهای انطباق (به عنوان مثال، GDPR، HIPAA) پایبند باشد، عدم انطباق می تواند منجر به عواقب قانونی و جریمه شود. -
ریسک منابع و بودجه:
– توضیح: خطر تجاوز از منابع یا بودجه اختصاص داده شده برای آزمایش وجود دارد. این شامل پرسنل، ابزار و زیرساخت می شود.
Q4)
تضمین کیفیت (QA):
پیشگیری در طبیعت: QA یک رویکرد پیشگیرانه با هدف جلوگیری از نقص و حصول اطمینان از طراحی و اجرای صحیح فرآیندها از ابتدا است. این بر بهبود فرآیندها و روش ها متمرکز است.
فرآیند گرا: QA شامل تعریف و اجرای استانداردها، دستورالعمل ها و بهترین شیوه ها برای کل فرآیند توسعه یا تولید است. این شامل ایجاد مستندات فرآیند، آموزش، و ابتکارات بهبود فرآیند است.
بهبود مستمر: تیمهای QA روی بهینهسازی فرآیندها کار میکنند تا احتمال بروز نقص یا مشکلات در وهله اول را کاهش دهند. آنها ممکن است ممیزی و بازبینی فرآیند را برای شناسایی زمینه های بهبود انجام دهند.
تمرکز بلندمدت: QA به ثبات و ثبات طولانی مدت فرآیند مربوط می شود که به حفظ کیفیت محصول در طول زمان کمک می کند.
- کنترل کیفیت (QC): کارآگاه در طبیعت: QC یک رویکرد واکنشی است که در درجه اول به شناسایی نقص یا مسائل در محصول یا خروجی نهایی مربوط می شود. این شامل بازرسی و آزمایش محصول نهایی برای اطمینان از مطابقت با استانداردهای کیفیت از پیش تعریف شده است.
محصول گرا: فعالیت های QC بر روی نتیجه نهایی مانند محصولات، خدمات یا محصولات قابل تحویل متمرکز است. این می تواند شامل آزمایش، بازرسی و بررسی خروجی نهایی باشد.
بازخورد فوری: QC بازخورد فوری در مورد کیفیت محصول ارائه می دهد و به تصمیم گیری در مورد اینکه آیا استانداردهای کیفیت مورد نیاز را برآورده می کند یا نیاز به کار مجدد دارد کمک می کند.
تمرکز کوتاه مدت: QC با اطمینان از کیفیت قابل قبول خروجی مورد توجه است. لزوماً به دلایل اصلی نقص در فرآیند نمی پردازد.
Q5)
تفاوت های کلیدی بین تست دستی و اتوماسیون هستند
- فرآیند اجرا:
تست دستی: در تست دستی، آزمایشگرهای انسانی با برنامه کاربردی نرم افزار تعامل دارند، موارد آزمایش را دنبال می کنند و از ورودی های مختلف برای ارزیابی رفتار آن استفاده می کنند. آزمایشکنندهها اقداماتی مانند کلیک کردن روی دکمهها، وارد کردن دادهها و اعتبارسنجی نتایج را به صورت دستی انجام میدهند.
تست اتوماسیون: در تست اتوماسیون، از ابزارهای تست و اسکریپت ها برای اجرای خودکار موارد تست از پیش تعریف شده استفاده می شود. آزمایشکنندهها اسکریپتهایی را برای خودکارسازی سناریوهای آزمایشی تکراری و زمانبر مینویسند و ابزارهای تست این اسکریپتها را اجرا میکنند.
- سرعت و کارایی:
تست دستی: تست دستی می تواند زمان بر و کارآمدتر باشد، به خصوص برای تست های تکراری و رگرسیون. آزمایش کنندگان ممکن است زمان قابل توجهی را صرف اجرای دستی موارد تست کنند.
تست اتوماسیون: تست اتوماسیون برای موارد تست تکراری سریعتر و کارآمدتر است. هنگامی که اسکریپت های اتوماسیون ایجاد می شوند، می توان آنها را به سرعت و به طور مکرر اجرا کرد و امکان بازخورد سریع در مورد تغییرات برنامه را فراهم می کند.
3- قضاوت انسان:
تست دستی: آزمایش کنندگان دستی می توانند از خلاقیت و قضاوت خود برای شناسایی مسائل غیرمنتظره، مشکلات قابلیت استفاده و عیوب بصری استفاده کنند. آنها می توانند با تغییر سناریوهای آزمایش در پرواز سازگار شوند.
تست اتوماسیون: اتوماسیون سفت و سخت است و از اسکریپت های از پیش تعریف شده پیروی می کند. نمی تواند مسائلی را که به صراحت در اسکریپت ها برنامه ریزی نشده اند شناسایی کند. قضاوت و شهود انسانی بخشی از آزمایش خودکار نیست.
- تست اکتشافی:
تست دستی: آزمایشکنندگان دستی میتوانند آزمایشهای اکتشافی را برای کشف مسائل جدید یا بررسی سناریوهای پیچیدهای که خودکار کردن آنها دشوار است، انجام دهند. این به ویژه برای کشف مسائل مربوط به قابلیت استفاده و حاشیهای بسیار ارزشمند است.
تست اتوماسیون: اتوماسیون برای تست اکتشافی مناسب نیست، زیرا به موارد تست از پیش تعریف شده نیاز دارد. تست اکتشافی به خلاقیت و سازگاری آزمایشگر متکی است که اتوماسیون فاقد آن است.
- سرمایه گذاری اولیه:
تست دستی: آزمایش دستی معمولاً نیاز به سرمایه گذاری اولیه کمتری دارد زیرا شامل ایجاد اسکریپت های اتوماسیون و راه اندازی ابزارهای تست نمی شود. آزمایش کننده ها به دانش دامنه و مهارت های تست نیاز دارند.
تست اتوماسیون: تست اتوماسیون به سرمایه گذاری اولیه از نظر زمان و منابع برای توسعه و نگهداری اسکریپت ها و زیرساخت های اتوماسیون نیاز دارد. با این حال، می تواند مزایای طولانی مدت قابل توجهی از نظر تست رگرسیون و کارهای تکراری داشته باشد.
- نگهداری:
تست دستی: موارد تست به صورت دستی اجرا می شوند، بنابراین حداقل تلاش برای نگهداری وجود دارد. با تکامل برنامه یا تغییر نیازمندیها، آزمایشکنندگان باید موارد آزمایشی را بهروزرسانی کنند.
تست اتوماسیون: اسکریپت های خودکار نیاز به تعمیر و نگهداری منظم دارند تا با تغییرات در برنامه به روز نگه داشته شوند. تعمیر و نگهداری می تواند زمان بر باشد، به خصوص برای برنامه های پیچیده.