تحلیل وردیف بندی مراحل وعوامل تست نرم افزار
* یکی از مراحل مهم تست نرم افزار گذشت زمان است.
* دو دیدگاه که تست نرم افزار میتواند صورت بگیرد:
الف- دیدگاه تصدیق(verification) درست بودن فعالیت
ب- دیدگاه اعتبار (validation) درست بودن محصول و نتایج
1- اهمیت تست نرم افزار: تست نرم افزار بدلیل گذشتن از یک مرحله بحرانی وحساس برای کسب اطمینان وافزایش کیفیت وجلوگیری از هزینه های خرابی نرم افزار دارای اهمیت است.
هزینه تست معمولاً بین 30 تا 40 درصد کل هزینه مراحل تهیه نرم افزار است اما در بعضی جاها مانند کنترل ومانیتور کردن رآکتورهای هسته ای 3 تا 5 برابر هزینه مراحل تولید است.
2- اصول تست نرم افزار : اصول تست پیش زمینه ای برای تست است .طراحی حالت مبتنی بر مجموعه تکنیک تولید وایجاد حالات تست کلیه اهداف تست را میپوشاند.
3- اهداف تست نرم افزار: در تست اهداف زیادی دنبال میشود از جمله: )الف)تست بعنوان فرآیند اجرای برنامه برای یافتن خطاهای موجود (ب) پیدا کردن خطاهایی که تاکنون مشاهده نشده وهیچ عملی برای برطرف کردن آنها انجام نشده از موارد تست خوب است (ج) تست خوب تمام خطاها را یافته واصلاح کند وهیچ خطایی نماند.
نکته: نتایج بدست آمده نشان دهنده میزان اعتبار وکیفیت نرم افزار است
نکته: تست هیچ گاه نشان دهنده جنبه های غایب اما مورد نیاز سیستم نیست وفقط خطاها را نشان میدهد.
4- فرآیند تست نرم افزار: یعنی مراحل انجام تست نرم افزار که آنرا نمیتوان در سیستمهای بزرگ بطور یکجا انجام داد وبه قسمتهای زیر تقسیم میگردد.
1-4- تست واحد : در این قسمت قطعات بطور مجزا تست میشوند تا از درست بودن انها اطمینان حاصل گردد.
2-4- تست ماژول : هر ماژول شامل مجموعه ای از زیربرنامه ها وتوابع است ،خود ماژول بطور مستقل تست میشود تا کارآیی آن بررسی شود.
3-4- تست زیرسیستم : مجموعه ای از ماژولها که تشکیل دهنده زیرسیستم هستند تست میشوند، و برای کشف خطاهای رابط است.
4-4- تست سیستم : برای یافتن خطاهای بین زیرسیستمها وقطعات انجام میگیرد، وبررسی برآورده شدن نیازهای عملیاتی وغیر عملیاتی .
5-4- تست پذیرش(تست آلفا(α)) : آخرین مرحله تست قبل از تحویل ،خریدار داده هایی تهیه میکند وبه سیستم میدهد و از آن نتیجه میخواهد،در واقع آیا سیستم تهیه شده میتواند نیازهای واقعی کاربر را برآورده کند یا خیر؟
6-4- تست بعد از تحویل(تست بتا(β)) : سیستم به تعدادی مشتری داده میشود تا بعد از کار ضعفهای آنرا برای اصلاح بیان نمایند و این مرحله مجدداً انجام میگیرد تا یک سیستم بدون خطا بدست بیایید، تست بتا نوعی تست پذیرش است اما نسبت به آلفا به واقعیت نزدیکتر است.
5- برنامه ریزی وطرح نقشه تست : برنامه ریزی بیشتر روی تنظیم استانداردی برای فرآیند تست ونقشه حاوی احتمالات زیادی برای تست است وفقط شامل مستندات مدیریتی نیست ، اطلاعات را برای گروه تهیه کننده سخت افزار ونرم افزار برای تیم تست کننده فراهم میکند. چون تیم برنامه نویس از تهدیدهای مختلف تولیدات خود از نظر خرابی میترسند آگاهانه یا غیر آگاهانه تست هایی انتخاب میشوند که نواقص سیستم مشخص نشوند به همین دلیل باید سیستم به تعدادی خریدار کنترل کننده جهت حاصل شدن اطمینان لازم واگذار میشود و البته برای اطمینان کامل باید مجدداً توسط افراد ناشناس تست گردد.
6- استراتژی تست : استراتژی های مختلفی وجود دارد و هر استراتژی نتیجه خود را دارد به همین دلیل در سیستمهای بزرگ از ترکیب چند استراتژی عملیات تست انجام میگیرد .چند نمونه از آنها :
1-6- تست بالا به پایین : در این روش عمل تست از زیرسیستم شروع شده وسپس ماژول تست میشود،چون در این روش تست از همان مراحل اولیه شروع میشود ممکن است خطاهای موجود در همان مراحل اولیه فرآیند تست کشف شوند، که معمولاً این خطاها ساختاری هستند وبرطرف کردن آنها هزینه کمتری را صرف میکند،یک سیستم آماده کار ومحدود فراهم میگردد که باعث تقویت افراد و امکان سنجی سیستم اثبات میشود ولی عیب آن این است که چون بعد ازتست هر مرحله stub كه شبيه سازی را انجام ميدهد بايد فراهم شود و در جاهایی که برنامه از پیچیدگی خاصی برخوردار است تولید stub ها کار مشکلی میگردد.
2-6- تست پایین به بالادرست برعکس شیوه تست بالا به پایین است.
3-6- تست زنجیره ای : این شیوه تست بدلیل وجود وابستگیهای زمانی دقیق دربرخی سیستمها(بلادرنگ) مشکل است،چون هر فرآیندی در زمانی خاص در یک شرایط خاص قرار دارد وممکن است در یک زمان خاص دچار بروز خرابی در سیستم شود،در تست زنجیره ای هر فرآیندی بطور مستقل ومجزا تست میشود،هر واقعه خارجی راه خود را از طریق فرآیند سیستم زنجیر میکند سپس تست زنجیره ای هر زنجیره پردازش را شناسائی واجرا مینماید ومعایب آن این است که بدلیل وجود ترکیبهای مختلف ورودی وخروجی، ممکن است این تست امکان پذیر نباشد.
4-6- تست فشار : برای تست سیستمهایی که برای پردازش میزان بار خالصی طراحی شده اند، این سیستمها تحمل سرویس دهی به یک میزان بار دارند. دو عمل دراین تست انجام میشود:(الف)رفتار خرابی سیستم تست شود (ب) وارد کردن فشار به سیستم. تست فشار معمولاً در سیستمهای توزیعی که بر مبنای شبکه ای از پردازشگرها هستند بکار میرود.
7- تست ساختاری یا تست جعبه سفید (تست جعبه شفاف) : درست بودن مراحل ساخت نرم افزار بررسی میشود و استفاده از این تست این امکان را به مهندس نرم افزار میدهد که :
(الف) کلیه مسیرهای داخلی که حداقل یکبار آزمایش میشوند را تولید کند
( ب ) کلیه دستورات شرطی را در هر دو حالت true وfalse بررسی وآزمایش کند
( ج ) کلیه حلقه های موجود در برنامه را یکبار اجرا کند
( د ) مورد آزمایش قرار دادن ساختمان داده های داخلی برای بررسی صحت اعتبار آنها
8- تست مسیر پایه : یک تکنیک از تست جعبه سفید است که این قابلیت را به طراح حالات تست میدهد که بتواند میزان پیچیدگی منطقی طراحی رویه ای را تعیین کند واز این میزان در تعریف مجموعه مسیرهای اجرائی استفاده کند، که مجموعه پایه ضمانتی برای اجرای حداقل یکبار هر دستورمیباشد وحالات تست طراحی شده آنرا تعیین میکند.
1- 8- نمایش گراف جریان
2- 8- پیچیدگی حلقوی
3- 8- اجرای حالات تست
4- 8- گراف ماتریس
9- تست ساختار کنترل : تست مسیر پایه خود یکی از روشهای تست ساختار کتنرل میباشد، این روشها موجب افزایش کیفیت تست جعبه سفید میشود که تعدادی از آنها در ذیل میباشند.
1-9- تست شرطی یا تست حالت
2-9- تست جریان داده
3-9- تست حلقه
1-3-9- حلقه های ساده
2-3-9- حلقه های تودرتو
3-3-9- حلقه های متصل
4-3-9- حلقه های نامنظم
10- تست تابعی یا تست جعبه سیاه : براساس مطالعه ورودیهای یک قطعه خروجی های مربوط به آن مشخص میشود.مشخصات قطعه در حال تست برای تعیین موارد تست مورد استفاده قرار میگیرد،به این قطعه جعبه سیاه میگویند.
1-10- روشهای تست براساس گراف
1-1-10- مدل جریان تراکنش
2-1-10- مدل حالت معین
3-1-10- مدل جریان داده ها
4-1-10- مدل زمانی
2-10- افراز هم ارزی
3-10- تحلیل مقادیر سرحدی یا مرزی
4-10- تست تطبیق یا قیاسی
11- تست محیط ،معماری وکاربردهای خاص وتخصصی
1-11- تست واسطه های گرافیکی
1-1-11- پنجره ها
2-1-11- فهرستهای گزینش عمومی وعملیات ماوس
3-1-11- داده های ورودی
2-11- تست معماری (سرویس گیرنده / سرویس دهنده) : مطالعات اخیر نشان دهنده افزایش هزینه و زمان این گونه تست ها میباشد.
3-11- تست مستندات وامکانات کمکی : (برنامه+مستندات=نرم افزار)در تست نرم افزار باید مستندات نرم افزار نیز تحت آزمون تست قرار گیرند،که تست مستندات در دو فاز انجام پذیر است (1)مستندات جهت وضوح مدیریت مورد تست قرار میگیرند (2)تست حیات،در کنار استفاده از برنامه واقعی از مستندات استفاده میشود.
4-11- تست سیستمهای بلادرنگ : بدلیل وابسته بودن به زمان وغیر همزمانی بسیاری از کابردهای سیستمهای بلادرنگ طراح حالات تست علاوه بر تستهای جعبه سیاه وجعبه سفید ،باید پردازش رویدادها (وقفه ای) ، زمان بندی داده ها و موازی بودن فرآیندهایی که داده ها را پردازش میکنند نیز مدنظر قرار گیرد. بعضی داده ها در بسیاری حالات نتیجه درست ارائه میدهند ولی ممکن است در وضعیتی خاص نتیجه درستی حاصل نگردد ومنجر به بروز خطا شود. روشهای جامعی برای طراحی حالات تست در این گونه سیستمها وجود ندارد ولی استراتژی چهار مرحله ای زیر پیشنهاد میگردد:
1-4-11- تست وظیفه :تست استقلال وظایف از یکدیگر، (طراحی واجرا تست جعبه سفیدوجعبه سیاه) خطاهای موجود در منطق وعملیات وظیفه را تشخیص میدهد ولی قادر نیست خطاهای زمانی ورفتاری را تشخیص بدهد.
2-4-11- تست رفتاری :رفتار نرم افزار جهت شناختن خطاهای نرم افزاری بررسی میشود.
3-4-11- تست درون وظیفه ای : برای یافتن خطاهای موجود در اندازه محیط ذخیره سازی داده ها وظایفی که از طریق صف،پیغام،ذخیره داده با هم ارتباط دارند تست میشوند .
4-4-11- تست سیستم : تلاش برای شناسایی خطاهای واسطه سخت افزار/نرم افزار .تست سیستم مدیریت رویدادهای منطقی بدلیل اینکه در سیستمهای بلادرنگ وقفه ها پردازش میشوند ضروری میباشد.
*******************************************************************************************
منابع :
1- مهندسی نرم افزار انتشارات نشر اتحاد
2- مبانی مهندسی نرم افزار انتشارات آیلار
3- مهندسی نرم افزار (روگراس پرسمن) انتشارات دانش نگار