در فرآیند تست نرمافزار، مجموعهای از مراحل و فعالیتهای مختلف تست تعریف میشوند که هر یک از آنها در یک سطح خاص بر روی تست، تمرکز دارد. تست نرمافزار عموما در چهار سطح مختلف صورت میگیرد که این چهار مرحله به صورت ترتیبی انجام میپذیرند و عبارتند از :
تست جعبه خاکستری: ترکیب تست جعبه سفید و سیاه
تست جعبه خاکستری (Gray Box Testing Strategy) روشی برای تست نرمافزار است که با آگاهی کم از فعالیتهای داخلی برنامه انجام میگیرد. این تست ترکیبی از تست جعبه سفید و سیاه است.همانطور که میدانید تستر در استراتژی جعبه سیاه از ساختار داخلی برنامه اطلاعی نداشته و در مقابل در استراتژی جعبه سفید آگاهی کامل ازساختار داخلی دارد. اما در استراتژی جعبه خاکستری تستر تا حدودی از ساختار داخلی برنامه آگاه بوده که این شامل دسترسی به ساختاردادههای داخلی و الگوریتمها در جهت طراحی Test Case ها است. علت نامگذاری این روش آن است که تستر برنامه را مانند جعبهای نیمه شفاف و خاکستری رنگ تصور میکند که تا حدودی ساختار داخلی برنامه را از بیرون میبیند.
تست جعبه سیاه: وقتیکه از ساختار داخلی بی خبرید!
شما نرمافزاری را تهیه کرده و بر روی سیستم خود نصب میکنید، در اکثر موارد بعد از نصب برنامه فقط یک نسخه اجرایی آن را در سیستم خود خواهید داشت، هیچ دسترسی به سورس کد و منابع دیگر برنامه ندارید. سیستم نرمافزاری موجود برای شما مانند یک جعبه سیاه است که شما نمیتوانید درون آن را مشاهده کنید و به آن دسترسی داشته باشید.
استراتژی جعبه سیاه (Black Box Testing Strategy) دقیقاً از این دیدگاه برنامه را مورد تست قرار میدهد، یعنی با این پیش فرض که شما هیچ اطلاعاتی از کد و طراحی داخلی برنامه ندارید. حالا هیچ اطلاعاتی از کد و طراحی برنامه در اختیار ما نیست، پس چگونه میتوان به صحت عملکرد برنامه پی برد؟ بیشتر بخوانید
تست جعبه سفید: چگونه شروع کنیم؟
هدف از تست نرمافزار، ارزیابی آن در رسیدن به اهداف از قبل تعیین شده و همچنین مشخص کردن هر گونه خطا در عملکرد نرمافزار است. در طی مراحل تست ابتدا مشخص میکنند که آیا عناصر نرمافزاری وظایف خود را به درستی انجام میدهند و خروجیهای مطلوب را ایجاد میکنند؟ برای این منظور، میتوان با استفاده از تست جعبه سفید کد برنامه را بررسی کرد تا اینکه عامل خطا در داخل کد برنامه مشخص شود. بیشتر بخوانید
تست جعبه سفید: بررسی منطق درونی نرمافزار
در شرکتی که فعالیت میکنید، آیا تست نرمافزار را در نظر گرفتهاند؟ اگر به صورت مستقل در حال نوشتن برنامهای هستید، تست را در نظر گرفتهاید؟ شرکتها چه زمانی را برای تست برنامه ریزی میکنند؟ در پایان پروژهها؟ در محیط عملیاتی مشتری؟ یا ابتدای کار؟
پاسخ به سوالات بالا در حوزه اصول و استراتژی تست نرمافزار میباشد. اصول تست را در پست قبل بیان کردهایم ودر این بخش به استراتژی تست میپردازیم.
تست از همان ابتدای پروژه شروع میشود. بدین ترتیب که از فاز تحلیل، استراتژی تست تعیین میشود. بر اساس این استراتژی برنامههای تست (Test plan) اولیه طراحی شده و انواع تست مشخص میشود. سپس تست آغاز شده و تا هنگامیکه برنامه در محیط مشتری استقرار یابد، ادامه پیدا میکند. بنابراین تست در همه مراحل توسعه نرمافزار، همراه شما خواهد بود. بیشتر بخوانید
اصول تست نرمافزار- قسمت سوم
کیفیت هدف اصلی تمامی افراد، شرکتها و به صورت کلی سازمانهایی است که در جهت تولید و توسعه نرمافزار قدم میگذارند. در واقع کیفیت نرمافزار یک اصل رقابتی در زمینه تولید یک محصول است، اینکه چگونه یک محصول با کیفیتتر تولید کنیم؟ یکی از شاخههای اصلی و تاثیر گذار درکیفیت، تست نرمافزار است.
به بخش سوم و آخر این اصول رسیدیم در بخش اول و دوم تعدادی از این اصول را نام بردیم و پنج اصل آخر باقی ماند که عبارتند از: بیشتر بخوانید
اصول تست نرمافزار- قسمت دوم
تست نرمافزار یکی از فازهای اصلی و گران در چرخه حیات نرمافزار محسوب میشود. رعایت اصول تست باعث کاهش هزینهها میگردد. در پست قبل بخشی از این اصول را گفتیم و ادامه این اصول عبارتند از:
۶) انجام تست توسط شخص ثالث بیطرف: برای موثر بودن بایستی تست توسط شخص ثالث بیطرف انجام شود. منظور از موثربودن این است که خطاها را با احتمال بیشتری پیدا کنیم. به دلایلی که در بخشهای بعدی ذکر میکنیم، مهندس نرمافزاری که سیستم را برنامه نویسی کرده است، بهترین کسی نیست که باید همه تستها را انجام دهد. بنابراین برنامه نویس بایستی از تستهای مختلف برنامه خود اجتناب کند. بیشتر بخوانید
اصول تست نرمافزار- قسمت اول
طراحی نرم افزار بدون رعایت اصول مهندسی نرم افزارهمانند ساخت خانه بدون نقشه استاندارد و مهندسی شده است! متاسفانه در بسیاری از شرکتهای تولید کننده نرم افزار جهت تولید محصولات نرم افزاری اصول مهندسی را رعایت نمیکنند ویا تعدادی از مراحل مخصوصا مرحله تست را از چرخه تولید نرم افزار خارج میکنند. این امر باعث کاهش قیمت تولیدی نرم افزار میشود اما هزینه پشتیبانی و نگهداری آن را چندین برابر میکند. چراکه بسیاری از ایرادهای برنامه در مرحله تست برطرف نمیشوند. بیشتر بخوانید
برای چه تست کنیم؟
همانطور که در بخش اول گفتیم تست نرم افزار شامل فرآیند اجرای یک برنامه با هدف یافتن باگهای نرم افزاری است، اما محدود به آن نیست.
یک نکته مهم این است که تست نرم افزار، باید از نقطه نظرات مختلفی در تضمین کیفیت نرم افزارلحاظ شود، که با همه حوزههای فرآیند تجاری همراه باشد نه فقط حوزههای تست!
شکست نرم افزار از طریق فرآیندهای زیر رخ میدهد: بیشتر بخوانید
مقدمه ای بر تست نرم افزار
مفاهیم تست
برای اینکه تست قدرتمند و جامعی داشته باشیم نیازمند فراگیری مفاهیم تست هستیم. در پستهای اول بر روی مفاهیم تست که شامل تعاریف، سطوح، استراتژی ها و… تمرکز کرده و سپس به پیاده سازی تست و ابزارهای مربوطه میپردازیم.
تست نرمافزار چیست؟
سازمانها یا شرکتهایی که نرم افزارها را توسعه میدهند، محصولی به نام نرم افزار تولید میکنند. ولی چه عامل یا عواملی باعث میشوند که یک نرم افزار از نرم افزار مشابه دیگر متمایز و برجسته شود؟ عوامل متعددی را میتوان نام برد که باعث این برتری و تمایز شود اما یکی از این عوامل میتواند کیفیت محصول نهایی باشد که به بازار عرضه خواهد شد. اما برای رسیدن به این نقطه تمایز و برتری باید چگونه عمل کرد و اندیشید؟ یک پاسخ به این سوال میتواند تست نرم افزار و نحوه انجام آن باشد.