اصول تست نرم‌افزار

کیفیت هدف اصلی تمامی افراد، شرکت‌ها و به صورت کلی سازمان‌هایی است که در جهت تولید و توسعه نرم‌افزار قدم می‌گذارند. در واقع کیفیت نرم‌افزار یک اصل رقابتی در زمینه تولید یک محصول است، این‌که چگونه یک محصول با کیفیت‌تر تولید کنیم؟ یکی از شاخه‌های اصلی و تاثیرگذار درکیفیت، تست نرم‌افزار است.در فرآیند تست و ارزیابی نرم‌افزار، تست های مختلفیتعریف می شوند که هر یک از آنها در مرحله خاصی استفاده می شوند. تست نرم‌افزار عموما در چهار سطح اصلی صورت می‌گیرد که این چهار مرحله به ترتیب انجام می شوند و شاملموارد زیر است:تست واحد (Unit testing) :یکی از مراحل اولیه و اصلی تست یک سیستم، تست واحد می‌باشد که هریک از واحدها یا ماژول‌های تشکیل دهنده یکبرنامه را به‌طور مستقل مورد تست قرار می‌دهد. تست واحد نوعیتست جعبه سفید است که برنامه‌نویس ساختار داخلی برنامه را می‌شناسد و به دنبال آن‌ است که بداند انجام تست چه تاثیری روی عملکرد داخلی آن می‌گذارد. معمولا تست واحد، توسط خود برنامه‌نویسان و به موازات توسعه سیستم انجام می‌شود. این تست بر روی ارزیابی بخش‌های کوچک عملیاتی تمرکز دارد.برای انجام این تست باید برنامه نویس استانداردهایی را رعایت نماید که متدهای نوشته شده توسط وی به تنهایی و بدون وابستگی خاصی قابل انجام باشد. به طور مثال در بدنه متد خود از کنترلی مقدار نگرفته باشد و همه مقادیر مورد نیاز به صورت پارامتریک به متد مورد نظر ارسال شده باشد.تست سطح یکپارچگی (Integration Testing):تست واحد را برای هر کدام از واحدها به صورت جداگانه انجام دادیم و از صحت عملکرد آنها مطمئن شدیم. همه واحدها به تنهایی به طور صحیح وظایف خود را انجام می‌دهند، آیا نیازاست که درستی عملکرد واحد ها در زمانی که کنار هم قرار میگیرند نیز تست شود؟ ما نیاز داریم تا مطمئن شویم که آیا واحدها در کنار هم کار می‌کنند، به درستی فراخوانیمی‌شوند و داده‌های درستی را در زمان مناسبی از طریقواسط‌های آنها عبور می‌دهند.هدف از تست یکپارچگی سیستم آن است که مطمئن شویماجزای مختلف سیستم در کنار یکدیگر به‌خوبی کار می‌کنند و تعاملات، ارتباطات و رد و بدل کردن داده‌ها در بین ماژول‌هایمختلف سیستم به‌درستی انجام می‌شود و در نتیجه کل سیستم عملکرد صحیحی دارد.تست سیستم (System Testing):تست یکپارچگی را برای نرم‌افزار مورد نظر انجام دادیم و مطمئن شدیم که تمام قطعات در کنارهم می‌توانند قرار گیرند و بدون هیچ مشکلی وظایفشان را انجام دهند. در اینجا نرم افزار طراحی شده به تنهایی درست عمل می کند و بخش هایمختلف می توانند کنار یکدیگر بدون خطا فعالیت نمایند. نرم‌افزار خود جزئی از یک سیستم بزرگتر است و نیاز است که با عناصر دیگر این سیستم مانند سخت افزارها ارتباط برقرار کند و با آنها یکپارچه شود. پس نیاز داریم تا مطمئن شویم که سیستم به عنوان یک واحد به طور کامل عمل خواهد کرد و نیازمندی‌های سیستم را برآورده می‌کند. این سطح از تست آخرین سطحی است که توسط توسعه‌دهندگان انجام میشود تا قبل از تحویل نرم‌افزار به کاربرنهایی برای تست از عملکرد آن مطمئن شوند.تست پذیرش (Acceptance Testing):نرم‌افزار به‌طور کامل توسط توسعه‌دهندگان در تمام سطوح تست، با موفقیت تست شد، اما آیا نرم‌افزار واقعا به‌طور کامل کار می‌کند؟ آیا تمام نیازهای فعلی کاربر نهایی را برآورده می‌کند؟بنابراین تستی نیاز داریم که توسط کاربران نهایی، مشتریانو نه توسعه‌دهندگان صورت می‌گیرد و هدف آن است که کاربر مشخص کند عملیاتی که برنامه انجام می‌دهد نیازمندی‌هایآن‌ها را برآورده می‌کند یا خیر.تست پذیرش دارای انواع مختلفی است که می‌توان به موارد زیراشاره کرد:۱-تست آلفا: تست آلفا در سایت توسعه دهنده نرم‌افزار و در اغلب موارد توسط کارمندان داخلی و در بعضی از موارد توسط مشتری انجام می‌گیرد.۲- تست بتا: تست بتا در سایت مشتریان و توسط مشتریان که از سیستم استفاده خواهند کرد صورت می‌گیرد و مشکلات مشاهده شده را به توسعه‌دهندگانگزارش می‌کنند.تست پذیرش دو هدف اصلی دارد. اول اطمینان از اینکهسیستم پیاده‌سازی شده نیازمندی‌های نرم‌افزاری را برآورده می‌کند. دوم اطمینان از اینکه سیستم نرم‌افزاری می‌تواند در دنیای واقعی، که از افراد متعدد با توانایی‌‌ها، ویژگی‌ها،شرایط و فشارکاری و زمانی مختلفی تشکیل شده است، به خوبی عمل کند.گردآورنده:زهره نبی زادهدانشگاه آزاد اسلامی،کلاس اصول طراحی نرم افزاراستاد:دکتر مریم حاجی اسمعیلی. دکترای علوم کامپیوتر از دانشگاه کینگستون لندن‏Dr.Maryam Hajiesmaeili‏PhD of computer science from Kingston university of London‏https://ir.linkedin.com/in/dr-maryam-hajiesmaeili-90930743