لینکهای قابل دسترسی

جمعه ۲ تیر ۱۳۹۶ ایران ۱۸:۳۸

ارزيابی و آزمايش نرم افزار به عنوان مرحله ای از توسعه برنامه های رايانه ای


امروزه تعداد اندکی دستگاه و وسيله باقی مانده است که با نرم افزار کنترل نمی شود يا شامل نرم افزار نيست. در حال حاضر نرم افزار برای تعداد زيادی از دستگاههای متقاضی استفاده می شود و عيب و نقص در نرم افزار باعث ضررهای جدی و حتی آسيب بدنی می شود.

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

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

برای سيستم های ايمنی مهم، همانند سيستم راهنمايی موشکها و کنترل ترافيک هوايی، که نقص در نرم افزار می تواند باعث خسارت جانی شود، کيفيت بالای نرم افزار برای موفقيت سيستم ضروری است. تقريبا تمامی بخش های نظام اقتصادی نيز وابستگی به نرم افزار و لزوم کوشش برای بالابردن کيفيت سيستم نرم افزاری را تشخيص داده اند.

سازمانهای رايانه ای روزبروز با مشکلاتی مانند پيچيدگی تکنولوژی، کاربردهايی که ممکن است برای استفاده عموم مشکل باشد، و فشار مداوم برای کسب موفقيت در زمان مناسب مواجه می شوند. برنامه نويسی و توسعه نرم افزار بطور غيرعادی پرهزينه است، و معمولا نگهداشت و تعميرنرم افزار گران تر از توسعه دادنش در مرحله اول تمام می شود.

يکی از راههايی که کيفيت نرم افزار را بهبود می بخشد ارزيابی و آزمايش کردن نرم افزارهای توسعه داده شده است.

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

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

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

افراد اطلاعات را به طرق مختلفی تفسير می کنند. منبع معتبر اطلاعاتی در نزد افراد معانی گوناگونی می يابد. همچنين تصميم گيری بر مبنای اطلاعات موجود عامل ديگری است که می تواند بين افراد متفاوت باشد.

اين عوامل مجهول باعث افزايش پيچيدگی شده و دشواری آزمايش نرم افزارها را چند برابر می کند.

XS
SM
MD
LG