سطوح تست نرم‌افزار

تست نرم‌افزار عموما در چهار سطح مختلف صورت می‌گیرد که این چهار مرحله به صورت ترتیبی انجام می‌پذیرند و عبارتند از :

۱٫ تست واحد (Unit testing)

۲٫ تست یکپارچگی (Integration Testing)

۳٫ تست سیستم (System Testing)

۴٫ تست پذیرش (Acceptance Testing)

تست واحد (Unit testing) :

یکی از مراحل اولیه تست یک سیستم، تست واحد می‌باشد که هریک از واحدها یا ماژول‌های تشکیل دهنده یک برنامه را به‌طور مستقل مورد تست قرار می‌دهد. تست واحد نوعی تست جعبه سفید است که برنامه‌نویس ساختار داخلی برنامه را می‌شناسد و به دنبال آنست که بداند انجام تست چه تاثیری روی عملکرد داخلی آن می‌گذارد. معمولا تست واحد، توسط خود برنامه‌نویسان و به موازات توسعه سیستم انجام می‌شود. این تست بر روی ارزیابی بخش‌های کوچک عملیاتی تمرکز دارد.

هدف از انجام این تست اطمینان از درستی عملکرد واحدهایی است که پس از توسعه در قسمت‌های مختلف سیستم مورد استفاده قرار خواهند گرفت. به عبارتی می‌توان گفت که آیا واحد مورد نظر به تنهایی کاری را که باید انجام بدهد، می‌دهد یا خیر؟

تست سطح یکپارچگی (Integration Testing):

تست واحد را برای هر کدام از واحدها به صورت جداگانه انجام دادید و از صحت عملکرد آنها مطمئن شدید. همه واحدها به صورت منفرد به طور صحیح وظایف خود را انجام می‌دهند، آیا نیازی به تست این‌که وقتی واحدها کنار هم قرار گرفتند و ارتباط برقرار کردند وظایفشان را به شکل صحیح انجام می‌دهند، هست یا نیست؟ بنابراین ما نیاز داریم تا مطمئن شویم که آیا واحدها در کنار هم کار می‌کنند، به درستی فراخوانی می‌شوند و داده‌های درستی را در زمان مناسبی از طریق واسط‌های آنها عبور می‌دهند.

تست یکپارچگی (مجتمع سازی) مهمترین سطح از تست است که روی تعامل بین اجزا، ماژول‌ها و اشیایی که با هم کار می‌کنند، تمرکز دارد. تست یکپارچگی در واقع سطحی از تست است که اطمینان می‌دهد بخش‌های مختلف سیستم به درستی باهم تعامل دارند و داده‌ها و اطلاعات بین آنها درست پاس می‌شوند.

هدف از تست یکپارچگی سیستم آن است که مطمئن شویم اجزای مختلف سیستم در کنار یکدیگر به‌خوبی کار می‌کنند و تعاملات، ارتباطات و رد و بدل کردن داده‌ها در بین ماژول‌های مختلف سیستم به‌درستی انجام می‌شود و در نتیجه کل سیستم عملکرد صحیحی دارد.

تست سیستم (System Testing):

تست یکپارچگی را برای نرم‌افزار مورد نظر انجام دادید و مطمئن شدید که تمام قطعات در کنارهم می‌توانند قرار گیرند و بدون هیچ مشکلی وظایفشان را انجام دهند. قطعات در کنارهم مجتمع شده اند اما نرم‌افزار خود جزئی از یک سیستم است و نیاز است که با عناصر دیگر این سیستم مانند سخت افزارها ارتباط برقرار کند و با آنها مجتمع شود. پس نیاز داریم تا مطمئن شویم که سیستم به عنوان یک واحد به طور کامل عمل خواهد کرد و نیازمندی‌های سیستم را برآورده می‌کند. این سطح از تست آخرین سطحی است که توسط توسعه‌دهندگان صورت می‌گیرد تا قبل از تحویل نرم‌افزار به کاربرنهایی برای تست از عملکرد آن مطمئن شویم.

بنابراین تست سیستمی نشان‌ می‌دهد که سیستم کلیه نیازمندی‌های مد نظر را برآورده کرده است. یک تست سیستمی زمانی‌ مفید خواهد بود که خصوصیات و مشخصات سطح سیستم برای آن وجود داشته باشد. برای این منظور استفاده از مستندات تهیه شده برای اهداف سیستم لازم و مفید به نظر می‌رسد.

تست پذیرش (Acceptance Testing):

نرم‌افزار به‌طور کامل توسط توسعه‌دهندگان در تمام سطوح تست، با موفقیت تست شد، اما آیا نرم‌افزار واقعا به‌طور کامل کار می‌کند؟ آیا تمام نیازهای فعلی کاربر نهایی را برآورده می‌کند؟ بنابراین تستی نیاز داریم که توسط کاربران نهایی، مشتریان و نه توسعه‌دهندگان صورت می‌گیرد و هدف آن است که کاربر مشخص کند عملیاتی که برنامه انجام می‌دهد نیازمندی‌های آن‌ها را برآورده می‌کند یا خیر.

تست پذیرش دارای انواع مختلفی است که می‌توان به موارد زیر اشاره کرد:

۱- تست آلفا: تست آلفا در سایت توسعه دهنده نرم‌افزار و در اغلب موارد توسط کارمندان داخلی و در بعضی از موارد توسط مشتری انجام می‌گیرد.

۲- تست بتا: تست بتا در سایت مشتریان و توسط مشتریان که از سیستم استفاده خواهند کرد صورت می‌گیرد و مشکلات مشاهده شده را به توسعه‌دهندگان گزارش می‌کنند.

تست پذیرش دو هدف اصلی دارد. اول اطمینان از اینکه سیستم پیاده‌سازی شده نیازمندی‌های نرم‌افزاری را برآورده می‌کند. دوم اطمینان از اینکه سیستم نرم‌افزاری می‌تواند در دنیای واقعی، که از افراد متعدد با توانایی‌‌ها، ویژگی‌ها، شرایط و فشارکاری و زمانی مختلفی تشکیل شده است، به خوبی عمل کند.