در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

روشهای تست پروگرام قسمت چهارم

سلام به همه اهالی ITPRO !

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

2.3 White Box Testing


شکل 3: حالت کلی تست جعبه سفید

[15]

این روش تست با نگاهی دقیق به نرم افزار نوعی تست را ایجاد کرده است که بر مبناء شرطها و حلقه های داخلی کدهای نرم افزار میباشد. به White Box Testing تست ساختاری نرم افزار و یا تست شیشه ای نرم افزار(Glass Box Testing) نیز میگویند. تست جعبه سفید شامل ایجاد تست هایی است که بعضی از استانداردهای پوشش کد را برآورده میکنند. یعنی کدهای برنامه را کامل مورد بررسی قرار میدهد برای مثال تست کننده میتواند تست هایی را طراحی کند که باعث شود همه عبارات برنامه حداقل یک بار اجرا شوند. این تست به تیم نرم افزاری و تست کننده اجازه میدهد که قسمتهایی که از سیستم را ارزیابی کنند که کمتر تست شده اند و اطمینان حاصل شود که نقاط عملکرد خیلی مهم تست شده اند . روش تست جعبه سفید به صورت مستیم ارتباط میگیرد به داخل نرم افزار یعنی با کدها و چگونگی پیاده سازی آنها و همچنان هدف هایی که برنامه نویس در ذهن خود داشته است که این نرم افزار یا بخش خاصی از آن به هدف مشخص برسد. بنابراین تست جعبه سفید کسانی میتوانند انجام بدهند که در زمینه برنامه نویسی و کمپیوتر ساینس متخصص باشند. این نوع تست به این دلیل که افراد متخصص را برای تست نیاز دارد دارای هزینه های زیاد و همچنان مدت زمان زیادی است.


2.3.1 مزایای تست جعبه سفید


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

2.3.2 معایب تست جعبه سفید


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

White Box Testing دارای سه روش مهم است که عبارت اند از:

  1. تست مسیر مبنا(Basis Path Testing)
  2. تست شرطی (Condition / Branch Testing)
  3. تست حلقه ها ( Loop Testing)

  4. 2.3.3 Basis Path Testing


تست مسیر مبنا یکی از روشهای تست جعبه سفید است، که برای بار اول توسط "تام مک کلیپ" پیشنهاد شد. هدف این روش این است که تمام مسیر های منطقی (logic) را بررسی کنیم . این مسیر های منطقی توسط این گراف ها قابل شناسایی هست independent path, flow graph, cyclomatic complexity, graph matrix, link weight .با شناسایی این مسیرها و بازبینی آنها میتوان مسیرهای که ورودی ها در آن رفت و آمد میکند را بررسی کرد و اگر در این ارتباط ها کدام مشکلی وجود داشته باشد به راحتی قابل شناسایی و حل میباشد.


2.3.3.1 گراف جریان


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

شکل 4: حالت های مختلف گراف جریان

هر دایره نشان دهنده یک یا چند PDL بدون انشعاب یا دستورات برنامه مبنا می باشد. به مثال زیر توجه کنید:

شکل 5: جریان یک عملیه در نرم افزار

 شکل 6:  گراف جریان مثال شکل 6

در شکل 6 یک داده ورودی به نرم افزار دادیم که این داده ورودی میتواند در مسیری که خودش بخواهد حرکت کند .مسیرهای زیادی برای حل مشکل دارد که هر کدام از این مسیرها همانطور که در شکل 7 دیده میشود دارای زمان بندی و ناحیه فعالیت جداگانه میباشد. در شکل 7 به هر کدام از دایره ها گروه گفته میشود گروه همان عملیه ای است که توسط یک متد یا کلاس انجام میشود. یال ها نشان دهنده مدت زمان انتقال از یک کارکرد به کارکرد دیگر است . ناحیه هم نشان دهنده مسیر ورودی ها میباشد.

شکل 7 منطق ترکیبی

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


2.3.3.2 پیچیدگی دورانی


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

  • مسیر اول : 1 , 11
  • مسیر دوم : 1 , 2 , 3 , 6 , 7 , 9 , 10 , 1 , 11
  • مسیر سوم : 1 , 2 , 3 , 6 , 8 , 9 , 10 , 1 , 11
  • مسیر چهارم :1 , 2 , 3 , 4 , 5, 10 , 1, 11

این مسیرها نشان دهنده این است که داده ها میتوانند مسیرهای مختلفی را دنبال کنند. یعنی ورودی ها بسته به شرایطی که از طرف متد برایش تعیین میشود و یا مقدار و نوع خودش مسیرش را تعیین میکند.پیچیدگی دورانی به یکی از سه شکل زیر محاسبه میشود:

  1. تعداد نواحی گراف جریان متناظر با پیچیدگی دورانی میباشد.
  2. پیچیدگی دورانی ، V(G) برای گراف جریان ، G ، به این صورت تعریف میشود: V(G) =E-N+2 که E تعداد یال های گراف جریان ، و N تعداد گره های گراف جریان میباشد.
  3. دورانی ، V(G) برای گراف جریان ، G ، به این صورت نیز تعریف میشود: V (G) = P+1 که P تعداد گزاره های موجود در گراف جریان G می باشد. [10]

2.3.4 Condition / Branch Testing


در این تست مسیرهای مختلفی که برای یک ورودی داده میشود تست میشود که تست آن بر مبنا true و false میباشد. در این تست همه حالت های ممکنه آن مورد بازبینی قرار میگیرد یعنی مسیرهای درست و اشتباه هر دویشان مورد بررسی قرار میگیرد.به عنوان مثال در برنامه زیر تمام گزاره های شرطی را در جدول 1 قرار میدهیم و ابزارهای تست را مشخص میکنیم.

Int fat (int a , int b . int c , int d , int e)

{

Float e;

If (a==0)

{

Return 0;

}

Int x=0;

If ((a==b)or(c==d)and(a<2))

{

X=1;

}

E=1/x;

}

Return e;

}

جدول 2: گزاره های شرطی

توصیه میشود که ورودی ها را تا جای ممکن مقدارهای ساده و مشابه به هم انتخاب کنید تا محاسبات سادتر باشد. در جدول 2 مشاهده میشود که سه حالت خطای Division by zero کشف میشود که باید در برنامه تصحیح شود. این خطاها باعث از بین رفتن نرم افزار میشود.

قانون پارتو: %80 خطاهاي کشف نشده در 20 % کد است

نوشته: سید علی دانیال ارتباط مستقیم

منبع:ITPRO.IR

#تست_جعبه_سیاه_(block_box) #تست_whitebox_نرم_افزار #تست_جعبه_سفید_(white_box) #تست_blackbox_نرم_افزار #روشهای_تست_نرم_افزار #تست #owasp_چیست #اصول_تست_نرم_افزار #تست_جعبه_خاکستری #چگونه_نرم_افزارها_را_تست_کنیم
عنوان
1 مروری مقدماتی بر مونوگراف روشهای تست نرم افزار رایگان
2 روشهای تست پروگرام قسمت اول رایگان
3 روشهای تست پروگرام قسمت دوم رایگان
4 روشهای تست پروگرام قسمت سوم رایگان
5 روشهای تست پروگرام قسمت چهارم رایگان
زمان و قیمت کل 0″ 0
2 نظر
محمد نصیری

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

سید علی دانیال

تشکر !

از محصلین خودم بارها از این وب سایت استفاده کرده اند. سایت شما تقریبا بدون جوره هست و این یک کار بسیار بزرگ است!

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....