تست نرمافزار یا آزمایش نرمافزار تحقیق برروی کیفیت یک محصول یا سرویس نرمافزاری و ارایه اطلاعات ناشی از آن به مشتریها است. این تحقیق جستجوی نرمافزار مزبور برای یافتن خطاها را نیز دربرمیگیرد ولی به آن محدود نمیشود.
تستها یک سری از سوال و جوابهایی هستند که نرمافزار را با آن امتحان میکنیم در حالی که از برنامه انتظار داریم با توجه به ورودیهایی که با استفاده از سوالات وارد میکنیم، جوابهای صحیحی را به عنوان خروجی به دست دهد.
آزمایش نرمافزار حیطه وسیعی از فعالیتهای مربوط به تولید برنامههای رایانهای را دربرمیگیرد که از آزمایش کردن کد برنامه توسط برنامهنویس گرفته تا نشان دادن عملکرد درست یک سیستم اطلاعاتی بزرگ به مشتری و ارزیابی نرمافزار در حین رانش یک شبکه مرکزی کاربردی را دربرمیگیرد.
آزمایش نرمافزار از وظایف توسعه دهندگان نرمافزار است و نه از وظایف تحویل گیرندگان آن.
میتوان قبل از نوشتن خود برنامه تستهای برنامه را انجام داد. به این روش en:Test Driven Development میگویند.
سازمانها یا شرکتهای که نرم افزارها را توسعه می دهند، محصولی به نام نرم افزار تولید می کنند. ولی چه عامل یا عوملی باعث می شوند که یک نرم افزار از نرم افزار مشابه دیگر متمایز و برجسته شود؟ عواملی متعددی را می توان نام برد که باعث این برتری و تمایز شود اما یکی از این عوامل می تواند کیفیت محصول نهایی باشد که به بازار عرضه خواهد شد. اما برای رسیدن به این نقطه تمایز و برتری باید چگونه عمل کرد و اندیشید؟ یگ پاسخ به این سوال می تواند تست نرم افزار و نحوه انجام آن باشد. تنها پارامتری که در اینجا به صورت گذرا به آن اشاره خواهیم کرد و در انتها به بررسی روش تست و آزمایش نرم افزار در XP خواهیم پرداخت. (هدف ما بررسی دقیق تست نرم افزار نمی باشد و فقط آشنایی با بعضی واژهها و کلمات کلیدی آن می باشد.)
تست فقط می تواند وجود خطاها را نشان دهد نه عدم وجود آنها را
من عاشق یک پارگراف از یک کتاب طراحی نرم افزار هستم که به طور خلاصه اینرا می گفت: "نرم افزار خوب نرم افزاری است که مشتری را خوشحال کند و زمانی مشتری خوشحال خواهد شد که تمام نیازمندیهای که در نظر دارد برآورده شود". پس ما به عنوان توسعه دهنده نرم افزار باید مطمئن شویم که مشتری خود را خوشحال خواهیم کرد، فرآیند و شیوه رسیدن به این اطمینان خاطر یعنی هدف تست نرم افزار. تست نرم افزار به طور رسمی جزی از بازبینی و اعتبارسنجی نرم افزار می باشد، که این دو واژه به صورت زیر تعریف و با هم مقایسه می شوند.
وارسی: "آیا محصول درستی را می سازیم؟"
اعتبارسنجی: "آیا محصول را به درستی می سازیم؟"
وارسی بررسی میکند که آیا نرم افزار از مشخصاتش پیروی میکند یا خیر. اعتبارسنجی باید تضمین کند که نرم افزار انتظارات مشتری را برآورده می سازد یا نه. توجه کنید که آنچه در مشخصات می آید ممکن است دقیقا خواستههای مشتری را برآورده نسازد.
استراتژی تست نرم افزار یک توصیف رسمی از این است که نرم افزار چگونه تست خواهد شد. هدف استراتژی تست تعریف همه مراحل برای فرآیند تست نرم افزار است که شامل برنامه ریزی آزمایش، طراحی ابزار آرمایش، اجرای آزمایش و جمع آوری و ارزیابی دادههای بدست آمده باشد.