شرکت های نرم افزاری بزرگ مانند گوگل، با وجود کمبود اولویت در نرم افزار خود، موفق هستند، اما کمپانی های کوچک و راه اندازی این لوکس را ندارند.
مشتریان انتظار دارند که محصولات آنچه را که در صفحه فروش یا در اسناد ادعا می کنند، انجام دهند. با این که بسیاری از گزینه ها وجود دارد، آنها دو بار در مورد پریدن کشتی فکر نمی کنند اگر محصول زمان و پول خود را خراب کند. بنابراین، قبل از انتشار، نرم افزار تحت آزمون های دقیق قرار می گیرد تا:
تفاوت های بین مفهوم اصلی و خروجی نهایی را برجسته کنید
بررسی نرمافزارها را به نحوی طراحی میکند که طراحان آن را طراحی کنند
محصول نهایی را تأیید کنید - محصول باید با نیازهای مشتری مطابقت داشته باشد
ویژگی ها و کیفیت را ارزیابی کنید
تست به دنبال یک طرح دقیق است. این بهینه سازی استفاده از منابع ارزشمند - مهارت ها، زمان و پول را به همراه می آورد، در حالی که ذینفعان را با اطلاعات ضروری برای جلوگیری از محصول آماده می کند. هدف این است که از طریق یک برنامه مطمئن تضمین کیفیت، یک تجربه خوب برای کاربر نهایی را تسهیل کند. مدیران QA با داشتن امتیازات بسیار بالا، برخی از صاحبنظران برتر در فناوری هستند. آزمایش معمولا از این مراحل پیروی می کند:
تجزیه و تحلیل مورد نیاز که در آن مدیران طرح یک طرح استراتژی مناسب را در محل قرار می دهند.
تست ها شروع می شود و نتایج تجزیه و تحلیل می شوند.
هر گونه نقص اصلاح می شود و نرم افزار از طریق تست رگرسیون انجام می شود - یک سیستم برای بررسی برنامه هنوز هم بعد از اصلاحات کار می کند.
گزارش بسته شدن آزمون سپس تمام پروسه و نتایج را شرح می دهد.
روش های تست نرم افزار
در اینجا روش های مختلفی برای قضاوت در مورد رفتار و عملکرد محصول استفاده می شود.
آزمایش جعبه سیاه و جعبه سفید دو روش اساسی است.
- تست جعبه سیاه - همچنین به عنوان تابع مبتنی بر ویژگی یا کاربردی نامیده می شود، این روش بر روی خروجی تمرکز دارد. آزمایشکنندگان با ساز و کارهای داخلی نگران نیستند. آنها فقط نرم افزار را بررسی می کنند آنچه را که قرار است انجام دهد. دانستن برنامه نویسی لازم نیست، و آزمایشکنندگان در سطح رابط کاربر کار می کنند.
- تست جعبه سفید - این روش از دانش برنامه نویسی به عنوان بخشی از روش تست استفاده می کند. هنگامی که یک محصول نتواند، تسترها به علت ضرورت پیدا کردن علت کافی به کد نیاز دارند. توسعه دهندگان نرم افزار این کار خود را انجام می دهند، زیرا تعیین می کنند که چگونه محصول باید کار کند. تست ساختارهای مبتنی بر شیشه و جعبه شیشه ای دیگر نام این روش است.
- آزمون استاتیک - تسترها کد و اسناد نرم افزار را بررسی می کنند اما برنامه را اجرا نمی کنند. آزمایشات استاتیک در مراحل تأیید در اوایل توسعه محصول آغاز می شود.
- تست دینامیک - نرم افزار با ورودی های مختلف اجرا می شود و تست ها خروجی ها را با رفتار مورد انتظار با این روش مقایسه می کنند.
- تست GUI - این تست ویژگی های GUI - قالب بندی متن، جعبه متن، دکمه ها، لیست ها، طرح، رنگ، فونت، اندازه فونت، و غیره. تست GUI وقت گیر است و شرکت های سوم شخص اغلب به جای توسعه دهندگان کار می کنند.
سطوح تست
اینها برای شناسایی مناطق ضعف و همپوشانی در هر مرحله از چرخه عمر توسعه نرم افزار ضروری هستند.
- تست واحد - توسعه دهندگان بخش های اصلی کد را مانند کلاس ها، رابط ها، و توابع / روش ها را آزمایش می کنند. آنها می دانند کد چگونه باید پاسخ دهند و می توانند تنظیمات را بسته به خروجی ایجاد کنند.
- تست کامپوننت - نامهای دیگر ماژول یا تست برنامه هستند. این مشابه آزمایش واحد است اما دارای سطح بالایی از ادغام است. ماژول های نرم افزاری برای نقص ها مورد آزمایش قرار می گیرند تا عملکرد فردی خود را بررسی کنند.
- تست یکپارچه سازی - این خطاها هنگامی که ماژول ها یکپارچه می شوند شناسایی می شوند. تست های یکپارچه سازی مختلف از پایین به بالا، بالا به پایین و تابع افزایشی است.
- تست سیستم - اجزای یک پروژه با استفاده از این روش به طور کلی در محیط های مختلف آزمایش می شوند. آن را زیر جعبه جعبه سیاه قرار می گیرد و یکی از آزمایش های نهایی در فرآیند است. این تعیین می کند که آیا سیستم به عنوان نیاز به کسب و کار و نیازهای کاربر عمل می کند.
- تست آلفا - کارکنان داخلی تست نرم افزار را در سایت توسعه دهنده در یک محیط شبیه سازی شده یا واقعی انجام دهید. پس از آن، توسعه دهندگان اشکالات و مسائل دیگر را تصحیح می کنند.
- آزمایش بتا - شناخته شده به عنوان آزمایش میدان نیز، مشتری محصول را در سایت خود در شرایط واقعی آزمایش می کند. مشتری می تواند یک گروه از کاربران نهایی را برای تست نرم افزار از طریق نسخه های پیشین یا بتا ارائه دهد. بازخورد در مورد بهبود های احتمالی سپس به توسعه دهنده ارسال می شود.
- تست پذیرش - همچنین تحت محدوده آزمایش جعبه سیاه، مشتری نرم افزار را آزمایش می کند تا بداند آیا برنامه ساز برنامه را به مشخصات مورد نظر ساخته است یا خیر.
انواع تست
این آزمایشات نرم افزاری بر روی اهداف خاص تمرکز می کنند.
- تست نصب - مهندس تست نرم افزاری و مدیر پیکربندی این تست را برای اطمینان از اینکه کاربر نهایی می تواند برنامه را نصب و اجرا کند، انجام می دهد. این موارد شامل مواردی مانند پرونده نصب، مکان نصب و امتیازات اداری است.
- تست توسعه - این طیف وسیعی از استراتژی های هماهنگ برای شناسایی و پیشگیری از نقص ها را اجرا می کند. این شامل تجزیه و تحلیل کد های استاتیک، بررسی کد همکار، ردیابی و تجزیه و تحلیل معیارها می باشد. هدف این است که کاهش خطرات و صرفه جویی در هزینه ها.
- تست قابلیت استفاده - تجربه کاربر با توجه به این آزمون در معرض نور قرار می گیرد. این اندازه گیری چگونگی طراحی GUI و سهولت استفاده از آن را اندازه گیری می کند. تست بررسی دقت و کارآیی توابع و پاسخ های احساسی افراد آزمایشی است.
- Testing Sanity - این نشان می دهد که آیا نرم افزار ارزش زمان و هزینه برای ادامه آزمایش های بیشتر است. معایب بسیار زیادی و تست های تهاجمی تر از این نیست.
- تست دود - تست دود نشان دهنده خرابی های اساسی است که به اندازه کافی جدی برای جلوگیری از انتشار هستند. هنگامی که این کار بر روی ساخت جدید انجام می شود، آن را تست تأیید ساخت می نامند.
- تست رگرسیون - هنگامی که سیستم مورد اصلاح قرار می گیرد، تست رگرسیون نظارت بر رفتار غیر منتظره ای است. این نشان می دهد که اثرات نامطلوب بر ماژول ها و یا اجزاء.
- تست مخرب - تسترها ورودی های غیر معمول را وارد می کنند و توانایی نرم افزار برای مدیریت ورودی های غیر منتظره را تشخیص می دهند. این نشان می دهد که توسعه دهندگان چگونه برنامه را در مدیریت خطا قوی است.
- تست بازیابی - هنگامی که سخت افزار یا سایر کارکردهای شکست خورده، این آزمون نشان می دهد که چگونه نرم افزار می تواند بازیابی و ادامه عمل.
- تست خودکار - این تابع را به صورت دستی اجرا می کند. با استفاده از نرم افزار خاص برای اجرای آزمون ها و ارائه داده ها در مورد نتایج واقعی و انتظار می رود.
- تست سازگاری - نرم افزار باید در محاسبات مختلف اجرا شود، بنابراین این بررسی سازگاری با سیستم های مختلف است. برای مثال، آیا این نرم افزار با سیستم عامل های مختلف و مرورگرهای وب کار می کند؟
- تست عملکرد - این تست عمیق است که عملکرد نرم افزار را در سناریوهای مختلف بررسی می کند. اطلاعات مربوط به پاسخگویی، ثبات، تخصیص منابع و سرعت جمع آوری می شود. علاوه بر این، زیر تست هایی مانند حجم، ظرفیت، و آزمایش سنبله در این فرایند نقش مهمی ایفا می کند.
- تست امنیتی - این توانایی نرم افزار برای محافظت از امنیت کاربران را اندازه گیری می کند. این به این معنی است که توافقنامه مجوز، احراز هویت، محرمانه بودن، یکپارچگی، در دسترس بودن و عدم رد شدن است.
- تست قابلیت دسترسی - این همانند آزمایش قابلیت استفاده نیست. این تعیین می کند که چه میزان کاربران از توانایی های متفاوت - یادگیری و معلولیت های جسمی شامل، می توانند از نرم افزار استفاده کنند.
- تست بین المللی سازی و محلی سازی - نتایج نشان می دهد که چگونه نرم افزار می تواند با زبان های مختلف و خواسته های منطقه سازگار شود. این شامل اضافه کردن اجزای مکان خاص و ترجمه متن است.
تست نرم افزار یک بخش ضروری برای آوردن یک محصول به بازار است. و بدون تست، طیف گسترده ای از نرم افزار موجود وجود ندارد. تبدیل شدن به یک تستر نرم افزار گواهی شده از طریق سازمان هایی مانند BCS، موسسه ممتاز IT، ISTQB® (انجمن بین المللی تست های نرم افزاری) و ASQ (قبلا انجمن آمریکایی برای کیفیت).