SlideShare a Scribd company logo
1 of 67
Download to read offline
‫افغانستان‬ ‫اسالمی‬ ‫جمهوری‬
‫عالی‬ ‫تحصیالت‬ ‫وزارت‬
‫بلخ‬ ‫دانشگاه‬
‫ساینس‬ ‫کامپیوتر‬ ‫دانشکده‬
‫افزار‬ ‫نرم‬ ‫دیپارتمنت‬
Software Testing:
Comparison between white box testing and black box testing and traditional testing
methods
"‫"دانیال‬ ‫علی‬ ‫سید‬
‫آخر‬ ‫سمستر‬ ‫چهارم‬ ‫صنف‬
‫دیپارتمنت‬‫انجینری‬‫ا‬ ‫نرم‬‫فزار‬
‫بلخ‬ ‫دانشگاه‬
‫توسط‬ ‫شده‬ ‫ایجاد‬
‫استاد‬‫نثار‬‫احمد‬"‫"نوری‬
‫استادرهنما‬
‫دیپارتمنت‬‫سیستم‬‫اطالعاتی‬ ‫پایگاهای‬
‫بلخ‬ ‫دانشگاه‬
‫رهنما‬ ‫استاد‬
4102 ‫پاییز‬
i
APPROVAL
It is approved that ………….. S/o ………….. Enrollment no ………… has
successfully completed his final thesis/project as a partial fulfillment for his/her bachelor
degree in computer science from the said department.
Graduate Studies Committee
___________________________
Name
(Convener)
_______________ _______________
Name Name
(Supervisor) (Member)
______________ _______________
Name Name
(Member) (Member)
Department of software engineering
Balkh University
ii
‫فهرست‬
‫چک‬‫ی‬‫ده‬..........................................................................................................................................vii
‫نحوه‬‫نگارش‬‫مقاله‬............................................................................................................................ix
‫ب‬‫ی‬‫ان‬‫مسئله‬......................................................................................................................................ix
‫سوال‬‫مقاله‬.....................................................................................................................................ix
‫اهم‬‫ی‬‫ت‬‫و‬‫ضرورت‬‫ا‬‫ی‬‫ن‬‫مقاله‬................................................................................................................x
‫ا‬‫هداف‬‫مقاله‬.....................................................................................................................................x
‫فرض‬‫ی‬‫ات‬.........................................................................................................................................x
‫تعار‬‫ی‬‫ف‬‫مفهوم‬‫ی‬..............................................................................................................................xi
‫فصل‬‫اول‬.......................................................................................................................................1
‫فصل‬‫اول‬.......................................................................................................................................2
1.1‫ک‬‫ی‬‫ف‬‫ی‬‫ت‬‫نرم‬‫افزار‬‫چ‬‫ی‬‫ست‬(Software Quality)‫؟‬.............................................................................2
2.1‫تست‬‫نرم‬‫افزار‬‫چ‬‫ی‬‫ست؟‬...............................................................................................................2
2.1‫اهم‬‫ی‬‫ت‬‫تست‬‫نرم‬‫افزار‬.................................................................................................................3
2.1‫اصول‬‫تست‬..............................................................................................................................3
2.1‫اهداف‬‫تست‬‫نرم‬‫افزار‬.................................................................................................................3
2.1‫اشکال‬‫زدا‬‫یی‬‫نرم‬‫افزار‬...............................................................................................................4
2.1.2‫تفاوت‬‫تست‬‫نرم‬‫افزار‬‫با‬‫اشکال‬‫زدا‬‫یی‬‫نرم‬‫افز‬‫ار‬.........................................................................4
2.1‫چرخه‬‫تست‬‫نرم‬‫افزار‬.................................................................................................................5
2.1‫دسته‬‫بند‬‫ی‬‫تست‬‫ها‬.....................................................................................................................5
2.1‫اعتبار‬‫سن‬‫ج‬‫ی‬‫نرم‬‫افزار‬‫و‬‫بازب‬‫ی‬‫ن‬‫ی‬‫نرم‬‫افزار‬....................................................................................6
2.21‫تست‬‫نرم‬‫افزار‬‫در‬‫کدام‬‫مرحله‬‫فرآ‬‫ی‬‫ند‬‫ی‬‫ا‬‫چرخه‬‫توسعه‬‫نرم‬‫افزار‬‫قرار‬‫دارد؟‬...........................................6
2.22‫استانداردها‬‫ی‬‫تست‬‫نرم‬‫افزار‬......................................................................................................7
2.21‫خالصه‬‫فصل‬‫اول‬....................................................................................................................8
‫فصل‬‫دوم‬.......................................................................................................................................9
1.2‫تست‬‫نرم‬‫افزار‬........................................................................................................................11
1.1Black Box Testing.............................................................................................................11
1.1.2‫مزا‬‫ی‬‫ا‬‫ی‬‫ا‬‫ی‬‫ن‬‫روش‬..............................................................................................................11
1.1.1Equivalence partitioning(‫دسته‬‫بند‬‫ی‬‫مشابهات‬)................................................................11
1.1.1Boundary Value Analysis(‫تحل‬‫ی‬‫ل‬‫مقاد‬‫ی‬‫ر‬‫مرز‬‫ی‬)..............................................................13
1.1.1.2‫اعمال‬‫تحل‬‫ی‬‫ل‬‫مقاد‬‫ی‬‫ر‬‫مرز‬‫ی‬:...........................................................................................13
1.1.1Comparison Testing(‫تست‬‫مقا‬‫ی‬‫سه‬‫ا‬‫ی‬)..............................................................................15
iii
1.1White Box Testing.............................................................................................................16
1.1.2‫مزا‬‫ی‬‫ا‬‫ی‬‫تست‬‫جعبه‬‫سف‬‫ی‬‫د‬......................................................................................................16
1.1.1‫معا‬‫ی‬‫ب‬‫تست‬‫جعبه‬‫سف‬‫ی‬‫د‬.......................................................................................................17
1.1.1Basis Path Testing......................................................................................................17
1.1.1.2‫گراف‬‫جر‬‫ی‬‫ان‬.............................................................................................................17
1.1.1.1‫پ‬‫ی‬‫چ‬‫ی‬‫دگ‬‫ی‬‫دوران‬‫ی‬.........................................................................................................21
1.1.1Condition / Branch Testing.......................................................................................21
1.1.1Loop Testing...............................................................................................................23
1.1Differences Between Black Box Testing and White Box Testing...................................24
1.1‫خالصه‬‫فصل‬.........................................................................................................................25
‫فصل‬‫سوم‬....................................................................................................................................27
1.2Testing Levels..................................................................................................................27
1.1Unit Testing......................................................................................................................27
3.2.1‫تفاوت‬Unit Testing‫با‬Debugging................................................................................28
1.1Integration Testing............................................................................................................28
1.1.2‫مجتمع‬‫ساز‬‫ی‬(integrating testing)‫باال‬‫به‬‫پا‬‫یی‬‫ن‬..................................................................29
1.1.1‫مجتمع‬‫ساز‬‫ی‬(integrating testing)‫از‬‫پا‬‫یی‬‫ن‬‫به‬‫باال‬.............................................................29
1.1Regression Testing........................................................................................................31
1.1Acceptance testing.............................................................................................................31
1.1.2‫تست‬‫مح‬‫ی‬‫ط‬‫تول‬‫ی‬‫د‬(α-test)..................................................................................................31
1.1.1‫تست‬‫مح‬‫ی‬‫ط‬‫مصرف‬(β- test).............................................................................................31
1.1System Testing..................................................................................................................31
1.1‫تست‬‫اح‬‫ی‬‫ا‬Recovery...............................................................................................................31
1.1‫تست‬‫امن‬‫ی‬‫ت‬Security.............................................................................................................31
1.1‫تست‬‫فشار‬Stress..................................................................................................................31
1.21‫تست‬‫بار‬Load.....................................................................................................................31
1.22‫از‬‫نظر‬‫کارا‬‫یی‬Performance................................................................................................32
‫خالصه‬‫فصل‬................................................................................................................................32
‫فصل‬‫چهارم‬.................................................................................................................................35
1.2Other Testing....................................................................................................................35
1.1Gray Box Testing..............................................................................................................35
1.1.2‫مزا‬‫ی‬‫ا‬‫ی‬Gray Box Testing..............................................................................................36
1.1.1‫معا‬‫ی‬‫ب‬Gray Box Testing...............................................................................................36
iv
1.1Installing Testing...............................................................................................................36
1.1Smoke and sanity testing...................................................................................................37
1.1.2‫مز‬‫ی‬‫ت‬‫ها‬‫ی‬‫آزمون‬‫دود‬........................................................................................................38
1.1.1sanity testing...............................................................................................................38
1.1Test Driven Development.................................................................................................38
1.1.2‫مراحل‬‫کار‬‫ی‬TDD.........................................................................................................41
‫فصل‬‫پنجم‬....................................................................................................................................43
5.1‫ابزارها‬‫ی‬‫تست‬‫خود‬‫کار‬‫نرم‬‫افزار‬................................................................................................43
1.1xUnit..................................................................................................................................44
1.1EMMA..............................................................................................................................45
1.1iMacros..............................................................................................................................46
1.1HP LoadRunner................................................................................................................46
1.1HP WinRunner..................................................................................................................47
1.1Selenium............................................................................................................................47
1.1NUnit.................................................................................................................................48
‫نت‬‫ی‬‫جه‬‫گ‬‫ی‬‫ر‬‫ی‬..................................................................................................................................51
‫حرف‬‫آخر‬....................................................................................................................................51
‫کلمات‬‫کل‬‫ی‬‫د‬‫ی‬.................................................................................................................................52
‫منابع‬‫مأخذ‬....................................................................................................................................54
v
‫فهرت‬‫ها‬ ‫شکل‬
‫شکل‬2:‫مرحله‬‫اصل‬‫ی‬‫شروع‬‫تست‬‫نرم‬‫افزار‬..........................................................................................7
‫شکل‬1:‫حالت‬‫عموم‬‫ی‬Black Box...................................................................................................11
‫شکل‬1:‫تحل‬‫ی‬‫ل‬‫مرز‬‫ی‬......................................................................................................................14
‫شکل‬4:‫حالت‬‫کل‬‫ی‬‫تست‬‫جعبه‬‫سف‬‫ی‬‫د‬....................................................................................................16
‫شکل‬5:‫حالت‬‫ها‬‫ی‬‫مختلف‬‫گراف‬‫جر‬‫ی‬‫ان‬.............................................................................................18
‫شکل‬6:‫جر‬‫ی‬‫ان‬‫ی‬‫ک‬‫عمل‬‫ی‬‫ه‬‫در‬‫نرم‬‫افزار‬..............................................................................................18
‫شکل‬7:‫گراف‬‫جر‬‫ی‬‫ان‬‫مثال‬‫شکل‬1...................................................................................................19
‫شکل‬8‫م‬‫نطق‬‫ترک‬‫ی‬‫ب‬‫ی‬.....................................................................................................................19
‫شکل‬9:‫انواع‬‫حلقه‬‫ها‬.....................................................................................................................23
‫شکل‬11:‫مجتمع‬‫ساز‬‫ی‬‫از‬‫باال‬‫به‬‫پا‬‫یی‬‫ن‬...............................................................................................29
‫شکل‬11:‫مجتمع‬‫ساز‬‫ی‬‫از‬‫پا‬‫یی‬‫ن‬‫به‬‫باال‬..............................................................................................31
‫شکل‬12:Flowchart TDD..........................................................................................................39
‫شکل‬13:Flowchart TDD.........................................................................................................39
‫شکل‬14:‫نحوه‬‫استفاده‬‫از‬xUnit‫در‬‫پرو‬‫گرام‬Eclipse.........................................................................44
‫شکل‬15:‫بازخورد‬‫نرم‬‫افزار‬EMMA..............................................................................................45
‫شکل‬16:iMacros......................................................................................................................46
‫شکل‬17:HP LoadRunner.........................................................................................................46
‫شکل‬18:HP WinRunner...........................................................................................................47
‫شکل‬19:Selenium....................................................................................................................47
‫شکل‬21:NUnit.........................................................................................................................48
‫جدولها‬ ‫فهرست‬
‫جدول‬2‫تفاوت‬‫اشکال‬‫زدا‬‫یی‬‫و‬‫تست‬‫برنامه‬[8]........................................................................................5
‫جدول‬2:‫گزاره‬‫ها‬‫ی‬‫شرط‬‫ی‬.............................................................................................................22
‫جدول‬3:‫تفاوت‬‫ب‬‫ی‬‫ن‬‫انواع‬‫تست‬‫ها‬......................................................................................................32
vi
‫نامه‬ ‫سپاس‬
‫ع‬ ‫به‬ ‫کسی‬ ‫انسان‬ ‫زندگی‬ ‫از‬ ‫مرحله‬ ‫هر‬ ‫در‬‫ن‬‫وان‬‫پ‬‫شتیبان‬‫باعث‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫کننده‬ ‫حمایت‬ ‫و‬‫پیشرفت‬‫از‬ ‫هم‬ ‫بنده‬ .‫میشود‬
‫قاعده‬ ‫این‬‫مستثنی‬‫عنوان‬ ‫به‬ ‫کسی‬ ‫زندگیم‬ ‫از‬ ‫مرحله‬ ‫هر‬ ‫در‬ ‫و‬ ‫ام‬ ‫نبوده‬‫پشتیبان‬.‫است‬ ‫بوده‬
‫در‬‫مرحله‬‫خود‬ ‫خلیفه‬ ‫زمین‬ ‫روی‬ ‫بر‬ ‫را‬ ‫انسان‬ ‫و‬ ‫است‬ ‫هستی‬ ‫جهان‬ ‫خالق‬ ‫او‬ .‫کنم‬ ‫گذاری‬ ‫سپاس‬ ‫بزرگ‬ ‫خداوند‬ ‫از‬ ‫باید‬ ‫اول‬
‫دا‬ ‫قرار‬.‫ببریم‬ ‫پیش‬ ‫را‬ ‫خود‬ ‫زندگی‬ ‫که‬ ‫توانستیم‬ ‫او‬ ‫به‬ ‫توکل‬ ‫با‬ ‫و‬ ‫د‬‫از‬ ‫یکی‬ ‫به‬ ‫را‬ ‫من‬ ‫که‬ ‫دلیل‬ ‫این‬ ‫به‬ ‫گذارم‬ ‫سپاس‬ ‫را‬ ‫خداوند‬
‫خوبی‬ ‫بنده‬ ‫من‬ ‫که‬ ‫چند‬ ‫هر‬ .‫باشم‬ ‫جامعه‬ ‫این‬ ‫در‬ ‫کرده‬ ‫تحصیل‬ ‫فرد‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫که‬ ‫توانستم‬ ‫و‬ ‫رساند‬ ‫آرزوهایم‬ ‫بزرگترین‬
.‫ام‬ ‫نبوده‬ ‫او‬ ‫برای‬
‫خانوا‬ ‫از‬ ‫باید‬ ‫دوم‬ ‫مرحله‬ ‫در‬‫اند‬ ‫کرده‬ ‫همراهی‬ ‫همیشه‬ ، ‫داشتی‬ ‫چشم‬ ‫هیچ‬ ‫بدون‬ ‫خود‬ ‫دائمی‬ ‫های‬ ‫حمایت‬ ‫با‬ ‫مرا‬ ‫که‬ ‫خوبم‬ ‫ده‬
‫را‬ ‫زیادی‬ ‫های‬ ‫سختی‬ ‫که‬ ‫میبوسم‬ ‫دور‬ ‫راه‬ ‫همین‬ ‫از‬ ‫را‬ ‫مادرم‬ ‫دست‬ ‫آنها‬ ‫بین‬ ‫از‬ ‫و‬ ‫اند‬ ‫کرده‬ ‫فراهم‬ ‫مرا‬ ‫تحصیل‬ ‫زمینه‬ ‫و‬
.‫اند‬ ‫بوده‬ ‫من‬ ‫برای‬ ‫پدر‬ ‫مانند‬ ‫که‬ ‫خوبم‬ ‫برادران‬ ‫همچنان‬ .‫است‬ ‫کشیده‬ ‫من‬ ‫برای‬
‫تک‬ ‫دست‬ ‫جا‬ ‫همین‬ ‫از‬ ‫هستند‬ ‫زیاد‬ ‫اند‬ ‫رسانده‬ ‫مرحله‬ ‫این‬ ‫به‬ ‫را‬ ‫من‬ ‫که‬ ‫کسانی‬‫شان‬ ‫تک‬‫استاد‬ ‫از‬ ‫خصوص‬ ‫به‬ .‫میبوسم‬ ‫را‬
‫از‬ ‫بعد‬ ‫و‬ ‫داد‬ ‫نجات‬ ‫گمراهی‬ ‫از‬ ‫را‬ ‫من‬ ‫و‬ ‫آموخت‬ ‫من‬ ‫به‬ ‫را‬ ‫نوشتن‬ ‫و‬ ‫خواندن‬ ‫بار‬ ‫اولین‬ ‫که‬ ‫مکتبم‬ ‫اول‬ ‫صنف‬ ‫معلم‬ ‫کوکبی‬
‫و‬ ‫استادان‬ ‫تمام‬ ‫از‬ ‫آن‬‫معلمان‬‫وصف‬ ‫بی‬ ‫تالشهای‬ ‫با‬ ‫که‬‫صنف‬ ‫تا‬ ‫توانستم‬ ‫آنها‬21‫که‬ ‫کنم‬ ‫سپری‬ ‫را‬‫تعدادشان‬‫اما‬ ‫است‬ ‫زیاد‬
.‫میدارم‬ ‫عرض‬ ‫را‬ ‫خود‬ ‫احترام‬ ‫آنها‬ ‫به‬ ‫شان‬ ‫همه‬ ‫جا‬ ‫همین‬ ‫از‬
‫آمادگی‬ ‫دوره‬ ‫محترم‬ ‫استادان‬‫کنکور‬‫بدیل‬ ‫بی‬ ‫سعی‬ ‫با‬ ‫که‬‫آزمون‬ ‫در‬ ‫توانستم‬ ‫شان‬‫کنکور‬‫نیک‬ ‫نظر‬ ‫با‬ ‫و‬ ‫برسم‬ ‫موفقیت‬ ‫به‬
‫انتخاب‬ ‫اولین‬ ‫جزء‬ ‫را‬ ‫رشته‬ ‫این‬ ‫آنها‬‫های‬.‫بدهم‬ ‫قرار‬ ‫م‬
‫بوده‬ ‫من‬ ‫مشوق‬ ‫و‬ ‫حامی‬ ‫نیز‬ ‫بلخ‬ ‫دانشگاه‬ ‫ساینس‬ ‫کمپیوتر‬ ‫دانشکده‬ ‫گرامی‬ ‫نهایت‬ ‫استادان‬ ‫هم‬ ‫دانشگاه‬ ‫ساله‬ ‫چهار‬ ‫دوران‬ ‫در‬
‫را‬ ‫آنها‬ ‫های‬ ‫نیکی‬ ‫از‬ ‫ای‬ ‫زره‬ ‫بتوانم‬ ‫کاش‬ .‫میدانم‬ ‫آنها‬ ‫احسان‬ ‫مدیون‬ ‫را‬ ‫خودم‬ ‫حال‬ ‫و‬ ‫گرفتم‬ ‫یاد‬ ‫چیزها‬ ‫خیلی‬ ‫آنها‬ ‫از‬ .‫اند‬
.‫کنم‬ ‫جبران‬
‫هم‬ ‫از‬ ‫اخیر‬ ‫در‬‫آنها‬ ‫همه‬ ‫با‬ ‫من‬ ‫معاشرت‬ ‫آداب‬ ‫و‬ ‫فرهنگ‬ ‫اینکه‬ ‫با‬ .‫اند‬ ‫داده‬ ‫جا‬ ‫خود‬ ‫بین‬ ‫در‬ ‫را‬ ‫من‬ ‫که‬ ‫خوبم‬ ‫های‬ ‫صنفی‬ ‫ه‬
.‫اند‬ ‫بوده‬ ‫تحصیل‬ ‫سال‬ ‫چهار‬ ‫این‬ ‫در‬ ‫من‬ ‫اصلی‬ ‫مشوقین‬ ‫مانند‬ ‫به‬ ‫آنها‬ .‫کردند‬ ‫تحمل‬ ‫را‬ ‫من‬ ‫ولی‬ ‫داشت‬ ‫فرق‬
‫دانیال‬ ‫علی‬ ‫سید‬
‫پاییز‬2111
vii
"‫را‬ ‫مشتری‬ ‫که‬ ‫است‬ ‫افزاری‬ ‫نرم‬ ‫خوب‬ ‫افزار‬ ‫نرم‬‫در‬ ‫که‬ ‫نیازمندیهای‬ ‫تمام‬ ‫که‬ ‫شد‬ ‫خواهد‬ ‫خوشحال‬ ‫مشتری‬ ‫زمانی‬ ‫و‬ ‫کند‬ ‫خوشحال‬
‫شود‬ ‫برآورده‬ ‫دارد‬ ‫نظر‬"
‫چکیده‬
Programming is creative process done by programmers to instruct a computer on how to do.1
[1]
‫نویس‬ ‫برنامه‬‫ی‬‫بی‬ ‫باعث‬ ‫که‬ ‫است‬ ‫کمپیوتر‬ ‫های‬ ‫بخش‬ ‫مهمترین‬ ‫از‬ ‫یکی‬ ‫کمپیوتر‬‫عبارت‬ ‫به‬ . ‫است‬ ‫شده‬ ‫علم‬ ‫این‬ ‫رشد‬ ‫شترین‬
.‫نمیرسید‬ ‫حد‬ ‫این‬ ‫به‬ ‫و‬ ‫نمیکرد‬ ‫رشد‬ ‫حد‬ ‫این‬ ‫تا‬ ‫بود‬ ‫می‬ ‫نویسی‬ ‫برنامه‬ ‫بدون‬ ‫را‬ ‫علم‬ ‫این‬ ‫اگر‬ ‫که‬ ‫گفت‬ ‫میتوان‬ ‫دیگر‬‫برنامه‬
‫است‬ ‫رسیده‬ ‫آسانی‬ ‫به‬ ‫مختلف‬ ‫روشهای‬ ‫ایجاد‬ ‫با‬ ‫روز‬ ‫هر‬ ‫که‬ ‫است‬ ‫علم‬ ‫این‬ ‫های‬ ‫بخش‬ ‫ترین‬ ‫مشکل‬ ‫از‬ ‫یکی‬ ‫کمپیوتر‬ ‫نویسی‬
‫از‬ ‫یکی‬ .‫باعث‬ ‫که‬ ‫میباشد‬ ‫آن‬ ‫در‬ ‫خطاها‬ ‫یافتن‬ ‫نویسی‬ ‫برنامه‬ ‫فرد‬ ‫به‬ ‫منحصر‬ ‫نویسی‬ ‫برنامه‬ ‫های‬ ‫بخش‬‫پیشرفت‬‫روز‬
.‫است‬ ‫شده‬ ‫آن‬ ‫افزون‬
" ‫نام‬ ‫به‬ ‫بود‬ ‫انگلیس‬ ‫اهل‬ ‫خانم‬ ‫یک‬ ‫کرد‬ ‫نویسی‬ ‫برنامه‬ ‫به‬ ‫شروع‬ ‫که‬ ‫کسی‬ ‫اولین‬‫لووالس‬ ‫آدا‬"2
"‫بایج‬ ‫"چالز‬ ‫با‬ ‫که‬3
‫روی‬ ‫بر‬
‫نام‬ ‫به‬ ‫دستگاهی‬‫آنالیتیکی‬ ‫موتور‬‫میک‬ ‫کار‬‫سال‬ ‫از‬ ‫آنها‬ .‫ردند‬2111‫کردند‬ ‫آغاز‬ ‫را‬ ‫همکاری‬ ‫هم‬ ‫با‬.‫برنامه‬ ‫اولین‬ ‫عنوان‬ ‫به‬ ‫او‬
‫در‬ ‫او‬ ‫کار‬ .‫کرد‬ ‫نامگذاری‬ ‫او‬ ‫نام‬ ‫با‬ ‫را‬ ‫ساخت‬ ‫که‬ ‫برنامه‬ ‫اولین‬ ‫او‬ ‫افتخار‬ ‫به‬ ‫امریکا‬ ‫دفاع‬ ‫وزارت‬ ‫و‬ ‫است‬ ‫معروف‬ ‫جهان‬ ‫نویس‬
‫او‬ . ‫شد‬ ‫استفاده‬ ‫شد‬ ‫ساخته‬ ‫او‬ ‫از‬ ‫بعد‬ ‫قرن‬ ‫یک‬ ‫که‬ ‫الکترونیکی‬ ‫کمپیوتر‬ ‫اولین‬‫سن‬ ‫در‬73.‫درگذشت‬ ‫سرطان‬ ‫علت‬ ‫به‬ ‫سالگی‬[2]
‫بررسی‬ ‫مورد‬ ‫نویسی‬ ‫برنامه‬ ‫در‬ ‫خطاها‬ ‫یافتن‬ ‫های‬ ‫روش‬ ‫انواع‬ ‫که‬ ‫است‬ ‫شده‬ ‫آن‬ ‫بر‬ ‫سعی‬ ‫داریم‬ ‫رو‬ ‫پیش‬ ‫که‬ ‫تحقیقی‬ ‫این‬ ‫در‬
.‫برسد‬ ‫خود‬ ‫نهایی‬ ‫هدف‬ ‫به‬ ‫برنامه‬ ‫همان‬ ‫آنها‬ ‫یافتن‬ ‫با‬ ‫یا‬ ‫و‬ ‫شکست‬ ‫به‬ ‫برنامه‬ ‫یک‬ ‫که‬ ‫میشود‬ ‫باعث‬ ‫خطاها‬ ‫این‬ .‫بگیرد‬ ‫قرار‬
‫خطاه‬‫برنامه‬ ‫آن‬ ‫در‬ ‫که‬ ‫کدها‬ ‫داخل‬ ‫از‬ ‫یکی‬ ‫کرد‬ ‫پیدا‬ ‫منظر‬ ‫دو‬ ‫از‬ ‫را‬ ‫آنها‬ ‫میتوان‬ ‫که‬ ‫دارد‬ ‫مختلف‬ ‫انواع‬ ‫نویس‬ ‫برنامه‬ ‫ای‬
‫برنامه‬ ‫کاربران‬ ‫یا‬ ‫مشتری‬ ‫خطاها‬ ‫نوع‬ ‫این‬ ‫کردن‬ ‫پیدا‬ ‫در‬ ‫بیشتر‬ ‫که‬ ‫خارجی‬ ‫زوایه‬ ‫از‬ ‫هم‬ ‫یکی‬ ‫و‬ ‫میکند‬ ‫آفرینی‬ ‫نقش‬ ‫نویس‬
.‫میکنند‬ ‫ایفا‬ ‫نقش‬
Software testing is an investigation conducted to provide stakeholders with information about
the quality of the product or service under test.4
[3]
‫شود‬ ‫بررسی‬ ‫و‬ ‫بگیرد‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫شود‬ ‫کار‬ ‫بازار‬ ‫وارد‬ ‫اینکه‬ ‫از‬ ‫قبل‬ ‫را‬ ‫برنامه‬ ‫که‬ ‫است‬ ‫معنا‬ ‫این‬ ‫به‬ ‫برنامه‬ ‫تست‬
‫است‬ ‫شده‬ ‫ساخته‬ ‫که‬ ‫ای‬ ‫برنامه‬ ‫که‬‫آن‬ ‫برای‬ ‫که‬ ‫هدفی‬ ‫میتواند‬ ‫آیا‬‫تعیین‬‫نه؟‬ ‫یا‬ ‫کند‬ ‫دنبال‬ ‫را‬ ‫است‬ ‫شده‬
‫که‬ ‫میشود‬ ‫شامل‬ ‫را‬ ‫مختلف‬ ‫های‬ ‫دستگاه‬ ‫برای‬ ‫که‬ ‫هایی‬ ‫برنامه‬ ‫همه‬ ‫که‬ ‫است‬ ‫نظر‬ ‫مورد‬ ‫برنامه‬ ‫کلی‬ ‫حالت‬ ‫تحقیق‬ ‫این‬ ‫در‬
‫اعم‬ ‫کمپیوتری‬ ‫های‬ ‫برنامه‬ ‫شامل‬ ‫ها‬ ‫افزار‬ ‫سخت‬ ‫این‬‫سیستم‬ ‫از‬‫برنامه‬ ،‫کاربردی‬ ‫های‬ ‫برنامه‬ ،‫ها‬ ‫عامل‬،‫کمکی‬ ‫های‬
‫بازی‬‫های‬ ‫برنامه‬ ‫مانند‬ ‫به‬ ‫که‬ ‫میشود‬ ‫ساخته‬ ‫ها‬ ‫موبایل‬ ‫برای‬ ‫هایی‬ ‫برنامه‬ .‫میباشد‬ ‫کمپیوتر‬ ‫دیگری‬ ‫های‬ ‫برنامه‬ ‫و‬ ‫ها‬
‫هایی‬ ‫برنامه‬ ‫و‬ ‫ها‬ ‫سایت‬ ‫مانند‬ ‫میکنند‬ ‫کار‬ ‫کمپیوتر‬ ‫از‬ ‫خارج‬ ‫که‬ ‫هایی‬ ‫برنامه‬ .‫است‬ ‫مختلف‬ ‫های‬ ‫بخش‬ ‫دارای‬ ‫کامپیوتری‬
‫مجازی‬ ‫فضای‬ ‫در‬ ‫که‬‫اینترنت‬‫میکنند‬ ‫کار‬.‫میکنند‬ ‫کار‬ ‫مشخص‬ ‫های‬ ‫افزار‬ ‫سخت‬ ‫در‬ ‫که‬ ‫هایی‬ ‫برنامه‬ ‫دیگر‬ ‫و‬
1
David Bolton
2
Ada Lovelace
3
Chalz Baeej
4
Cem a b kaner
viii
‫بررسی‬ ‫یعنی‬ ‫ساختاری‬ ‫حالت‬ ‫به‬ .‫داد‬ ‫قرار‬ ‫تست‬ ‫مورد‬ ‫میتوان‬ ‫مختلف‬ ‫های‬ ‫حالت‬ ‫به‬ ‫را‬ ‫ها‬ ‫برنامه‬ ‫این‬‫متد‬‫کالس‬ ‫و‬ ‫ها‬
‫کار‬ ‫حالت‬ ‫به‬ .‫است‬ ‫شده‬ ‫برده‬ ‫کار‬ ‫به‬ ‫آن‬ ‫در‬ ‫که‬ ‫هایی‬‫نوی‬ ‫برنامه‬ ‫نظر‬ ‫مورد‬ ‫هدف‬ ‫که‬ ‫بردی‬‫بر‬ ‫مورد‬ ‫را‬ ‫کاربر‬ ‫و‬ ‫س‬‫رسی‬
.‫میدهد‬ ‫قرار‬
" ‫سر‬ ‫بر‬ ‫بحث‬ ‫اینجا‬ ‫در‬ ‫کلی‬ ‫حالت‬ ‫به‬(‫سفید‬ ‫جعبه‬ ‫بررسی‬White Box Testing‫سیاه‬ ‫جعبه‬ ‫و‬ )(Black Box
Testing)‫کردن‬ ‫تست‬ ‫های‬ ‫روش‬ ‫دیگر‬ ‫با‬ ‫آنها‬ ‫فرق‬ ‫و‬ ‫ها‬ ‫برنامه‬ ‫تست‬ ‫در‬.‫گیرد‬ ‫می‬ ‫قرار‬ ‫بحث‬ ‫مورد‬ "
‫ب‬ ‫تست‬ ‫برای‬ ‫روشها‬ ‫ترین‬ ‫اساسی‬ ‫میگیریم‬ ‫بحث‬ ‫به‬ ‫اینجا‬ ‫در‬ ‫که‬ ‫هایی‬ ‫روش‬‫تست‬ ‫و‬ .‫است‬ ‫شمول‬ ‫همه‬ ‫که‬ ‫میباشد‬ ‫ها‬ ‫رنامه‬
‫سازمان‬ ‫در‬ ‫ها‬ ‫روش‬ ‫این‬ .‫میکنند‬ ‫استفاده‬ ‫ها‬ ‫روش‬ ‫این‬ ‫از‬ ‫بیشتر‬ ‫ها‬ ‫کننده‬ISO‫برای‬ ‫سازمان‬ ‫این‬ ‫و‬ ‫میباشند‬ ‫شناسه‬ ‫دارای‬
‫استاندار‬ ‫آن‬‫د‬‫استاندارد‬ .‫است‬ ‫شده‬ ‫قایل‬ ‫هم‬ ‫هایی‬‫سازمان‬ ‫که‬ ‫هایی‬ISO‫است‬ ‫شده‬ ‫باعث‬ ‫است‬ ‫گرفته‬ ‫نظر‬ ‫در‬ ‫تست‬ ‫برای‬
‫تست‬ ‫که‬( ‫مفهوم‬ ‫دارای‬ ‫و‬ ‫تر‬ ‫منطقی‬ ‫کردن‬Concept‫و‬ ‫تر‬ ‫آسان‬ ‫صورت‬ ‫به‬ ‫خطاها‬ ‫و‬ ‫شود‬ ‫مشخص‬ )‫تر‬ ‫هدفمند‬‫پیدا‬
.‫شوند‬
‫انگلیسی‬ ‫متون‬ ‫درک‬ ‫توانایی‬ ‫کشورمان‬ ‫نویسان‬ ‫برنامه‬ ‫از‬ ‫خیلی‬ ‫که‬ ‫دلیل‬ ‫این‬ ‫به‬ ‫است‬ ‫شده‬ ‫نوشته‬ ‫فارسی‬ ‫زبان‬ ‫به‬ ‫مقاله‬ ‫این‬
‫نی‬ ‫آنها‬ ‫برای‬ ‫خوبی‬ ‫منبع‬ ‫مقاله‬ ‫این‬ ‫بنابراین‬ .‫ندارند‬ ‫را‬‫اول‬ ‫وهله‬ ‫در‬ ‫دیگر‬ ‫های‬ ‫زبان‬ ‫یا‬ ‫و‬ ‫انگلیسی‬ ‫متون‬ ‫درک‬ .‫میباشد‬ ‫ز‬
.‫است‬ ‫دری‬ ‫فارسی‬ ‫ما‬ ‫مادری‬ ‫زبان‬ ‫چون‬ .‫میگیرد‬ ‫را‬ ‫زیادی‬ ‫وقت‬ ‫اینکه‬ ‫دوم‬ ‫و‬ ‫است‬ ‫مشکل‬
ix
‫مقاله‬ ‫نگارش‬ ‫نحوه‬
‫است‬ ‫جدید‬ ‫تکنولوژی‬ ‫علوم‬ ‫که‬ ‫همانطوری‬ ‫است‬ ‫جدید‬ ‫علم‬ ‫یک‬ ‫افزار‬ ‫نرم‬ ‫تست‬‫این‬ ‫از‬ ‫مقاالتی‬ ‫و‬ ‫کتابها‬ ‫علت‬ ‫همین‬ ‫به‬ .
‫دس‬‫منابع‬ ‫نبود‬ ‫بنابر‬ ‫نداریم‬ ‫خود‬ ‫شهر‬ ‫در‬ ‫زمینه‬ ‫این‬ ‫در‬ ‫متخصصی‬ ‫یک‬ ‫هیچ‬ ‫همچنین‬ ‫و‬ ‫ندارد‬ ‫وجود‬ ‫ما‬ ‫کشور‬ ‫در‬ ‫ت‬
‫فیزیکی‬‫شده‬ ‫نوشته‬ ‫جهان‬ ‫سرتاسر‬ ‫در‬ ‫زمینه‬ ‫این‬ ‫در‬ ‫که‬ ‫علمی‬ ‫مقاالت‬ ‫و‬ ‫انترنتی‬ ‫منابع‬ ‫توسط‬ ‫را‬ ‫خود‬ ‫مشکل‬ ‫مقاله‬ ‫این‬
.‫کند‬ ‫حل‬ ‫است‬
‫دو‬ ‫به‬ ‫است‬ ‫شده‬ ‫استفاده‬ ‫مقاله‬ ‫این‬ ‫در‬ ‫که‬ ‫منابعی‬‫است‬ ‫نوع‬
‫اند‬ ‫داشته‬ ‫را‬ ‫مطلبی‬ ‫زمینه‬ ‫این‬ ‫در‬ ‫که‬ ‫هایی‬ ‫وبالگ‬ ‫و‬ ‫ها‬ ‫سایت‬
.‫است‬ ‫شده‬ ‫نگاشته‬ ‫مختلف‬ ‫سطوح‬ ‫دانشجویان‬ ‫توسط‬ ‫که‬ ‫علمی‬ ‫مقاالت‬
‫مسئله‬ ‫بیان‬
‫به‬ ‫افزار‬ ‫نرم‬ ‫کننده‬ ‫تولید‬ ‫های‬ ‫شرکت‬ ‫و‬ ‫ها‬ ‫سازمان‬ ‫های‬ ‫هزینه‬ ‫از‬ ‫زیادی‬ ‫مقدار‬ ‫ساالنه‬ ‫که‬ ‫میشود‬ ‫شروع‬ ‫آنجا‬ ‫از‬ ‫مشکل‬
‫ا‬ ‫نرم‬ ‫اینکه‬ ‫دلیل‬‫استاندار‬ ‫دارای‬ ‫شده‬ ‫ایجاد‬ ‫فزار‬‫د‬‫دارد‬ ‫وجود‬ ‫آن‬ ‫در‬ ‫بزرگی‬ ‫مشکل‬ ‫اینکه‬ ‫یا‬ ‫و‬ ‫است‬ ‫ضعیف‬ ‫های‬‫آن‬ ‫ولی‬
‫نمیشود‬ ‫پیدا‬ ‫یا‬ ‫شود‬ ‫نمی‬ ‫رفع‬ ‫مشکل‬‫که‬ ‫ها‬ ‫هزینه‬ ‫این‬ .‫میشود‬ ‫صرف‬ ‫نیست‬ ‫مشتری‬ ‫خواسته‬ ‫بر‬ ‫منطبق‬ ‫اینکه‬ ‫یا‬ ‫و‬‫مقدار‬
‫شان‬‫ا‬ ‫برای‬ .‫کند‬ ‫می‬ ‫وارد‬ ‫خسارت‬ ‫ها‬ ‫سازمان‬ ‫و‬ ‫ها‬ ‫شرکت‬ ‫این‬ ‫بر‬ ‫است‬ ‫زیاد‬‫کاسته‬ ‫اضافی‬ ‫های‬ ‫هزینه‬ ‫اتالف‬ ‫از‬ ‫ینکه‬
‫نیاز‬ ‫شود‬‫مبرم‬.‫است‬ ‫واقعی‬ ‫فضای‬ ‫در‬ ‫آن‬ ‫اجرای‬ ‫از‬ ‫قبل‬ ‫آن‬ ‫تست‬ ‫بر‬
‫اوقات‬ ‫گاهی‬ ‫و‬ ‫است‬ ‫زیادی‬ ‫هزینه‬ ‫دارای‬ ‫اینکه‬ ‫با‬ ‫افزار‬ ‫نرم‬ ‫تست‬‫آن‬ ‫های‬ ‫هزینه‬‫ولی‬ ‫میشود‬ ‫زیادتر‬ ‫هم‬ ‫افزار‬ ‫نرم‬ ‫تولید‬ ‫از‬
‫ثبات‬ ‫باعث‬ ‫کیفیت‬ ‫تضمین‬ .‫میکند‬ ‫تضمین‬ ‫را‬ ‫آن‬ ‫کیفیت‬‫ک‬ ‫و‬‫یفیت‬‫افزار‬ ‫نرم‬ ‫در‬‫نرم‬ .‫میشود‬‫تست‬ ‫توسط‬ ‫که‬ ‫افزارهایی‬
‫ایجاد‬‫خود‬ ‫نهایی‬ ‫هدف‬ ‫به‬ ‫معموال‬ ‫میشوند‬.‫اند‬ ‫رسیده‬
‫مقاله‬ ‫سوال‬
.‫میشود‬ ‫داده‬ ‫جواب‬ ‫آمد‬ ‫می‬ ‫پیش‬ ‫نویسی‬ ‫برنامه‬ ‫حین‬ ‫در‬ ‫خودم‬ ‫برای‬ ‫که‬ ‫سوالی‬ ‫سه‬ ‫دارید‬ ‫رو‬ ‫پیش‬ ‫که‬ ‫ای‬ ‫مقاله‬ ‫این‬ ‫در‬
2.‫کیف‬ ‫و‬ ‫تولید‬ ‫بر‬ ‫میتواند‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫آیا‬‫؟‬ ‫باشد‬ ‫داشته‬ ‫ارتباط‬ ‫افزار‬ ‫نرم‬ ‫یک‬ ‫یت‬
1.‫داد؟‬ ‫انجام‬ ‫کمتری‬ ‫هزینه‬ ‫با‬ ‫میتوان‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫آیا‬
1.‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫برای‬ ‫است‬ ‫معقولی‬ ‫روش‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫آیا‬‫نه‬ ‫یا‬‫؟‬
x
‫مقاله‬ ‫این‬ ‫ضرورت‬ ‫و‬ ‫اهمیت‬
‫شدید‬ ‫عالقه‬ ‫و‬ ‫ام‬ ‫خوانده‬ ‫درس‬ ‫ساینس‬ ‫کمپیوتر‬ ‫دانشکده‬ ‫در‬ ‫که‬ ‫کسانی‬ ‫از‬ ‫یکی‬ ‫عنوان‬ ‫به‬ ‫من‬‫ام‬ ‫داشته‬ ‫نویسی‬ ‫برنامه‬ ‫به‬
‫این‬ ‫که‬ ‫میکردم‬ ‫برخورد‬ ‫مشکل‬ ‫به‬ ‫ساده‬ ‫های‬ ‫برنامه‬ ‫ساختن‬ ‫و‬ ‫نویسی‬ ‫کد‬ ‫بخش‬ ‫در‬ ‫همیشه‬‫میگشت‬ ‫بر‬‫مقوله‬ ‫از‬ ‫اینکه‬ ‫به‬
.‫کنم‬ ‫ارائه‬ ‫خود‬ ‫تحقیقی‬ ‫نامه‬ ‫پایان‬ ‫عنوان‬ ‫به‬ ‫را‬ ‫مقاله‬ ‫این‬ ‫که‬ ‫دانستم‬ ‫الزم‬ ‫دلیل‬ ‫این‬ ‫به‬ ‫ام‬ ‫نداشته‬ ‫آگاهی‬ ‫افزار‬ ‫نرم‬ ‫تست‬
‫که‬ ‫هم‬ ‫ما‬ ‫کشور‬ ‫در‬‫نویسان‬ ‫برنامه‬‫جدیدا‬‫که‬ ‫دلیل‬ ‫این‬ ‫به‬ .‫است‬ ‫مهم‬ ‫بسیار‬ ‫بحث‬ ‫این‬ ‫اند‬ ‫کرده‬ ‫افزار‬ ‫نرم‬ ‫تولید‬ ‫به‬ ‫شروع‬
‫افزار‬ ‫نرم‬ ‫تست‬ ‫از‬ ‫درک‬ ‫بدون‬ ‫بیشترشان‬ ‫ما‬ ‫نویسان‬ ‫برنامه‬‫آن‬ ‫توسعه‬ ‫مراحل‬ ‫و‬‫که‬ ‫میکنند‬ ‫نویسی‬ ‫برنامه‬ ‫به‬ ‫شروع‬
‫اس‬ ‫های‬ ‫راه‬ ‫که‬ ‫است‬ ‫شده‬ ‫سعی‬ ‫اینجا‬ ‫در‬ .‫میشوند‬ ‫واقع‬ ‫شکست‬ ‫به‬ ‫بیشترشان‬‫و‬ ‫کنیم‬ ‫معرفی‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫برای‬ ‫تاندار‬
‫مفید‬ ‫کشورمان‬ ‫نویس‬ ‫برنامه‬ ‫جامعه‬ ‫برای‬ ‫و‬ ‫دارد‬ ‫کمتری‬ ‫های‬ ‫هزینه‬ ‫که‬ ‫کنیم‬ ‫می‬ ‫معرفی‬ ‫هم‬ ‫را‬ ‫افزارهایی‬ ‫نرم‬ ‫همچنین‬
.‫میشود‬ ‫واقع‬
‫شر‬ ‫آن‬ ‫از‬ ‫قبل‬ ‫و‬ ‫نویسی‬ ‫برنامه‬ ‫شروع‬ ‫ابتدای‬ ‫از‬ ‫که‬ ‫میباشد‬ ‫افزار‬ ‫نرم‬ ‫تولید‬ ‫مراحل‬ ‫ترین‬ ‫اساسی‬ ‫افزار‬ ‫نرم‬ ‫تست‬‫میشود‬ ‫وع‬
‫به‬ ‫افزار‬ ‫نرم‬ ‫دهی‬ ‫تحویل‬ ‫از‬ ‫بعد‬ ‫معموال‬ .‫میشود‬ ‫مشتری‬ ‫توسط‬ ‫که‬ ‫است‬ ‫آن‬ ‫تست‬ ‫هم‬ ‫افزار‬ ‫نرم‬ ‫تولید‬ ‫مرحله‬ ‫آخرین‬ ‫و‬
‫تا‬ ‫مشتری‬1‫نویسان‬ ‫برنامه‬ ‫دلیل‬ ‫این‬ ‫به‬ .‫میباشد‬ ‫افزار‬ ‫نرم‬ ‫خطاهای‬ ‫و‬ ‫مشکالت‬ ‫پاسخگوی‬ ‫نویس‬ ‫برنامه‬ ‫سال‬ ‫یک‬ ‫یا‬ ‫ماه‬
.‫کنند‬ ‫فراموش‬ ‫نباید‬ ‫را‬ ‫نکته‬ ‫این‬ ‫کشورمان‬
‫ا‬‫چرا‬ ‫که‬ ‫میکنند‬ ‫برخورد‬ ‫مشکل‬ ‫این‬ ‫به‬ ‫همیشه‬ ‫هستند‬ ‫نویس‬ ‫برنامه‬ ‫راه‬ ‫ابتدای‬ ‫که‬ ‫کمپیوتر‬ ‫رشته‬ ‫دانشجویان‬ ‫گذشته‬ ‫آن‬ ‫ز‬
‫ای‬ ‫برنامه‬‫که‬‫این‬ ‫خواندن‬ ‫با‬ ‫میتوانند‬ ‫هم‬ ‫آنها‬ .‫دارند‬ ‫مشکل‬ ‫نویسی‬ ‫برنامه‬ ‫در‬ ‫چرا‬ ‫اینکه‬ ‫یا‬ ‫و‬ ‫نمیکند‬ ‫کار‬ ‫درست‬ ‫اند‬ ‫نوشته‬
‫ا‬ ‫و‬ ‫کنند‬ ‫یابی‬ ‫ریشه‬ ‫را‬ ‫خود‬ ‫مشکالت‬ ‫مقاله‬‫به‬ ‫شروع‬ ‫ساده‬ ‫های‬ ‫برنامه‬ ‫ساختن‬ ‫شروع‬ ‫ابتدای‬ ‫ز‬‫یابی‬ ‫خطا‬‫جزء‬ ‫که‬ ‫کنند‬
‫شان‬ ‫عادت‬.‫باشند‬ ‫نداشته‬ ‫مشکلی‬ ‫میشوند‬ ‫نویس‬ ‫برنامه‬ ‫که‬ ‫آینده‬ ‫در‬ ‫تا‬ ‫شود‬
‫مقاله‬ ‫اهداف‬
-‫یک‬ ‫اینکه‬ ‫یا‬ ‫و‬ ‫باشد‬ ‫کوچک‬ ‫افزارها‬ ‫نرم‬ ‫این‬ ‫چه‬ .‫بکند‬ ‫خود‬ ‫افزارهای‬ ‫نرم‬ ‫تست‬ ‫به‬ ‫ترغیب‬ ‫را‬ ‫نویسان‬ ‫برنامه‬
‫ب‬ ‫بزرگ‬ ‫افزار‬ ‫نرم‬.‫اشد‬
-.‫کند‬ ‫بیان‬ ‫ساده‬ ‫زبان‬ ‫با‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫تست‬
-‫کند‬ ‫بیان‬ ‫نویسی‬ ‫برنامه‬ ‫در‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫های‬ ‫ویژگی‬ ‫و‬ ‫اهمیت‬
-‫با‬ ‫اضافی‬ ‫های‬ ‫هزینه‬ ‫این‬ .‫دهد‬ ‫آگاهی‬ ‫میشود‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫از‬ ‫استفاده‬ ‫عدم‬ ‫اثر‬ ‫در‬ ‫که‬ ‫اضافی‬ ‫های‬ ‫هزینه‬ ‫از‬
)‫شدن‬ ‫(خراب‬Ruinous.‫است‬ ‫توام‬ ‫افزار‬ ‫نرم‬ ‫شدن‬
‫فرضیات‬
-‫ت‬‫برنامه‬ ‫جامعه‬ ‫بین‬ ‫در‬ ‫هنوز‬ ‫آن‬ ‫اهمیت‬ ‫که‬ ‫میباشد‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫نشدنی‬ ‫جدا‬ ‫اجزای‬ ‫از‬ ‫یکی‬ ‫افزار‬ ‫نرم‬ ‫ست‬
.‫است‬ ‫نشده‬ ‫معلوم‬ ‫ما‬ ‫کشور‬ ‫نویسی‬
-‫یاد‬ ‫را‬ ‫نویسی‬ ‫برنامه‬ ‫که‬ ‫دارند‬ ‫عالقه‬ ‫یا‬ ‫و‬ ‫دارند‬ ‫یاد‬ ‫را‬ ‫نویسی‬ ‫برنامه‬ ‫میخوانند‬ ‫را‬ ‫مقاله‬ ‫این‬ ‫که‬ ‫کسانی‬ ‫تمام‬
‫و‬ ‫بگیرند‬‫افزار‬ ‫نرم‬ ‫تست‬ ‫اهمیت‬‫افزار‬ ‫نرم‬ ‫تست‬ ‫اهمیت‬ ‫از‬ ‫مقاله‬ ‫این‬ ‫خواندن‬ ‫با‬ .‫اند‬ ‫نکرده‬ ‫درک‬ ‫خوبی‬ ‫به‬
.‫میکنند‬ ‫پیدا‬ ‫آگاهی‬
xi
‫مفهومی‬ ‫تعاریف‬
‫میشود‬ ‫شده‬ ‫تولید‬ ‫افزار‬ ‫نرم‬ ‫در‬ ‫مشکل‬ ‫کردن‬ ‫پیدا‬ ‫باعث‬ ‫که‬ ‫عملیاتی‬ ‫مجموعه‬ :‫افزار‬ ‫نرم‬ ‫تست‬
‫تمام‬ ‫به‬ ‫کننده‬ ‫تست‬ ‫آن‬ ‫در‬ ‫که‬ ‫تستی‬ : ‫سفید‬ ‫جعبه‬ ‫تست‬‫برنام‬ ‫مختلف‬ ‫های‬ ‫بخش‬ ‫و‬ ‫کدها‬‫دست‬ ‫ه‬‫دارد‬ ‫رسی‬
‫کارکرد‬ ‫فقط‬ ‫و‬ ‫ندارد‬ ‫اطالعی‬ ‫برنامه‬ ‫کدهای‬ ‫و‬ ‫محتویات‬ ‫از‬ ‫کننده‬ ‫تست‬ ‫آن‬ ‫در‬ ‫که‬ ‫تستی‬ : ‫سیاه‬ ‫جعبه‬ ‫تست‬
‫است‬ ‫مهم‬ ‫برایش‬ ‫افزار‬ ‫نرم‬
‫ولی‬ ‫دارد‬ ‫دسترسی‬ ‫افزار‬ ‫نرم‬ ‫محتویات‬ ‫های‬ ‫قسمت‬ ‫بعضی‬ ‫به‬ ‫کننده‬ ‫تست‬ ‫آن‬ ‫در‬ ‫که‬ ‫تستی‬ : ‫خاکستری‬ ‫تست‬
.‫نه‬ ‫کامل‬ ‫صورت‬ ‫به‬‫ا‬ ‫ترکیبی‬ ‫تست‬ ‫نوع‬ ‫این‬‫است‬ ‫سیاه‬ ‫جعبه‬ ‫و‬ ‫سفید‬ ‫جعبه‬ ‫تست‬ ‫ز‬
‫نرم‬ ‫کیفیت‬ ‫حقیقت‬ ‫در‬ ‫شخص‬ ‫این‬ .‫میکند‬ ‫ریزی‬ ‫برنامه‬ ‫را‬ ‫برنامه‬ ‫تست‬ ‫پروسه‬ ‫که‬ ‫است‬ ‫کسی‬ : ‫کننده‬ ‫تست‬
.‫میکند‬ ‫رد‬ ‫یا‬ ‫تایید‬ ‫را‬ ‫افزار‬
.‫میکند‬ ‫نویسی‬ ‫کد‬ ‫و‬ ‫دیزاین‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫که‬ ‫است‬ ‫کسی‬ :‫نویس‬ ‫برنامه‬
‫برنام‬ ‫زمان‬ ‫در‬ ‫نویس‬ ‫برنامه‬ ‫که‬ ‫کوچکی‬ ‫مشکل‬ : ‫خطا‬.‫میکند‬ ‫رفع‬ ‫را‬ ‫آن‬ ‫نویس‬ ‫ه‬
: ‫افزار‬ ‫نرم‬ ‫بینی‬ ‫باز‬ ‫و‬ ‫سنجی‬ ‫اعتبار‬‫می‬ ‫گفته‬ ‫فرآیندی‬ ‫به‬‫اعمال‬ ‫آن‬ ‫طی‬ ‫در‬ ‫یا‬ ‫و‬ ‫تولید‬ ‫از‬ ‫پس‬ ‫که‬ ‫شود‬
‫می‬‫شود‬ ‫حاصل‬ ‫اطمینان‬ ‫نظر‬ ‫مورد‬ ‫سیستم‬ ‫کارآیی‬ ‫و‬ ‫صحت‬ ‫از‬ ‫تا‬ ‫گردد‬.
‫مجازی‬ ‫فضای‬ ‫در‬ ‫را‬ ‫تست‬ ‫مراحل‬ ‫که‬ ‫میشود‬ ‫گفته‬ ‫افزارهایی‬ ‫نرم‬ ‫به‬ : ‫تست‬ ‫خودکار‬ ‫ابزارهای‬‫انجام‬
.‫میکند‬ ‫استفاده‬ ‫آن‬ ‫از‬ ‫کننده‬ ‫تست‬ ‫که‬ ‫هستند‬ ‫ابزارهایی‬ ‫آنها‬ .‫میدهند‬
xUnit.‫افزارها‬ ‫نرم‬ ‫خودکار‬ ‫تست‬ ‫افزارهای‬ ‫نرم‬ ‫از‬ ‫ای‬ ‫خانواده‬ :
.‫است‬ ‫آنها‬ ‫تست‬ ‫بودن‬ ‫ضعیف‬ ‫دلیل‬ ‫به‬ ‫افزارها‬ ‫نرم‬ ‫در‬ ‫موجود‬ ‫مشکالت‬
‫فصل‬‫اول‬
‫کلیدی‬ ‫نکات‬
2
‫اول‬ ‫فصل‬
1.1‫چیست‬ ‫افزار‬ ‫نرم‬ ‫کیفیت‬(Software Quality)‫؟‬
‫تو‬‫سعه‬‫کاربردی‬ ‫افزارهای‬ ‫نرم‬‫هر‬‫روز‬‫میشود‬ ‫زیاد‬‫و‬‫اهمیت‬‫اصول‬ ‫و‬ ‫ها‬ ‫روش‬ ‫بکارگیری‬‫انجینری‬‫در‬ ‫افزار‬ ‫نرم‬
‫بیشتر‬ ‫آنها‬ ‫پشتیبانی‬ ‫و‬ ‫مدیریت‬ ، ‫توسعه‬ ‫مراحل‬‫شود‬ ‫می‬‫افزار‬ ‫نرم‬ ‫کیفیت‬ .(Software Quality)‫زیادی‬ ‫اهمیت‬‫برای‬
‫کیفیت‬ ‫با‬ ‫های‬ ‫افزار‬ ‫نرم‬ ‫تولید‬‫دارد‬‫بر‬ ‫باال‬ ‫ضمن‬ ‫که‬‫دن‬‫کارایی‬‫نرم‬ ‫ایجاد‬ ‫به‬ ، ‫ها‬ ‫افزار‬ ‫نرم‬ ‫تولید‬ ‫در‬‫قدرتمند‬ ‫های‬ ‫افزار‬
‫می‬ ‫منجر‬‫شود‬.‫سلسله‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫کیفیت‬‫مراحلی‬‫برای‬ ‫که‬ ‫میشود‬ ‫گفته‬‫شدن‬ ‫بهتر‬.‫میشود‬ ‫انجام‬ ‫افزار‬ ‫نرم‬ ‫کارایی‬‫کیفیت‬
‫ن‬ ‫کیفیت‬ .‫میباشد‬ ‫افزار‬ ‫نرم‬ ‫کاربران‬ ‫و‬ ‫خریداران‬ ‫های‬ ‫اولویت‬ ‫ترین‬ ‫مهم‬ ‫از‬ ‫یکی‬ ‫افزار‬ ‫نرم‬‫های‬ ‫بخش‬ ‫شامل‬ ‫افزار‬ ‫رم‬
‫های‬ ‫بخش‬ ‫از‬ ‫یکی‬ ‫هم‬ ‫افزار‬ ‫نرم‬ ‫تست‬ .‫بگذارد‬ ‫مستقیم‬ ‫اثر‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫بهبود‬ ‫بر‬ ‫میتواند‬ ‫کدام‬ ‫هر‬ ‫که‬ ‫میباشد‬ ‫متنوعی‬
.‫پردازیم‬ ‫می‬ ‫آن‬ ‫به‬ ‫بحث‬ ‫این‬ ‫در‬ ‫ما‬ ‫که‬ ‫است‬ ‫افزار‬ ‫نرم‬ ‫کیفیت‬[4]
‫های‬ ‫مرحله‬‫فعالیتهاي‬ ‫از‬ ‫یکي‬ ‫عنوان‬ ‫به‬ ، ‫افزار‬ ‫نرم‬ ‫کیفیت‬‫مدیر‬‫توسعه‬‫افزار‬ ‫نرم‬‫ب‬ ‫است‬‫دادن‬ ‫انجام‬ ‫با‬ ‫که‬ ‫اي‬ ‫گونه‬ ‫ه‬
‫این‬‫مراحل‬‫استانداردهاي‬ ‫رعایت‬ ‫و‬ ‫ریزي‬ ‫برنامه‬ ‫در‬ ‫افزار‬ ‫نرم‬ ‫کیفیت‬ ‫تیم‬ ،‫افزار‬ ‫نرم‬‫یک‬ ‫عنوان‬ ‫به‬ ،‫نموده‬ ‫همکاري‬
‫و‬ ‫فعالیتها‬ ‫انجام‬ ‫روش‬ ‫مستقل‬ ‫گروه‬‫ها‬ ‫خروجی‬‫نماید‬ ‫مي‬ ‫حاصل‬ ‫اطمینان‬ ‫آنها‬ ‫انجام‬ ‫صحت‬ ‫از‬ ‫و‬ ‫بازرسي‬ ‫را‬.
0.4‫افز‬ ‫نرم‬ ‫تست‬‫چیست؟‬ ‫ار‬
‫افزار‬ ‫نرم‬ ‫تست‬ ‫از‬ ‫منظور‬‫پوره‬ ‫میتواند‬ ‫را‬ ‫داشتیم‬ ‫توقع‬ ‫آن‬ ‫از‬ ‫که‬ ‫ای‬ ‫کارایی‬ ‫آیا‬ ‫ایم‬ ‫کرده‬ ‫تولید‬ ‫که‬ ‫افزاری‬ ‫نرم‬ ‫اینکه‬ ‫یعنی‬
‫یعنی‬ .‫است‬ ‫میشود‬ ‫ایجاد‬ ‫تولیدی‬ ‫های‬ ‫کارخانه‬ ‫یا‬ ‫و‬ ‫افراد‬ ‫توسط‬ ‫که‬ ‫محصوالتی‬ ‫دیگر‬ ‫مانند‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫نه؟‬ ‫یا‬ ‫کند‬
‫طبق‬ ‫که‬ ‫دارد‬ ‫مشخصی‬ ‫مراحل‬‫تولید‬ ‫فزیکی‬ ‫صورت‬ ‫به‬ ‫که‬ ‫محصوالتی‬ .‫کرد‬ ‫تولید‬ ‫را‬ ‫آل‬ ‫ایده‬ ‫افزار‬ ‫نرم‬ ‫یک‬ ‫میتوان‬ ‫آن‬
‫به‬ ‫ها‬ ‫افزار‬ ‫نرم‬ ‫اما‬ . ‫کرد‬ ‫حاصل‬ ‫اطالع‬ ‫آن‬ ‫وری‬ ‫بهره‬ ‫و‬ ‫کیفیت‬ ‫از‬ ‫و‬ ‫داد‬ ‫قرار‬ ‫آزمایش‬ ‫مورد‬ ‫سادگی‬ ‫به‬ ‫میتوان‬ ‫را‬ ‫میشوند‬
‫طاقت‬ ‫و‬ ‫مشکل‬ ‫هم‬ ‫آنها‬ ‫تست‬ ‫بنابراین‬ .‫نیستند‬ )‫(فزیکی‬ ‫لمس‬ ‫قابل‬ ‫که‬ ‫دلیل‬ ‫این‬‫برای‬ ‫فزیکی‬ ‫محصوالت‬ .‫میباشد‬ ‫فرسا‬
‫آنها‬ ‫یعنی‬ ‫داشت‬ ‫نگه‬ ‫مشخص‬ ‫شرایط‬ ‫یک‬ ‫در‬ ‫نمیتوان‬ ‫را‬ ‫ها‬ ‫افزار‬ ‫نرم‬ ‫اما‬ ‫هستند‬ ‫بینی‬ ‫پیش‬ ‫قابل‬ ‫که‬ ‫میشوند‬ ‫ایجاد‬ ‫شرایطی‬
‫بدهیم‬ ‫قرار‬ ‫آزمایش‬ ‫مورد‬ ‫مختلف‬ ‫شرایط‬ ‫در‬ ‫را‬ ‫آن‬ ‫باید‬ ‫کنیم‬ ‫تست‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫یک‬ ‫ما‬ ‫اینکه‬ ‫برای‬ ‫دارند‬ ‫تغییر‬ ‫قابلیت‬‫در‬ .
‫صورتی‬‫کار‬ ‫درست‬ ‫ما‬ ‫افزار‬ ‫نرم‬ ‫که‬ ‫بگوییم‬ ‫نمیتوانیم‬ ‫ایم‬ ‫نکرده‬ ‫آزمایش‬ ‫افزار‬ ‫نرم‬ ‫روی‬ ‫بر‬ ‫را‬ ‫خاص‬ ‫شرایط‬ ‫همه‬ ‫ما‬ ‫که‬
.‫میباشد‬ ‫خطا‬ ‫از‬ ‫عاری‬ ‫اینکه‬ ‫یا‬ ‫و‬ ‫میکند‬
‫به‬ ‫دیگر‬ ‫طرف‬ ‫از‬ ‫و‬ ‫است‬ ‫رشد‬ ‫به‬ ‫رو‬ ‫هم‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫اهمیت‬ ‫است‬ ‫رفته‬ ‫افزایش‬ ‫به‬ ‫رو‬ ‫افزارها‬ ‫نرم‬ ‫تعداد‬ ‫که‬ ‫وقتی‬ ‫از‬
‫تست‬ ‫مراتب‬ ‫همان‬‫توسط‬ ‫که‬ ‫مختلف‬ ‫های‬ ‫روش‬ ‫ایجاد‬ ‫به‬ ‫برمیگردد‬ ‫این‬ ‫که‬ ‫است‬ ‫شده‬ ‫مشکل‬ ‫و‬ ‫سخت‬ ‫هم‬ ‫افزار‬ ‫نرم‬
.‫کند‬ ‫تایید‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫کیفیت‬ ‫که‬ ‫میشود‬ ‫تعریف‬ ‫جهانی‬ ‫استاندارد‬ ‫سازمان‬
‫دایکسترا‬5
‫می‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫باب‬ ‫در‬ ‫ارزشمند‬ ‫جمله‬ ‫یک‬ ‫در‬ ‫کامپیوتر‬ ‫علوم‬ ‫فقید‬ ‫و‬ ‫بزرگ‬ ‫دانشمند‬:‫گویید‬‫فقط‬ ‫تست‬
‫میتوا‬‫را‬ ‫آنها‬ ‫وجود‬ ‫عدم‬ ‫نه‬ ،‫دهد‬ ‫نمایش‬ ‫را‬ ‫خطاها‬ ‫ند‬[5]!
5
Edsgar W. Dijkstra
3
0.1‫افزار‬ ‫نرم‬ ‫تست‬ ‫اهمیت‬
‫نرم‬ ‫در‬ .‫فزیکی‬ ‫غیر‬ ‫اینکه‬ ‫یا‬ ‫و‬ ‫باشد‬ ‫فزیکی‬ ‫محصول‬ ‫آن‬ ‫خواه‬ ‫دارد‬ ‫محصول‬ ‫هر‬ ‫تولید‬ ‫در‬ ‫خاصی‬ ‫اهمیت‬ ‫کل‬ ‫در‬ ‫تست‬
‫ت‬ .‫میباشد‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫اصلی‬ ‫مراحل‬ ‫از‬ ‫یکی‬ ‫افزار‬ ‫نرم‬ ‫تست‬ .‫است‬ ‫جاری‬ ‫امر‬ ‫این‬ ‫هم‬ ‫ها‬ ‫افزار‬‫کیفیت‬ ‫افزار‬ ‫نرم‬ ‫ست‬
.‫دارد‬ ‫زیادی‬ ‫اهمیت‬ ‫آن‬ ‫های‬ ‫دهنده‬ ‫توسعه‬ ‫و‬ ‫مشتریان‬ ‫برای‬ ‫که‬ ‫میکند‬ ‫تایید‬ ‫را‬ ‫افزار‬ ‫نرم‬
‫یک‬ ‫در‬‫شرکت‬‫معمول‬ ‫طور‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬11‫تا‬11‫تست‬ ‫صرف‬ ‫پروژه‬ ‫فعالیت‬ ‫کل‬ ‫درصد‬‫افزار‬ ‫نرم‬.‫میشود‬
‫پرواز‬ ‫مانند‬ ‫است‬ ‫حیاتی‬ ‫انسانی‬ ‫زندگی‬ ‫در‬ ‫که‬ ‫هایی‬ ‫افزار‬ ‫نرم‬ ‫برای‬‫ها‬ ‫طیاره‬‫حدود‬ ‫ای‬ ‫هسته‬ ‫راکتور‬ ‫و‬1‫تا‬1‫برابر‬
‫صرف‬ ‫افزار‬ ‫نرم‬ ‫تولید‬ ‫مراحل‬ ‫تمام‬ ‫از‬ ‫بیشتر‬ ‫هزینه‬‫تست‬.‫میشود‬
0.2‫تست‬ ‫اصول‬
‫و‬ ‫ها‬ ‫روش‬‫متد‬‫میشود‬ ‫مربوط‬ ‫میدهد‬ ‫انجام‬ ‫را‬ ‫تست‬ ‫آن‬ ‫که‬ ‫کسی‬ ‫به‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫تست‬ ‫یک‬ ‫کردن‬ ‫اجرا‬ ‫برای‬ ‫زیادی‬ ‫های‬
‫این‬ ‫زیرا‬‫متد‬‫سازی‬ ‫پیاده‬ ‫نوع‬ ‫به‬ ‫بستگی‬ ‫ها‬‫شخص‬ ‫توسط‬‫نرم‬ ‫تست‬ ‫برای‬ ‫مطرح‬ ‫و‬ ‫مهم‬ ‫اصول‬ ‫از‬ ‫یکی‬ ‫اینجا‬ ‫در‬ .‫دارد‬
.‫است‬ ‫شده‬ ‫مطرح‬ ‫دیویس‬ ‫توسط‬ ‫که‬ ‫میگیریم‬ ‫معرفی‬ ‫به‬ ‫را‬ ‫افزار‬
‫دیویس‬ ‫تست‬ ‫اصول‬6
[6]
-‫باشد‬ ‫پیگیری‬ ‫قابل‬ ،‫مشتری‬ ‫نظر‬ ‫مورد‬ ‫نیازمندیهای‬ ‫به‬ ‫رسیدن‬ ‫تا‬ ‫باید‬ ‫ها‬ ‫تست‬ ‫تمام‬
-‫برنامه‬ ، ‫آن‬ ‫شروع‬ ‫از‬ ‫قبل‬ ‫طوالنی‬ ‫مدت‬ ‫باید‬ ‫ها‬ ‫تست‬.‫شوند‬ ‫ریزی‬
-‫اصل‬ ‫کارگیری‬ ‫به‬‫پارتو‬7
‫افزار‬ ‫نرم‬ ‫تست‬ ‫مورد‬ ‫در‬(%81‫در‬ ‫نشده‬ ‫کشف‬ ‫خطاهاي‬21%‫است‬ ‫کد‬)
-‫کم‬ ‫کم‬ ‫و‬ ‫شده‬ ‫شروع‬ ‫جزء‬ ‫از‬ ‫باید‬ ‫تست‬.‫برسد‬ ‫وسیع‬ ‫سطح‬ ‫در‬ ‫هایی‬ ‫تست‬ ‫طرف‬ ‫به‬
-‫نیست‬ ‫ممکن‬ ‫فراگیر‬ ‫و‬ ‫جامع‬ ‫های‬ ‫تست‬
-‫ثال‬ ‫شخص‬ ‫یک‬ ‫توسط‬ ‫باید‬ ،‫باشد‬ ‫داشته‬ ‫را‬ ‫تاثیر‬ ‫بیشترین‬ ‫تست‬ ‫اینکه‬ ‫برای‬.‫گیرد‬ ‫صورت‬ ‫مستقل‬ ‫ث‬
0.5‫افزار‬ ‫نرم‬ ‫تست‬ ‫اهداف‬
‫استفاده‬ ‫مورد‬ ‫اینکه‬ ‫از‬ ‫قبل‬ ‫را‬ ‫آن‬ ‫بودن‬ ‫درست‬ ‫که‬ ‫میتوان‬ ‫آن‬ ‫با‬ ‫و‬ ‫باشد‬ ‫می‬ ‫پروژه‬ ‫مهم‬ ‫های‬ ‫بخش‬ ‫از‬ ‫یکی‬ ‫افزار‬ ‫نرم‬ ‫تست‬
‫کار‬ ‫کرد.این‬ ‫امتحان‬ ‫را‬ ‫بگیرد‬ ‫قرار‬ ‫آن‬ ‫کاربران‬ ‫توسط‬1‫سازی‬ ‫پیاده‬ ‫درست‬ ‫صورت‬ ‫به‬ ‫هدف‬ ‫سه‬ ‫هر‬ ‫اگر‬ .‫دارد‬ ‫هدف‬
‫نرم‬ ‫شود‬‫میباشد‬ ‫نقص‬ ‫بدون‬ ‫ما‬ ‫افزار‬.[7]
-‫افزار‬ ‫نرم‬ ‫کیفیت‬ ‫افزایش‬
-‫اطمینان‬ ‫قابلیت‬ ‫و‬ ‫نیازها‬ ‫به‬ ‫پاسخگویی‬ ‫لحاظ‬ ‫از‬ ‫سیستم‬ ‫بررسی‬
-‫افزار‬ ‫نرم‬ ‫های‬ ‫اشتباه‬ ‫و‬ ‫خطاها‬ ‫ها‬ ‫ضعف‬ ‫شناسایی‬
6
Davis
7
Vilfredo Federico Damaso Pareto ‫اند‬ ‫بوده‬ ‫ایتالیایی‬ ‫ایشان‬
4
0.6‫افزار‬ ‫نرم‬ ‫زدایی‬ ‫اشکال‬
‫نرم‬ ‫توسعه‬ ‫در‬ ‫مهمی‬ ‫بسیار‬ ‫وظیفه‬ ‫زدایی‬ ‫اشکال‬‫افزار‬‫می‬‫باشد‬‫غلط‬ ‫برنامه‬ ‫یک‬ ‫زیرا‬ ،‫م‬‫ی‬‫تواند‬‫برای‬ ‫مهمی‬ ‫پیامدهای‬
‫از‬ ‫بعضی‬ .‫باشد‬ ‫داشته‬ ‫خود‬ ‫کاربر‬‫زبانها‬‫اشتباهات‬ ‫برخی‬ ‫معرض‬ ‫در‬ ‫بیشتر‬‫می‬‫باشند‬‫خاطر‬ ‫به‬ ،‫شان‬ ‫خصوصیات‬‫به‬ ‫نیاز‬
‫به‬ ‫نسبت‬ ‫کامپایلر‬ ‫بیشتر‬ ‫بررسی‬‫زبانهای‬‫دیگر‬‫دارند‬.‫کردن‬ ‫پیدا‬ ‫کارش‬ ‫زدایی‬ ‫اشکال‬‫اشکاالت‬‫برنامه‬ ‫عین‬ ‫در‬ ‫که‬ ‫است‬
‫ک‬ ‫این‬ .‫میدهد‬ ‫رخ‬ ‫نویسی‬‫باشد‬ ‫داشته‬ ‫آگاهی‬ ‫آن‬ ‫بر‬ ‫باید‬ ‫بنابراین‬ ‫میشود‬ ‫انجام‬ ‫نویس‬ ‫برنامه‬ ‫خود‬ ‫توسط‬ ‫ار‬
0.6.0‫افزار‬ ‫نرم‬ ‫زدایی‬ ‫اشکال‬ ‫با‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫تفاوت‬
‫های‬ ‫روش‬ ‫در‬‫انجینری‬‫افزار‬ ‫نرم‬‫قدیمی‬‫نمی‬ ‫توجه‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫به‬‫شد‬‫و‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫بین‬ ‫فرق‬ ‫مردم‬ ‫که‬ ‫دلیل‬ ‫این‬ ‫به‬
‫نکرده‬ ‫درک‬ ‫را‬ ‫زدایی‬ ‫اشکال‬.‫بودند‬
‫که‬ ‫کاری‬ ‫و‬ ‫میشد‬ ‫مشکل‬ ‫دچار‬ ‫کردم‬ ‫می‬ ‫نوشته‬ ‫که‬ ‫کدهایی‬ ‫از‬ ‫خیلی‬ ‫بودم‬ ‫کرده‬ ‫نویسی‬ ‫برنامه‬ ‫به‬ ‫شروع‬ ‫من‬ ‫که‬ ‫اوایل‬ ‫در‬
‫کمی‬ .‫میداد‬ ‫کار‬ ‫بودم‬ ‫نوشته‬ ‫که‬ ‫کدی‬ ‫میکردم‬ ‫رفع‬ ‫را‬ ‫آن‬ ‫های‬ ‫اشکال‬ ‫که‬ ‫زمانی‬ ‫ولی‬ ‫نمیداد‬ ‫انجام‬ ‫را‬ ‫داشتم‬ ‫را‬ ‫آن‬ ‫توقع‬ ‫من‬
‫ایج‬ ‫جداگانه‬ ‫کالس‬ ‫دو‬ ‫توانستم‬ ‫که‬ ‫بعدتر‬‫کدهای‬ ‫از‬ ‫مشکل‬ ‫که‬ ‫میکردم‬ ‫برخورد‬ ‫مشکل‬ ‫به‬ ‫آنها‬ ‫سازی‬ ‫یکجا‬ ‫موقع‬ ‫در‬ ‫کنم‬ ‫اد‬
‫نرم‬ ‫تست‬ ‫خطاها‬ ‫گونه‬ ‫این‬ ‫رفع‬ ‫به‬ .‫بود‬ ‫کالس‬ ‫دو‬ ‫آن‬ ‫سازی‬ ‫جا‬ ‫یک‬ ‫طریقه‬ ‫در‬ ‫مشکل‬ ‫بلکه‬ ‫نبود‬ ‫ها‬ ‫کالس‬ ‫در‬ ‫شده‬ ‫نوشته‬
.‫میسازیم‬ ‫یکجا‬ ‫هم‬ ‫با‬ ‫را‬ ‫کالس‬ ‫چندین‬ ‫یا‬ ‫دو‬ ‫آن‬ ‫نتیجه‬ ‫در‬ ‫که‬ ‫میگویند‬ ‫افزار‬
‫هدفشا‬ ‫آنها‬ ‫دو‬ ‫هر‬‫را‬ ‫میشود‬ ‫ایجاد‬ ‫نویسی‬ ‫برنامه‬ ‫وقت‬ ‫در‬ ‫که‬ ‫خطاهایی‬ ‫زدایی‬ ‫اشکال‬ .‫است‬ ‫افزار‬ ‫نرم‬ ‫کیفیت‬ ‫بردن‬ ‫باال‬ ‫ن‬
‫رفع‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫کاربردی‬ ‫خطاهای‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫و‬ ‫میشود‬ ‫انجام‬ ‫نویس‬ ‫برنامه‬ ‫توسط‬ ‫زدایی‬ ‫اشکال‬ ‫این‬ .‫میکند‬ ‫رفع‬
.‫باشد‬ ‫سیستمی‬ ‫که‬ ‫است‬ ‫ممکن‬ ‫خطاها‬ ‫این‬ ‫میکند‬
‫هی‬ ‫اگر‬ ‫حتی‬ ‫مثال‬ ‫برای‬‫عبارت‬ ‫به‬ ‫شود‬ ‫کشف‬ ‫افزار‬ ‫نرم‬ ‫در‬ ‫نقص‬ ‫و‬ ‫عیب‬ ‫است‬ ‫ممکن‬ ‫نباشد‬ ‫موجود‬ ‫برنامه‬ ‫در‬ ‫اشکالی‬ ‫چ‬
‫برای‬ ‫که‬ ‫میکند‬ ‫شناسایی‬ ‫را‬ ‫شرایطی‬ ‫تست‬ ‫حالیکه‬ ‫در‬ ‫میکند‬ ‫ارضاء‬ ‫را‬ ‫شده‬ ‫تعیین‬ ‫پیش‬ ‫از‬ ‫مشخصات‬ ‫زدایی‬ ‫اشکال‬ ‫دیگر‬
‫میکند‬ ‫مشکل‬ ‫ایجاد‬ ‫کاربران‬
‫ت‬ ‫نکته‬ ‫این‬ ‫بر‬ ‫زدایی‬ ‫اشکال‬ ‫توسط‬ ‫شده‬ ‫پیدا‬ ‫های‬ ‫اشکال‬‫در‬ ‫یا‬ ‫و‬ ‫نشده‬ ‫برآورده‬ ‫است‬ ‫بوده‬ ‫مدنظر‬ ‫که‬ ‫منطقی‬ ‫که‬ ‫دارد‬ ‫وجه‬
‫تست‬ ‫توسط‬ ‫که‬ )‫سیستمی(کاربری‬ ‫میشود.خطاهای‬ ‫خطا‬ ‫ایجاد‬ ‫باعث‬ ‫که‬ ‫است‬ ‫بوده‬ ‫اشکاالتی‬ ‫است‬ ‫شده‬ ‫نوشته‬ ‫که‬ ‫کدهایی‬
‫توسع‬ ‫طوری‬ ‫باید‬ ‫افزار‬ ‫نرم‬ ‫علت‬ ‫همین‬ ‫به‬ .‫است‬ ‫آن‬ ‫کاربران‬ ‫و‬ ‫افزار‬ ‫نرم‬ ‫برای‬ ‫مشکل‬ .‫میشود‬ ‫شناسایی‬ ‫افزار‬ ‫نرم‬‫یابد‬ ‫ه‬
( ‫اشکال‬ ‫دارای‬ ‫که‬ ‫افزارهایی‬ ‫نرم‬ .‫نیاید‬ ‫پیش‬ ‫مشکالت‬ ‫این‬ ‫که‬Bug‫نویس‬ ‫برنامه‬ ‫مهارت‬ ‫و‬ ‫تجربگی‬ ‫کم‬ ‫خاطر‬ ‫به‬ ‫است‬ )
‫میدهد‬ ‫انجام‬ ‫را‬ ‫تست‬ ‫که‬ ‫کسی‬ ‫اگر‬ .‫ببرد‬ ‫باال‬ ‫را‬ ‫خود‬ ‫مهارت‬ ‫سطح‬ ‫که‬ ‫است‬ ‫موظف‬ ‫نویس‬ ‫برنامه‬ ‫اینجا‬ ‫در‬ ‫آید‬ ‫می‬ ‫وجود‬ ‫به‬
‫ا‬ ‫بسیاری‬ ‫که‬ ‫است‬ ‫ممکن‬ ‫باشد‬ ‫نویس‬ ‫برنامه‬ ‫خود‬.‫نشوند‬ ‫کشف‬ ‫وقت‬ ‫هیچ‬ ‫اشکاالت‬ ‫ز‬‫نرم‬ ‫شکست‬ ‫با‬ ‫مساوی‬ ‫کار‬ ‫این‬ ‫که‬
.‫باشد‬ ‫مجزا‬ ‫توسعه‬ ‫گروه‬ ‫از‬ ‫کننده‬ ‫تست‬ ‫تیم‬ ‫که‬ ‫میشود‬ ‫توصیه‬ ، ‫بنابراین‬ . ‫بود‬ ‫خواهد‬ ‫افزار‬
‫هنوز‬ ‫است‬ ‫بوده‬ ‫نویس‬ ‫برنامه‬ ‫خود‬ ‫آن‬ ‫کننده‬ ‫تست‬ ‫اینکه‬ ‫علت‬ ‫به‬ ‫هم‬ ‫سال‬ ‫چندین‬ ‫گذشت‬ ‫با‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫هایی‬ ‫افزار‬ ‫نرم‬
‫ا‬ ‫دارای‬ ‫هم‬‫میشود‬ ‫افزار‬ ‫نرم‬ ‫شدن‬ ‫کیفیت‬ ‫کم‬ ‫باعث‬ ‫زمان‬ ‫مرور‬ ‫به‬ ‫ها‬ ‫اشکال‬ ‫این‬ .‫میباشد‬ ‫شکال‬.[7]
5
‫جدول‬2‫برنامه‬ ‫تست‬ ‫و‬ ‫زدایی‬ ‫اشکال‬ ‫تفاوت‬[8]
‫زدایی‬ ‫اشکال‬Debugging( ‫کردن‬ ‫تست‬Testing)
‫هدف‬( ‫اشکاالت‬ ‫رفع‬Bug)‫انتظار‬ ‫مورد‬ ‫کیفیت‬ ‫تضمین‬ ‫و‬ ‫ارزیابی‬
‫مور‬ ‫یا‬ ‫موضوع‬‫د‬‫برنامه‬)‫افزار‬ ‫نرم‬ ‫شامل‬ ( ‫سیستم‬
‫کار‬‫اشتباهات‬ ‫و‬ ‫خطاها‬ ‫تصحیح‬‫خطاها‬ ‫شناسایی‬
‫دهنده‬ ‫انجام‬‫نویس‬ ‫برنامه‬‫کننده‬ ‫تست‬
‫شروع‬‫افزار‬ ‫نرم‬ ‫کدهای‬ ‫نوشتن‬ ‫از‬ ‫بعد‬‫میشود‬ ‫شروع‬ ‫نیازها‬ ‫شناسایی‬ ‫مرحله‬ ‫از‬ ‫تست‬ ‫طرح‬ ‫یک‬
‫پایان‬--------‫کند‬ ‫می‬ ‫اعالم‬ ‫تست‬ ‫مسئول‬
0.1‫افزار‬ ‫نرم‬ ‫تست‬ ‫چرخه‬
‫ا‬‫در‬ ‫تست‬ ‫فرآیند‬ ‫گرچه‬‫های‬ ‫شرکت‬‫میباشد‬ ‫زیر‬ ‫چرخه‬ ‫چندین‬ ‫داری‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫اما‬ ‫است‬ ‫متفاوت‬ ‫مختلف‬
‫انجام‬ ‫افزار‬ ‫نرم‬ ‫زندگی‬ ‫چرخه‬ ‫نیازها‬ ‫تحلیل‬ ‫فاز‬ ‫در‬ ‫باید‬ ‫تست‬ ‫فرآیند‬ :‫نیازها‬ ‫تحلیل‬‫بپذیرد‬.
‫تحلیل‬‫تست‬ ‫طراحی‬ ‫فاز‬ ‫طی‬ ‫در‬ : ‫طراحی‬‫گان‬ ‫کنند‬‫شود‬ ‫مشخص‬ ‫تا‬ ‫میکنند‬ ‫همکاری‬ ‫طراحان‬ ‫با‬‫قسمت‬ ‫کدام‬ ‫که‬
‫کدام‬ ‫از‬ ‫تست‬ ‫هنگام‬ ‫در‬ ‫و‬ ‫است‬ ‫تست‬ ‫قابل‬ ‫طراحی‬ ‫از‬‫ها‬ ‫پارامتر‬.‫شود‬ ‫استفاده‬ ‫باید‬
‫میشود‬ ‫مشخص‬ ‫تست‬ ‫استراتژی‬ ‫مرحله‬ ‫این‬ ‫در‬ :‫تست‬ ‫طراحی‬
‫تست‬ :‫تست‬ ‫اجرای‬‫گان‬ ‫کنند‬‫دهنده‬ ‫توسعه‬ ‫تیم‬ ‫به‬ ‫را‬ ‫خطا‬ ‫گونه‬ ‫هر‬ ‫و‬ ‫میکنند‬ ‫تست‬ ‫و‬ ‫کرده‬ ‫اجرا‬ ‫را‬ ‫افزار‬ ‫نرم‬
‫میکنند‬ ‫گزارش‬
:‫تست‬ ‫گزارش‬‫تست‬ ‫شد‬ ‫تکمیل‬ ‫تست‬ ‫فرآیند‬ ‫اینکه‬ ‫از‬ ‫بعد‬‫گان‬ ‫کنند‬‫گزارش‬ ‫یک‬ ‫قالب‬ ‫در‬ ‫را‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫نتایج‬
.‫خیر‬ ‫یا‬ ‫است‬ ‫استفاده‬ ‫قابل‬ ‫افزار‬ ‫نرم‬ ‫آیا‬ ‫که‬ ‫شود‬ ‫می‬ ‫مشخص‬ ‫و‬ ‫میکنند‬ ‫تهیه‬[9]
0.1‫ها‬ ‫تست‬ ‫بندی‬ ‫دسته‬
‫صورت‬ ‫دو‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫تست‬‫ساكن‬8
‫پویا‬ ‫و‬9
‫ا‬ ‫را‬ ‫برنامه‬ ‫پویا‬ ‫تست‬ ‫روش‬ ‫در‬ ‫میشود‬ ‫انجام‬‫آن‬ ‫نتایج‬ ‫سپس‬ ‫و‬ ‫کرده‬ ‫جرا‬
‫و‬ ‫میگیرد‬ ‫قرار‬ ‫بررسی‬ ‫مورد‬‫تست‬‫ساکن‬‫تحلیل‬.‫شود‬ ‫اجرا‬ ‫برنامه‬ ‫اینکه‬ ‫بدون‬ ‫است‬ ‫افزار‬ ‫نرم‬ ‫کدهای‬
‫تست‬‫ساکن‬‫و‬ ‫کدها‬ ‫یعنی‬ ‫میکنیم‬ ‫بررسی‬ ‫آن‬ ‫ساختاری‬ ‫شکل‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫آن‬ ‫طی‬ ‫که‬ ‫میشود‬ ‫گفته‬ ‫هایی‬ ‫فعالیت‬ ‫مجموعه‬ ‫به‬
‫است‬ ‫شده‬ ‫ساخته‬ ‫آن‬ ‫برای‬ ‫که‬ ‫هایی‬ ‫دیاگرام‬.‫میدهیم‬ ‫قرار‬ ‫بازبینی‬ ‫مورد‬ ‫را‬‫ندارد‬ ‫نیاز‬ ‫قبلی‬ ‫دانش‬ ‫هیچ‬ ‫به‬ ‫پویا‬ ‫تست‬ ‫اما‬
8
Static
9
Daynamic
6
‫تست‬‫ساکن‬‫پذیرد‬ ‫انجام‬ ‫متخصص‬ ‫یک‬ ‫توسط‬ ‫باید‬ ‫حتما‬‫نرم‬ ‫که‬ ‫کسی‬ ‫به‬ ‫ریپورت‬ ‫یک‬ ‫که‬ ‫است‬ ‫این‬ ‫ساکن‬ ‫تست‬ ‫خوبی‬
‫م‬ ‫انجام‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫طی‬ ‫در‬ ‫تست‬ ‫این‬ ‫که‬ ‫این‬ ‫همیچنان‬ ‫و‬ .‫میشود‬ ‫داده‬ ‫است‬ ‫کرده‬ ‫ایجاد‬ ‫را‬ ‫افزار‬‫اینکه‬ ‫از‬ ‫بعد‬ ‫نه‬ ‫یشود‬
.‫میکند‬ ‫تر‬ ‫نزدیک‬ ‫هدفش‬ ‫به‬ ‫را‬ ‫نویس‬ ‫برنامه‬ ‫کار‬ ‫این‬ . ‫باشد‬ ‫کرده‬ ‫تمام‬ ‫را‬ ‫برنامه‬ ‫نویس‬ ‫برنامه‬
0.1‫سنجی‬ ‫اعتبار‬‫افزار‬ ‫نرم‬ ‫بازبینی‬ ‫و‬ ‫افزار‬ ‫نرم‬
‫سنجی‬ ‫اعتبار‬10
‫بینی‬ ‫باز‬ ‫و‬ ‫افزار‬ ‫نرم‬11
‫افزار‬ ‫نرم‬‫در‬‫انجینری‬‫نرم‬‫به‬ ‫افزار‬‫فعالیتی‬‫می‬ ‫گفته‬‫که‬ ‫شود‬‫ای‬ ‫طول‬ ‫در‬‫نرم‬ ‫جاد‬
‫نه؟‬ ‫یا‬ ‫دارد‬ ‫را‬ ‫دلخواه‬ ‫کیفیت‬ ‫برنامه‬ ‫که‬ ‫شود‬ ‫مشخص‬ ‫اینکه‬ ‫تا‬ ‫میشود‬ ‫انجام‬ ‫افزار‬ ‫نرم‬ ‫کار‬ ‫اتمام‬ ‫از‬ ‫بعد‬ ‫یا‬ ‫و‬ ‫افزار‬
:‫افزار‬ ‫نرم‬ ‫بازبینی‬‫میشود؟‬ ‫ساخته‬ ‫صحیح‬ ‫صورت‬ ‫به‬ ‫محصول‬ ‫آیا‬
Verification : Are you building it right?
‫افزار‬ ‫نرم‬ ‫بازبینی‬ ‫در‬‫را‬ ‫موضوع‬ ‫این‬.‫هست‬ ‫ما‬ ‫اهداف‬ ‫با‬ ‫مطابق‬ ‫ایم‬ ‫کرده‬ ‫ایجاد‬ ‫که‬ ‫محصولی‬ ‫که‬ ‫میکنیم‬ ‫بررسی‬
‫اختالل‬ ‫ایجاد‬ ‫باعث‬ ‫که‬ ‫میکند‬ ‫عمل‬ ‫آن‬ ‫برخالف‬ ‫ولی‬ ‫دهد‬ ‫انجام‬ ‫را‬ ‫عملیه‬ ‫یک‬ ‫باید‬ ‫افزار‬ ‫نرم‬ ‫از‬ ‫قسمت‬ ‫یک‬ ‫مثال‬ ‫طور‬ ‫به‬
‫میشود‬ ‫سیستم‬ ‫کل‬ ‫در‬
‫سنجی‬ ‫اعتبار‬:‫افزار‬ ‫نرم‬‫میشود؟‬ ‫ساخته‬ ‫صحیحی‬ ‫محصول‬ ‫آیا‬
Validation: Are you building the right thing?
‫میتواند‬ ‫را‬ ‫مشتری‬ ‫های‬ ‫خواسته‬ ‫آیا‬ ‫شده‬ ‫ایجاد‬ ‫افزار‬ ‫نرم‬ ‫که‬ ‫است‬ ‫این‬ ‫کننده‬ ‫تست‬ ‫و‬ ‫نویس‬ ‫برنامه‬ ‫نظر‬ ‫سنجی‬ ‫اعتبار‬ ‫در‬
‫؟‬ ‫نه‬ ‫یا‬ ‫کند‬ ‫پوره‬.‫میشود‬ ‫انجام‬ ‫نیازها‬ ‫با‬ ‫مقایسه‬ ‫در‬ ‫همیشه‬ ‫اعتبارسنجی‬
‫که‬ ‫است‬ ‫کرده‬ ‫ما‬ ‫از‬ ‫درخواستی‬ ‫یک‬ ‫کاربر‬ ‫مثال‬ ‫طور‬ ‫به‬‫نمایش‬ ‫دیگر‬ ‫نحوی‬ ‫به‬ ‫قابلیت‬ ‫این‬ ‫ولیکن‬ ‫باشد‬ ‫افزار‬ ‫نرم‬ ‫در‬ ‫باید‬
.‫کند‬ ‫ایجاد‬ ‫را‬ ‫قابلیت‬ ‫که‬ ‫است‬ ‫موظف‬ ‫نویس‬ ‫پروگرام‬ ‫بنابراین‬ .‫میدهد‬[10]
0.01‫دارد؟‬ ‫قرار‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫چرخه‬ ‫یا‬ ‫فرآیند‬ ‫مرحله‬ ‫کدام‬ ‫در‬ ‫افزار‬ ‫نرم‬ ‫تست‬
‫تست‬ ‫به‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫مهم‬ ‫های‬ ‫بخش‬ ‫از‬ ‫یکی‬ ‫زیر‬ ‫شکل‬ ‫در‬‫که‬ ‫میدهد‬ ‫نشان‬ ‫این‬ .‫است‬ ‫داده‬ ‫تخصیص‬ ‫افزار‬ ‫نرم‬
‫فقط‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫طی‬ ‫در‬ ‫که‬ ‫نیست‬ ‫معنی‬ ‫این‬ ‫به‬ ‫این‬ . ‫است‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫نشدنی‬ ‫جدا‬ ‫اجزای‬ ‫از‬ ‫افزار‬ ‫نرم‬ ‫تست‬
‫فوکس‬ ‫بیشترین‬ ‫مرحله‬ ‫این‬ ‫در‬ ‫کم‬ ‫مقدار‬ ‫به‬ ‫اما‬ ‫میشود‬ ‫انجام‬ ‫تست‬ ‫مراحل‬ ‫تمام‬ ‫در‬ . ‫میشود‬ ‫انجام‬ ‫تست‬ ‫آن‬ ‫چهارم‬ ‫مرحله‬ ‫در‬
‫خدمات‬ ‫یا‬ ‫نگهداری‬ ‫مرحله‬ ‫از‬ ‫قبل‬ ‫افزار‬ ‫نرم‬ ‫تست‬ .‫دارد‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫در‬ ‫زیاد‬ ‫اهمیت‬ ‫بنابراین‬ .‫میاشد‬ ‫تست‬ ‫روی‬ ‫بر‬
.‫دهد‬ ‫انجام‬ ‫را‬ ‫فعالیتی‬ ‫که‬ ‫دارد‬ ‫را‬ ‫این‬ ‫قابلیت‬ ‫برنامه‬ ‫و‬ ‫است‬ ‫شده‬ ‫کامل‬ ‫نویسی‬ ‫برنامه‬ ‫مرحله‬ ‫این‬ ‫در‬ . ‫میباشد‬ ‫تولید‬ ‫از‬ ‫بعد‬
10
Validation
11
Verification
7
‫شکل‬2:‫مرح‬‫افزار‬ ‫نرم‬ ‫تست‬ ‫شروع‬ ‫اصلی‬ ‫له‬
0.00‫استانداردهای‬‫افزار‬ ‫نرم‬ ‫تست‬
.‫میشود‬ ‫تست‬ ‫پروسه‬ ‫شدن‬ ‫بهتر‬ ‫باعث‬ ‫استانداردها‬ ‫این‬ .‫میباشد‬ ‫استانداردهای‬ ‫دارای‬ ‫کمپیوتر‬ ‫علوم‬ ‫همه‬ ‫مانند‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫تست‬
[17]
ISO/IEC 9126: This standard deals with the following aspects to determine the quality of a
software application:
1. Quality model
2. External metrics
3. Internal metrics
4. Quality in use metrics.
This standard presents some set of quality attributes for any Software such as:
1. Functionality
2. Reliability
3. Usability
4. Efficiency
5. Maintainability
6. Portability
IEEE 829: A standard for the format of documents used in different stages of software
testing.
IEEE 1061: A methodology for establishing quality requirements, identifying, implementing,
nalyzing, and validating the process and product of software quality metrics is defined.
BS 7925-1: A vocabulary of terms used in software testing.
BS 7925-2: A standard for software component testing.
8
IEEE 1008: A standard for unit testing.
IEEE 1012: A standard for Software Verification and Validation.
0.04‫فصل‬ ‫خالصه‬‫اول‬
‫افزار‬ ‫نرم‬ ‫تست‬ .‫کنیم‬ ‫بازگو‬ ‫را‬ ‫آن‬ ‫اهمیت‬ ‫همچنین‬ ‫و‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫از‬ ‫درستی‬ ‫تعریف‬ ‫که‬ ‫بود‬ ‫این‬ ‫بر‬ ‫سعی‬ ‫فصل‬ ‫این‬ ‫در‬
‫اهمیت‬ ‫آن‬ ‫به‬ ‫یا‬ ‫و‬ ‫ندهیم‬ ‫انجام‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫که‬ ‫صورتی‬ ‫در‬ . ‫است‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫نشدنی‬ ‫جدا‬ ‫های‬ ‫بخش‬ ‫از‬ ‫یکی‬
‫افزاری‬ ‫نرم‬ ‫که‬ ‫است‬ ‫ممکن‬ ‫نشود‬ ‫داده‬‫اینکه‬ ‫یا‬ ‫و‬ ‫نباشد‬ ‫برخوردار‬ ‫ای‬ ‫مالحظه‬ ‫قابل‬ ‫قابلیت‬ ‫و‬ ‫کیفیت‬ ‫از‬ ‫میکنیم‬ ‫تولید‬ ‫که‬
‫معنوی‬ ‫و‬ ‫مالی‬ ‫خسارات‬ ‫این‬ ‫که‬ ‫بیاورد‬ ‫بار‬ ‫به‬ ‫را‬ ‫زیادی‬ ‫خساراتی‬ ‫میشود‬ ‫باعث‬ ‫که‬ ‫شود‬ ‫مواجه‬ ‫شکست‬ ‫با‬ ‫ما‬ ‫افزار‬ ‫نرم‬
.‫است‬‫اس‬ ‫سازی‬ ‫افزار‬ ‫نرم‬ ‫شرکت‬ ‫دوش‬ ‫بر‬ ‫آید‬ ‫می‬ ‫بار‬ ‫به‬ ‫شکست‬ ‫نتیجه‬ ‫در‬ ‫که‬ ‫مالی‬ ‫خسارات‬‫بیشتر‬ ‫معنوی‬ ‫خسارات‬ .‫ت‬
.‫است‬ ‫نویس‬ ‫برنامه‬ ‫بر‬ ‫مستقیم‬ ‫تاثیر‬ ‫اوقات‬
‫جهانی‬ ‫سازمان‬ISO‫و‬IEEE‫نیز‬‫استانداردهای‬‫آن‬ ‫توسط‬ ‫که‬ ‫اند‬ ‫کرده‬ ‫ایجاد‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫و‬ ‫افزار‬ ‫نرم‬ ‫کیفیت‬ ‫برای‬
‫کیفیت‬ ‫آنها‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫افزارهای‬ ‫نرم‬‫شو‬ ‫می‬ ‫بهتر‬ ‫و‬ ‫بیشتر‬ ‫افزار‬ ‫نرم‬ ‫ماندگاری‬ ‫و‬.‫د‬
‫پارتو‬ ‫قانون‬:%81‫در‬ ‫نشده‬ ‫کشف‬ ‫خطاهاي‬21%‫است‬ ‫کد‬
‫دوم‬ ‫فصل‬
TESTING METHOD
10
‫دوم‬ ‫فصل‬
4.0‫افزار‬ ‫نرم‬ ‫تست‬
‫نرم‬ ‫تست‬ . ‫است‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫های‬ ‫بخش‬ ‫ترین‬ ‫مهم‬ ‫از‬ ‫یکی‬ ‫شد‬ ‫گفته‬ ‫قبلی‬ ‫فصل‬ ‫در‬ ‫که‬ ‫همانطور‬ ‫افزار‬ ‫نرم‬ ‫تست‬
‫شود‬ ‫بازار‬ ‫وارد‬ ‫اینکه‬ ‫از‬ ‫قبل‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫کار‬ ‫درستی‬ ‫میتواند‬ ‫و‬ ‫میکند‬ ‫بررسی‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫یک‬ ‫اعتبار‬ ‫و‬ ‫کیفیت‬ ‫افزار‬
.‫کند‬ ‫بررسی‬ ‫را‬‫افزار‬ ‫نرم‬ ‫تست‬ ‫برای‬ .‫دهد‬ ‫اطمینان‬ ‫اند‬ ‫کرده‬ ‫که‬ ‫کاری‬ ‫از‬ ‫را‬ ‫دهنده‬ ‫توسعه‬ ‫تیم‬ ‫که‬ ‫میشود‬ ‫باعث‬ ‫کار‬ ‫این‬
‫دارد‬ ‫وجود‬ ‫مختلفی‬ ‫های‬ ‫روش‬‫کمبودی‬ ‫و‬ ‫ها‬ ‫مزیت‬ ‫دارای‬ ‫روش‬ ‫هر‬ .‫ا‬ ‫با‬ ‫که‬ ‫میباشد‬ ‫های‬‫میتوان‬ ‫روش‬ ‫چند‬ ‫از‬ ‫ستفاده‬
‫کمبودی‬‫میشو‬ ‫تولید‬ ‫که‬ ‫افزارهایی‬ ‫نرم‬ ‫بیشتر‬ .‫کرد‬ ‫تصریح‬ ‫را‬ ‫آن‬ ‫های‬‫ن‬‫میکنند‬ ‫استفاده‬ ‫کلی‬ ‫روش‬ ‫دو‬ ‫از‬ ‫د‬.(White Box
Testing)‫و‬(Black Box Testing)‫مورد‬ ‫که‬ ‫است‬ ‫روشی‬ ‫دو‬‫استفاده‬.‫دارند‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫در‬ ‫بیشتری‬
(‫سفید‬ ‫جعبه‬ ‫تست‬White Box Testing)‫میکنند‬ ‫صرف‬ ‫را‬ ‫خود‬ ‫وقت‬ ‫بیشترین‬ ‫دارند‬ ‫برعهده‬ ‫را‬ ‫برنامه‬ ‫تست‬ ‫که‬ ‫کسانی‬
‫در‬ ‫که‬ ‫دلیل‬ ‫این‬ ‫به‬‫و‬ ‫کدها‬ ‫تمام‬ ‫آنها‬ .‫است‬ ‫برنامه‬ ‫کدهای‬ ‫بر‬ ‫تمرکز‬ ‫روش‬ ‫این‬‫متد‬‫های‬‫موجود‬‫بررسی‬ ‫مورد‬ ‫را‬ ‫برنامه‬ ‫در‬
‫میگیرد‬ ‫بر‬ ‫در‬ ‫را‬ ‫زیادی‬ ‫هزینه‬ ‫و‬ ‫وقت‬ ‫دلیل‬ ‫همین‬ ‫به‬ ‫میدهند‬ ‫قرار‬
( ‫سیاه‬ ‫جعبه‬ ‫تست‬Black Box Testing)‫کدهای‬ ‫به‬ ‫کاری‬ ‫دارند‬ ‫برعهده‬ ‫را‬ ‫برنامه‬ ‫تست‬ ‫که‬ ‫کسانی‬ ‫روش‬ ‫این‬ ‫در‬
‫ندا‬ ‫برنامه‬‫که‬ ‫کسی‬ ‫نیست‬ ‫نیازی‬ ‫روش‬ ‫این‬ ‫در‬ ‫اینکه‬ ‫یعنی‬ ‫میدهند‬ ‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫را‬ ‫برنامه‬ ‫های‬ ‫خروجی‬ ‫فقط‬ ‫آنها‬ ‫رند‬
‫که‬ ‫مشکالتی‬ ‫و‬ ‫میکنند‬ ‫کار‬ ‫برنامه‬ ‫با‬ ‫که‬ ‫میباشند‬ ‫برنامه‬ ‫کاربران‬ ‫آنها‬ ‫حقیقت‬ ‫در‬ .‫بداند‬ ‫چیزی‬ ‫تست‬ ‫علم‬ ‫از‬ ‫است‬ ‫کننده‬ ‫تست‬
‫گز‬ ‫یک‬ ‫صورت‬ ‫به‬ ‫را‬ ‫میکنند‬ ‫پیدا‬ ‫برنامه‬ ‫با‬ ‫کار‬ ‫حین‬ ‫در‬.‫میکنند‬ ‫ارائه‬ ‫دهنده‬ ‫توسعه‬ ‫تیم‬ ‫به‬ ‫ارش‬
4.4Black Box Testing
‫شکل‬1:‫عمومی‬ ‫حالت‬Black Box
11
‫افزاری‬ ‫نرم‬‫کرد‬ ‫تست‬ ‫برای‬‫ن‬‫گروه‬ ‫جزء‬ ‫شما‬ ‫یا‬ ‫و‬ ‫باشد‬ ‫شده‬ ‫ساخته‬ ‫شما‬ ‫برای‬ ‫است‬ ‫ممکن‬ ‫افزار‬ ‫نرم‬ ‫این‬ . ‫دارد‬ ‫وجود‬
.‫باشید‬ ‫تست‬‫ای‬ ‫کرد‬ ‫کار‬ ‫از‬ ‫بتوانیم‬ ‫اینکه‬ ‫برای‬‫توسعه‬ ‫تیم‬ ‫توسط‬ ‫که‬ ‫هایی‬ ‫قابلیت‬ ‫است‬ ‫این‬ ‫راه‬ ‫بهترین‬ ‫شویم‬ ‫مطلع‬ ‫برنامه‬ ‫ن‬
‫و‬ ‫کدها‬ ‫از‬ ‫ما‬ ‫حقیقت‬ ‫در‬ .‫کنیم‬ ‫اجرا‬ ‫را‬ ‫برنامه‬ ‫آن‬ ‫از‬ ‫بعد‬ ‫و‬ ‫دهیم‬ ‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫را‬ ‫است‬ ‫شده‬ ‫داده‬ ‫افزار‬ ‫نرم‬‫متد‬‫های‬
‫ندا‬ ‫را‬ ‫اطالعات‬ ‫این‬ ‫اینکه‬ ‫فهم‬ ‫با‬ ‫و‬ ‫نداریم‬ ‫اطالعی‬ ‫هیچ‬ ‫است‬ ‫موجود‬ ‫برنامه‬ ‫این‬ ‫در‬ ‫که‬‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫را‬ ‫برنامه‬ ‫ریم‬
.‫میدهیم‬( ‫نداریم‬ ‫اطالعی‬ ‫افزار‬ ‫نرم‬ ‫کدهای‬ ‫از‬ ‫ما‬ ‫که‬ ‫این‬ ‫دلیل‬ ‫به‬ ‫تست‬ ‫این‬ ‫در‬11‫انجام‬ ‫را‬ ‫تست‬ ‫این‬ ‫که‬ ‫کسانی‬ ‫از‬ ‫درصد‬
‫فقط‬ ‫ما‬ ‫علت‬ ‫این‬ ‫به‬ )‫ندارند‬ ‫یاد‬ ‫را‬ ‫نویسی‬ ‫برنامه‬ ‫اصال‬ ‫میدهند‬‫مشخص‬ ‫افزار‬ ‫نرم‬ ‫در‬ ‫ما‬ ‫برای‬ ‫نویس‬ ‫برنامه‬ ‫که‬ ‫اهدافی‬
‫را‬ ‫است‬ ‫کرده‬‫چیز‬ ‫به‬ ‫و‬ ‫میدهیم‬ ‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫را‬ ‫برنامه‬ ‫های‬ ‫خروجی‬ ‫و‬ ‫ها‬ ‫ورودی‬ ‫یعنی‬ . ‫میگیریم‬ ‫بررسی‬ ‫مورد‬
. ‫میدهیم‬ ‫گزارش‬ ‫نویس‬ ‫برنامه‬ ‫به‬ ‫را‬ ‫آن‬ ‫کردیم‬ ‫پیدا‬ ‫افزار‬ ‫نرم‬ ‫اجرا‬ ‫در‬ ‫مشکلی‬ ‫اگر‬ ‫و‬ ‫نمیکنم‬ ‫دخالت‬ ‫دیگر‬‫روش‬ ‫این‬
.‫ندارد‬ ‫نویسی‬ ‫برنامه‬ ‫همچنین‬ ‫و‬ ‫کدها‬ ‫فهمیدن‬ ‫به‬ ‫زیادی‬ ‫نیازی‬
4.4.0‫م‬‫روش‬ ‫این‬ ‫زایای‬
‫کرد‬ ‫پیدا‬ ‫را‬ ‫مشکالت‬ ‫میتوان‬ ‫سریع‬ ‫صورت‬ ‫به‬
‫میگیرد‬ ‫بر‬ ‫در‬ ‫را‬ ‫کمتری‬ ‫وقت‬ ‫یعنی‬ .‫است‬ ‫ارزان‬
‫باشیم‬ ‫داشته‬ ‫برنامه‬ ‫کدهای‬ ‫و‬ ‫نویسی‬ ‫برنامه‬ ‫زمینه‬ ‫در‬ ‫کافی‬ ‫مهارت‬ ‫که‬ ‫نیست‬ ‫نیازی‬
‫ج‬ ‫را‬ ‫نظر‬ ‫مورد‬ ‫فرد‬ ‫که‬ ‫نیست‬ ‫نیازی‬ ‫بنابراین‬ .‫دهند‬ ‫انجام‬ ‫را‬ ‫تست‬ ‫این‬ ‫میتوانند‬ ‫مختلفی‬ ‫افراد‬‫کنیم‬ ‫ستجو‬
‫و‬ ‫اند‬ ‫نشده‬ ‫استفاده‬ ‫که‬ ‫کدهایی‬ ‫به‬ .‫اند‬ ‫گرفته‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫که‬ ‫میشود‬ ‫تست‬ ‫ای‬ ‫برنامه‬ ‫کدهای‬ ‫روش‬ ‫این‬ ‫در‬
‫نداریم‬ ‫کاری‬ ‫ندارند‬ ‫را‬ ‫خاصی‬ ‫نقش‬ ‫برنامه‬ ‫در‬ ‫اما‬ ‫اند‬ ‫شده‬ ‫استفاده‬ ‫اینکه‬ ‫یا‬‫روی‬ ‫بر‬ ‫تنها‬ ‫ما‬ ‫های‬ ‫ورودی‬ ‫یعنی‬ .
‫اجرا‬ ‫را‬ ‫برنامه‬ ‫است‬ ‫قرار‬ ‫که‬ ‫میشود‬ ‫تست‬ ‫کدهایی‬‫وظیفه‬ ‫پشت‬ ‫در‬ ‫و‬ ‫است‬ ‫افزار‬ ‫نرم‬ ‫در‬ ‫که‬ ‫کدهایی‬ ‫به‬ ‫و‬ ‫کنند‬
.‫نمیگیرد‬ ‫ارتباط‬ ‫دارند‬
‫روش‬ ‫در‬Black Box Testing‫میکنیم‬ ‫بررسی‬ ‫را‬ ‫زیر‬ ‫موارد‬ ‫معموال‬
‫این‬ ‫آیا‬‫افزار‬ ‫نرم‬‫میتواند؟‬ ‫اجرا‬ ‫را‬ ‫است‬ ‫کرده‬ ‫تعریف‬ ‫که‬ ‫عملیاتی‬ ‫غیر‬ ‫و‬ ‫عملیاتی‬ ‫های‬ ‫نیازمندی‬
‫های‬ ‫ورودی‬‫افزار‬ ‫نرم‬‫یا‬ ‫دارند‬ ‫اعتبار‬‫نه؟‬
‫ها‬ ‫ورودی‬‫صورت‬ ‫به‬ ‫که‬ ‫یی‬‫کمترین‬ ‫و‬ ‫بیشترین‬‫این‬ ‫در‬‫افزار‬ ‫نرم‬‫قبول‬ ‫مورد‬ ‫است‬ ‫شده‬ ‫تعیین‬‫افزار‬ ‫نرم‬‫است‬
‫نه؟‬ ‫یا‬
‫ها‬ ‫خروجی‬‫دارد‬ ‫انطباق‬ ‫افزار‬ ‫نرم‬ ‫ها‬ ‫ورودی‬ ‫با‬ ‫افزار‬ ‫نرم‬‫نه؟‬ ‫یا‬
‫عملکرد‬‫افزار‬ ‫نرم‬‫برابر‬ ‫در‬‫پروسز‬‫قابل‬ ‫غیر‬ ‫و‬ ‫جدید‬ ‫های‬ ‫ورودی‬‫افزار‬ ‫نرم‬ ‫قبول‬‫است؟‬ ‫چگونه‬
[7]
.44.4Equivalence partitioning‫مشابهات‬ ‫بندی‬ ‫(دسته‬12
)
12
Equivalence partitioning
12
[12]
:‫میکند‬ ‫دنبال‬ ‫را‬ ‫زیر‬ ‫اهداف‬ ‫که‬ ‫است‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫به‬ ‫مربوط‬ ‫روش‬ ‫یک‬
‫به‬ ‫تست‬ ‫موارد‬ ‫تعداد‬ ‫کاهش‬‫مصرف‬ ‫تست‬ ‫اجرای‬ ‫در‬ ‫کمتری‬ ‫هزینه‬ ‫و‬ ‫وقت‬ ‫میشود‬ ‫باعث‬ ‫که‬ ‫مقدار‬ ‫کمترین‬
.‫شود‬
‫همه‬ ‫تا‬ ‫درست‬ ‫تست‬ ‫موارد‬ ‫انتخاب‬‫را‬ ‫برنامه‬ ‫های‬ ‫قسمت‬‫های‬ ‫برگیرنده‬ ‫در‬ ‫تست‬ ‫موارد‬ ‫این‬ . ‫شود‬ ‫شامل‬
.‫باشد‬ ‫باید‬ ‫برنامه‬ ‫خروجی‬ ‫و‬ ‫ورودی‬ ‫های‬ ‫راه‬
‫میشود‬ ‫اعمال‬ ‫نیز‬ ‫افزار‬ ‫نرم‬ ‫های‬ ‫خروجی‬ ‫در‬ ‫مشابهات‬ ‫بندی‬ ‫دسته‬ ‫موارد‬ ‫از‬ ‫بعضی‬ ‫در‬‫به‬ ‫روش‬ ‫این‬ ‫به‬ ‫معموال‬ ،
‫یک‬ ‫های‬ ‫ورودی‬‫اجزاء‬‫رفتار‬ ‫ویژگیهای‬ ‫از‬ ‫معموال‬ ‫معادل‬ ‫های‬ ‫قسمت‬ .‫میشود‬ ‫اعمال‬‫اجزاء‬‫یک‬ .‫میشوند‬ ‫مشخص‬
‫ورودی‬‫محدوده‬13
‫سایر‬ ‫و‬ ‫مجازند‬ ‫که‬ ‫دارد‬ ‫خاصی‬ ‫های‬‫محدوده‬‫برای‬ ‫درست‬ ‫اعداد‬ ‫مثال‬ ‫طور‬ ‫به‬ .‫مجازند‬ ‫غیر‬ ‫ها‬
‫از‬ ‫ماه‬ ‫ورود‬2‫تا‬21‫این‬ .‫است‬ ‫حوت‬ ‫تا‬ ‫حمل‬ ‫دهنده‬ ‫نشان‬ ‫که‬ ‫است‬‫محدوده‬‫از‬ ‫بیشتر‬ ‫مقادیر‬ ‫بعدی‬ ‫مجاز‬ ‫غیر‬21
.‫هستند‬
‫روش‬‫کردن‬ ‫تست‬‫افزار‬ ‫نرم‬‫دسته‬ ‫به‬ ‫مربوط‬ ‫که‬‫است‬ ‫مشابهات‬ ‫بندی‬‫تست‬ ‫استراتژی‬ ‫یک‬ ‫فقط‬ ‫که‬ ‫میکند‬ ‫بیان‬ ‫را‬ ‫این‬
‫ندارد‬ ‫لزوم‬ ‫دیگری‬ ‫های‬ ‫استراتژی‬ ‫و‬ ‫میکند‬ ‫کفایت‬ ‫بخش‬ ‫هر‬ ‫برای‬‫اگر‬ ‫دیگر‬ ‫عبارت‬ ‫به‬ .‫در‬ ‫را‬ ‫تست‬ ‫استراتژی‬ ‫یک‬
. ‫نمیشود‬ ‫دیگری‬ ‫های‬ ‫استراتژی‬ ‫به‬ ‫دیگر‬ ‫نیازی‬ ‫بنابراین‬ .‫میکند‬ ‫کشف‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫خطاهای‬ ‫بدهیم‬ ‫انجام‬ ‫بخش‬ ‫هر‬
‫میشوند‬ ‫حساب‬ ‫معادل‬ ‫بخش‬ ‫یک‬ ‫مقادیر‬.‫میکند‬ ‫را‬ ‫ها‬ ‫جویی‬ ‫صرفه‬ ‫از‬ ‫بخشی‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫روش‬ ‫این‬ ‫و‬‫بنابراین‬ .
‫میزان‬ ‫به‬ ‫تست‬ ‫موارد‬ ‫تعداد‬‫ای‬ ‫مالحظه‬ ‫قابل‬‫تست‬ ‫موارد‬ ‫شما‬ ‫که‬ ‫است‬ ‫این‬ ‫روش‬ ‫این‬ ‫مزایای‬ ‫از‬ ‫یکی‬ .‫باید‬ ‫می‬ ‫کاهش‬
"dirty.‫میکنید‬ ‫شناسایی‬ ‫را‬ "‫ت‬ ‫که‬ ‫است‬ ‫ممکن‬ ‫تجربه‬ ‫بی‬ ‫تستر‬ ‫یک‬‫از‬ ‫ها‬ ‫ماه‬ ‫در‬ ‫باال‬ ‫مثال‬ ‫مانند‬ ‫به‬ ‫را‬ ‫اعداد‬ ‫مام‬2‫تا‬
21‫تعداد‬ ‫که‬ ‫دهد‬ ‫قرار‬ ‫ها‬ ‫ورودی‬ ‫در‬ ‫هم‬ ‫را‬ ‫بیشتری‬ ‫یا‬ ‫و‬ ‫کمتر‬ ‫های‬ ‫ماه‬ ‫اینکه‬ ‫یا‬ ‫و‬ ‫بدهد‬ ‫قرار‬ ‫ها‬ ‫ورودی‬ ‫در‬ ‫را‬
. ‫است‬ ‫بیهوده‬ ‫ها‬ ‫تست‬ ‫این‬ ‫بیشتر‬ ‫که‬ ‫میشود‬ ‫انجام‬ ‫تست‬ ‫زیادی‬
‫دسته‬ ‫تعیین‬ ‫بر‬ ‫مبتنی‬ ‫مشابهات‬ ‫بندی‬ ‫دسته‬ ‫برای‬ ‫تست‬ ‫مورد‬‫بتوان‬ ‫اگر‬ .‫است‬ ‫ورودی‬ ‫شروط‬ ‫برای‬ ‫مشابه‬ ‫های‬
‫روابط‬ ‫توسط‬ ‫را‬ ‫اشیا‬ ‫از‬ ‫ای‬ ‫مجموعه‬‫متقارن‬‫اعد‬‫اد‬‫دسته‬ .‫دارد‬ ‫وجود‬ ‫مشابه‬ ‫دسته‬ ‫یک‬ ،‫داد‬ ‫پیوند‬ ‫هم‬ ‫به‬ ‫انعکاسی‬ ‫و‬ ‫ی‬
‫و‬ ‫معتبر‬ ‫حالت‬ ‫از‬ ‫ای‬ ‫مجموعه‬ ‫نشانگر‬ ‫مشابه‬‫معتب‬ ‫نا‬‫ر‬‫یک‬ ‫با‬ ‫معموال‬ ‫ورودی‬ ‫شرط‬ ‫هر‬ . ‫است‬ ‫ورودی‬ ‫شرایط‬ ‫برای‬
‫عددی‬ ‫مقدار‬‫محد‬‫وده‬‫را‬ ‫مشابه‬ ‫های‬ ‫دسته‬ . ‫است‬ ‫بولی‬ ‫شرط‬ ‫یک‬ ‫با‬ ‫مرتبط‬ ‫مقادیر‬ ‫از‬ ‫ای‬ ‫مجموعه‬ ،‫مقادیر‬ ‫از‬ ‫ای‬
:‫نمود‬ ‫تعریف‬ ‫زیر‬ ‫های‬ ‫دستورالعمل‬ ‫طبق‬ ‫میتوان‬
،‫ورودی‬ ‫شرط‬ ‫اگر‬‫محدوده‬‫مشابه‬ ‫دسته‬ ‫دو‬ ‫و‬ ‫معتبر‬ ‫مشابه‬ ‫دسته‬ ‫یک‬ ،‫کند‬ ‫مشخص‬ ‫را‬ ‫ای‬‫ن‬‫ا‬‫معتب‬‫ر‬‫تعریف‬
.‫میکند‬ ‫مشخص‬
‫ورودی‬ ‫شرط‬ ‫اگر‬‫مشخص‬ ‫مقداری‬‫د‬ ‫را‬‫ارا‬‫مشابه‬ ‫دسته‬ ‫دو‬ ‫و‬ ‫معتبر‬ ‫مشابه‬ ‫دسته‬ ‫یک‬ ،‫باشد‬‫معتب‬ ‫نا‬‫ر‬
‫شوند‬ ‫می‬ ‫تعریف‬
13
Confine
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing
Software testing

More Related Content

Featured

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Featured (20)

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 

Software testing

  • 1. ‫افغانستان‬ ‫اسالمی‬ ‫جمهوری‬ ‫عالی‬ ‫تحصیالت‬ ‫وزارت‬ ‫بلخ‬ ‫دانشگاه‬ ‫ساینس‬ ‫کامپیوتر‬ ‫دانشکده‬ ‫افزار‬ ‫نرم‬ ‫دیپارتمنت‬ Software Testing: Comparison between white box testing and black box testing and traditional testing methods "‫"دانیال‬ ‫علی‬ ‫سید‬ ‫آخر‬ ‫سمستر‬ ‫چهارم‬ ‫صنف‬ ‫دیپارتمنت‬‫انجینری‬‫ا‬ ‫نرم‬‫فزار‬ ‫بلخ‬ ‫دانشگاه‬ ‫توسط‬ ‫شده‬ ‫ایجاد‬ ‫استاد‬‫نثار‬‫احمد‬"‫"نوری‬ ‫استادرهنما‬ ‫دیپارتمنت‬‫سیستم‬‫اطالعاتی‬ ‫پایگاهای‬ ‫بلخ‬ ‫دانشگاه‬ ‫رهنما‬ ‫استاد‬ 4102 ‫پاییز‬
  • 2. i APPROVAL It is approved that ………….. S/o ………….. Enrollment no ………… has successfully completed his final thesis/project as a partial fulfillment for his/her bachelor degree in computer science from the said department. Graduate Studies Committee ___________________________ Name (Convener) _______________ _______________ Name Name (Supervisor) (Member) ______________ _______________ Name Name (Member) (Member) Department of software engineering Balkh University
  • 3. ii ‫فهرست‬ ‫چک‬‫ی‬‫ده‬..........................................................................................................................................vii ‫نحوه‬‫نگارش‬‫مقاله‬............................................................................................................................ix ‫ب‬‫ی‬‫ان‬‫مسئله‬......................................................................................................................................ix ‫سوال‬‫مقاله‬.....................................................................................................................................ix ‫اهم‬‫ی‬‫ت‬‫و‬‫ضرورت‬‫ا‬‫ی‬‫ن‬‫مقاله‬................................................................................................................x ‫ا‬‫هداف‬‫مقاله‬.....................................................................................................................................x ‫فرض‬‫ی‬‫ات‬.........................................................................................................................................x ‫تعار‬‫ی‬‫ف‬‫مفهوم‬‫ی‬..............................................................................................................................xi ‫فصل‬‫اول‬.......................................................................................................................................1 ‫فصل‬‫اول‬.......................................................................................................................................2 1.1‫ک‬‫ی‬‫ف‬‫ی‬‫ت‬‫نرم‬‫افزار‬‫چ‬‫ی‬‫ست‬(Software Quality)‫؟‬.............................................................................2 2.1‫تست‬‫نرم‬‫افزار‬‫چ‬‫ی‬‫ست؟‬...............................................................................................................2 2.1‫اهم‬‫ی‬‫ت‬‫تست‬‫نرم‬‫افزار‬.................................................................................................................3 2.1‫اصول‬‫تست‬..............................................................................................................................3 2.1‫اهداف‬‫تست‬‫نرم‬‫افزار‬.................................................................................................................3 2.1‫اشکال‬‫زدا‬‫یی‬‫نرم‬‫افزار‬...............................................................................................................4 2.1.2‫تفاوت‬‫تست‬‫نرم‬‫افزار‬‫با‬‫اشکال‬‫زدا‬‫یی‬‫نرم‬‫افز‬‫ار‬.........................................................................4 2.1‫چرخه‬‫تست‬‫نرم‬‫افزار‬.................................................................................................................5 2.1‫دسته‬‫بند‬‫ی‬‫تست‬‫ها‬.....................................................................................................................5 2.1‫اعتبار‬‫سن‬‫ج‬‫ی‬‫نرم‬‫افزار‬‫و‬‫بازب‬‫ی‬‫ن‬‫ی‬‫نرم‬‫افزار‬....................................................................................6 2.21‫تست‬‫نرم‬‫افزار‬‫در‬‫کدام‬‫مرحله‬‫فرآ‬‫ی‬‫ند‬‫ی‬‫ا‬‫چرخه‬‫توسعه‬‫نرم‬‫افزار‬‫قرار‬‫دارد؟‬...........................................6 2.22‫استانداردها‬‫ی‬‫تست‬‫نرم‬‫افزار‬......................................................................................................7 2.21‫خالصه‬‫فصل‬‫اول‬....................................................................................................................8 ‫فصل‬‫دوم‬.......................................................................................................................................9 1.2‫تست‬‫نرم‬‫افزار‬........................................................................................................................11 1.1Black Box Testing.............................................................................................................11 1.1.2‫مزا‬‫ی‬‫ا‬‫ی‬‫ا‬‫ی‬‫ن‬‫روش‬..............................................................................................................11 1.1.1Equivalence partitioning(‫دسته‬‫بند‬‫ی‬‫مشابهات‬)................................................................11 1.1.1Boundary Value Analysis(‫تحل‬‫ی‬‫ل‬‫مقاد‬‫ی‬‫ر‬‫مرز‬‫ی‬)..............................................................13 1.1.1.2‫اعمال‬‫تحل‬‫ی‬‫ل‬‫مقاد‬‫ی‬‫ر‬‫مرز‬‫ی‬:...........................................................................................13 1.1.1Comparison Testing(‫تست‬‫مقا‬‫ی‬‫سه‬‫ا‬‫ی‬)..............................................................................15
  • 4. iii 1.1White Box Testing.............................................................................................................16 1.1.2‫مزا‬‫ی‬‫ا‬‫ی‬‫تست‬‫جعبه‬‫سف‬‫ی‬‫د‬......................................................................................................16 1.1.1‫معا‬‫ی‬‫ب‬‫تست‬‫جعبه‬‫سف‬‫ی‬‫د‬.......................................................................................................17 1.1.1Basis Path Testing......................................................................................................17 1.1.1.2‫گراف‬‫جر‬‫ی‬‫ان‬.............................................................................................................17 1.1.1.1‫پ‬‫ی‬‫چ‬‫ی‬‫دگ‬‫ی‬‫دوران‬‫ی‬.........................................................................................................21 1.1.1Condition / Branch Testing.......................................................................................21 1.1.1Loop Testing...............................................................................................................23 1.1Differences Between Black Box Testing and White Box Testing...................................24 1.1‫خالصه‬‫فصل‬.........................................................................................................................25 ‫فصل‬‫سوم‬....................................................................................................................................27 1.2Testing Levels..................................................................................................................27 1.1Unit Testing......................................................................................................................27 3.2.1‫تفاوت‬Unit Testing‫با‬Debugging................................................................................28 1.1Integration Testing............................................................................................................28 1.1.2‫مجتمع‬‫ساز‬‫ی‬(integrating testing)‫باال‬‫به‬‫پا‬‫یی‬‫ن‬..................................................................29 1.1.1‫مجتمع‬‫ساز‬‫ی‬(integrating testing)‫از‬‫پا‬‫یی‬‫ن‬‫به‬‫باال‬.............................................................29 1.1Regression Testing........................................................................................................31 1.1Acceptance testing.............................................................................................................31 1.1.2‫تست‬‫مح‬‫ی‬‫ط‬‫تول‬‫ی‬‫د‬(α-test)..................................................................................................31 1.1.1‫تست‬‫مح‬‫ی‬‫ط‬‫مصرف‬(β- test).............................................................................................31 1.1System Testing..................................................................................................................31 1.1‫تست‬‫اح‬‫ی‬‫ا‬Recovery...............................................................................................................31 1.1‫تست‬‫امن‬‫ی‬‫ت‬Security.............................................................................................................31 1.1‫تست‬‫فشار‬Stress..................................................................................................................31 1.21‫تست‬‫بار‬Load.....................................................................................................................31 1.22‫از‬‫نظر‬‫کارا‬‫یی‬Performance................................................................................................32 ‫خالصه‬‫فصل‬................................................................................................................................32 ‫فصل‬‫چهارم‬.................................................................................................................................35 1.2Other Testing....................................................................................................................35 1.1Gray Box Testing..............................................................................................................35 1.1.2‫مزا‬‫ی‬‫ا‬‫ی‬Gray Box Testing..............................................................................................36 1.1.1‫معا‬‫ی‬‫ب‬Gray Box Testing...............................................................................................36
  • 5. iv 1.1Installing Testing...............................................................................................................36 1.1Smoke and sanity testing...................................................................................................37 1.1.2‫مز‬‫ی‬‫ت‬‫ها‬‫ی‬‫آزمون‬‫دود‬........................................................................................................38 1.1.1sanity testing...............................................................................................................38 1.1Test Driven Development.................................................................................................38 1.1.2‫مراحل‬‫کار‬‫ی‬TDD.........................................................................................................41 ‫فصل‬‫پنجم‬....................................................................................................................................43 5.1‫ابزارها‬‫ی‬‫تست‬‫خود‬‫کار‬‫نرم‬‫افزار‬................................................................................................43 1.1xUnit..................................................................................................................................44 1.1EMMA..............................................................................................................................45 1.1iMacros..............................................................................................................................46 1.1HP LoadRunner................................................................................................................46 1.1HP WinRunner..................................................................................................................47 1.1Selenium............................................................................................................................47 1.1NUnit.................................................................................................................................48 ‫نت‬‫ی‬‫جه‬‫گ‬‫ی‬‫ر‬‫ی‬..................................................................................................................................51 ‫حرف‬‫آخر‬....................................................................................................................................51 ‫کلمات‬‫کل‬‫ی‬‫د‬‫ی‬.................................................................................................................................52 ‫منابع‬‫مأخذ‬....................................................................................................................................54
  • 6. v ‫فهرت‬‫ها‬ ‫شکل‬ ‫شکل‬2:‫مرحله‬‫اصل‬‫ی‬‫شروع‬‫تست‬‫نرم‬‫افزار‬..........................................................................................7 ‫شکل‬1:‫حالت‬‫عموم‬‫ی‬Black Box...................................................................................................11 ‫شکل‬1:‫تحل‬‫ی‬‫ل‬‫مرز‬‫ی‬......................................................................................................................14 ‫شکل‬4:‫حالت‬‫کل‬‫ی‬‫تست‬‫جعبه‬‫سف‬‫ی‬‫د‬....................................................................................................16 ‫شکل‬5:‫حالت‬‫ها‬‫ی‬‫مختلف‬‫گراف‬‫جر‬‫ی‬‫ان‬.............................................................................................18 ‫شکل‬6:‫جر‬‫ی‬‫ان‬‫ی‬‫ک‬‫عمل‬‫ی‬‫ه‬‫در‬‫نرم‬‫افزار‬..............................................................................................18 ‫شکل‬7:‫گراف‬‫جر‬‫ی‬‫ان‬‫مثال‬‫شکل‬1...................................................................................................19 ‫شکل‬8‫م‬‫نطق‬‫ترک‬‫ی‬‫ب‬‫ی‬.....................................................................................................................19 ‫شکل‬9:‫انواع‬‫حلقه‬‫ها‬.....................................................................................................................23 ‫شکل‬11:‫مجتمع‬‫ساز‬‫ی‬‫از‬‫باال‬‫به‬‫پا‬‫یی‬‫ن‬...............................................................................................29 ‫شکل‬11:‫مجتمع‬‫ساز‬‫ی‬‫از‬‫پا‬‫یی‬‫ن‬‫به‬‫باال‬..............................................................................................31 ‫شکل‬12:Flowchart TDD..........................................................................................................39 ‫شکل‬13:Flowchart TDD.........................................................................................................39 ‫شکل‬14:‫نحوه‬‫استفاده‬‫از‬xUnit‫در‬‫پرو‬‫گرام‬Eclipse.........................................................................44 ‫شکل‬15:‫بازخورد‬‫نرم‬‫افزار‬EMMA..............................................................................................45 ‫شکل‬16:iMacros......................................................................................................................46 ‫شکل‬17:HP LoadRunner.........................................................................................................46 ‫شکل‬18:HP WinRunner...........................................................................................................47 ‫شکل‬19:Selenium....................................................................................................................47 ‫شکل‬21:NUnit.........................................................................................................................48 ‫جدولها‬ ‫فهرست‬ ‫جدول‬2‫تفاوت‬‫اشکال‬‫زدا‬‫یی‬‫و‬‫تست‬‫برنامه‬[8]........................................................................................5 ‫جدول‬2:‫گزاره‬‫ها‬‫ی‬‫شرط‬‫ی‬.............................................................................................................22 ‫جدول‬3:‫تفاوت‬‫ب‬‫ی‬‫ن‬‫انواع‬‫تست‬‫ها‬......................................................................................................32
  • 7. vi ‫نامه‬ ‫سپاس‬ ‫ع‬ ‫به‬ ‫کسی‬ ‫انسان‬ ‫زندگی‬ ‫از‬ ‫مرحله‬ ‫هر‬ ‫در‬‫ن‬‫وان‬‫پ‬‫شتیبان‬‫باعث‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫کننده‬ ‫حمایت‬ ‫و‬‫پیشرفت‬‫از‬ ‫هم‬ ‫بنده‬ .‫میشود‬ ‫قاعده‬ ‫این‬‫مستثنی‬‫عنوان‬ ‫به‬ ‫کسی‬ ‫زندگیم‬ ‫از‬ ‫مرحله‬ ‫هر‬ ‫در‬ ‫و‬ ‫ام‬ ‫نبوده‬‫پشتیبان‬.‫است‬ ‫بوده‬ ‫در‬‫مرحله‬‫خود‬ ‫خلیفه‬ ‫زمین‬ ‫روی‬ ‫بر‬ ‫را‬ ‫انسان‬ ‫و‬ ‫است‬ ‫هستی‬ ‫جهان‬ ‫خالق‬ ‫او‬ .‫کنم‬ ‫گذاری‬ ‫سپاس‬ ‫بزرگ‬ ‫خداوند‬ ‫از‬ ‫باید‬ ‫اول‬ ‫دا‬ ‫قرار‬.‫ببریم‬ ‫پیش‬ ‫را‬ ‫خود‬ ‫زندگی‬ ‫که‬ ‫توانستیم‬ ‫او‬ ‫به‬ ‫توکل‬ ‫با‬ ‫و‬ ‫د‬‫از‬ ‫یکی‬ ‫به‬ ‫را‬ ‫من‬ ‫که‬ ‫دلیل‬ ‫این‬ ‫به‬ ‫گذارم‬ ‫سپاس‬ ‫را‬ ‫خداوند‬ ‫خوبی‬ ‫بنده‬ ‫من‬ ‫که‬ ‫چند‬ ‫هر‬ .‫باشم‬ ‫جامعه‬ ‫این‬ ‫در‬ ‫کرده‬ ‫تحصیل‬ ‫فرد‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫که‬ ‫توانستم‬ ‫و‬ ‫رساند‬ ‫آرزوهایم‬ ‫بزرگترین‬ .‫ام‬ ‫نبوده‬ ‫او‬ ‫برای‬ ‫خانوا‬ ‫از‬ ‫باید‬ ‫دوم‬ ‫مرحله‬ ‫در‬‫اند‬ ‫کرده‬ ‫همراهی‬ ‫همیشه‬ ، ‫داشتی‬ ‫چشم‬ ‫هیچ‬ ‫بدون‬ ‫خود‬ ‫دائمی‬ ‫های‬ ‫حمایت‬ ‫با‬ ‫مرا‬ ‫که‬ ‫خوبم‬ ‫ده‬ ‫را‬ ‫زیادی‬ ‫های‬ ‫سختی‬ ‫که‬ ‫میبوسم‬ ‫دور‬ ‫راه‬ ‫همین‬ ‫از‬ ‫را‬ ‫مادرم‬ ‫دست‬ ‫آنها‬ ‫بین‬ ‫از‬ ‫و‬ ‫اند‬ ‫کرده‬ ‫فراهم‬ ‫مرا‬ ‫تحصیل‬ ‫زمینه‬ ‫و‬ .‫اند‬ ‫بوده‬ ‫من‬ ‫برای‬ ‫پدر‬ ‫مانند‬ ‫که‬ ‫خوبم‬ ‫برادران‬ ‫همچنان‬ .‫است‬ ‫کشیده‬ ‫من‬ ‫برای‬ ‫تک‬ ‫دست‬ ‫جا‬ ‫همین‬ ‫از‬ ‫هستند‬ ‫زیاد‬ ‫اند‬ ‫رسانده‬ ‫مرحله‬ ‫این‬ ‫به‬ ‫را‬ ‫من‬ ‫که‬ ‫کسانی‬‫شان‬ ‫تک‬‫استاد‬ ‫از‬ ‫خصوص‬ ‫به‬ .‫میبوسم‬ ‫را‬ ‫از‬ ‫بعد‬ ‫و‬ ‫داد‬ ‫نجات‬ ‫گمراهی‬ ‫از‬ ‫را‬ ‫من‬ ‫و‬ ‫آموخت‬ ‫من‬ ‫به‬ ‫را‬ ‫نوشتن‬ ‫و‬ ‫خواندن‬ ‫بار‬ ‫اولین‬ ‫که‬ ‫مکتبم‬ ‫اول‬ ‫صنف‬ ‫معلم‬ ‫کوکبی‬ ‫و‬ ‫استادان‬ ‫تمام‬ ‫از‬ ‫آن‬‫معلمان‬‫وصف‬ ‫بی‬ ‫تالشهای‬ ‫با‬ ‫که‬‫صنف‬ ‫تا‬ ‫توانستم‬ ‫آنها‬21‫که‬ ‫کنم‬ ‫سپری‬ ‫را‬‫تعدادشان‬‫اما‬ ‫است‬ ‫زیاد‬ .‫میدارم‬ ‫عرض‬ ‫را‬ ‫خود‬ ‫احترام‬ ‫آنها‬ ‫به‬ ‫شان‬ ‫همه‬ ‫جا‬ ‫همین‬ ‫از‬ ‫آمادگی‬ ‫دوره‬ ‫محترم‬ ‫استادان‬‫کنکور‬‫بدیل‬ ‫بی‬ ‫سعی‬ ‫با‬ ‫که‬‫آزمون‬ ‫در‬ ‫توانستم‬ ‫شان‬‫کنکور‬‫نیک‬ ‫نظر‬ ‫با‬ ‫و‬ ‫برسم‬ ‫موفقیت‬ ‫به‬ ‫انتخاب‬ ‫اولین‬ ‫جزء‬ ‫را‬ ‫رشته‬ ‫این‬ ‫آنها‬‫های‬.‫بدهم‬ ‫قرار‬ ‫م‬ ‫بوده‬ ‫من‬ ‫مشوق‬ ‫و‬ ‫حامی‬ ‫نیز‬ ‫بلخ‬ ‫دانشگاه‬ ‫ساینس‬ ‫کمپیوتر‬ ‫دانشکده‬ ‫گرامی‬ ‫نهایت‬ ‫استادان‬ ‫هم‬ ‫دانشگاه‬ ‫ساله‬ ‫چهار‬ ‫دوران‬ ‫در‬ ‫را‬ ‫آنها‬ ‫های‬ ‫نیکی‬ ‫از‬ ‫ای‬ ‫زره‬ ‫بتوانم‬ ‫کاش‬ .‫میدانم‬ ‫آنها‬ ‫احسان‬ ‫مدیون‬ ‫را‬ ‫خودم‬ ‫حال‬ ‫و‬ ‫گرفتم‬ ‫یاد‬ ‫چیزها‬ ‫خیلی‬ ‫آنها‬ ‫از‬ .‫اند‬ .‫کنم‬ ‫جبران‬ ‫هم‬ ‫از‬ ‫اخیر‬ ‫در‬‫آنها‬ ‫همه‬ ‫با‬ ‫من‬ ‫معاشرت‬ ‫آداب‬ ‫و‬ ‫فرهنگ‬ ‫اینکه‬ ‫با‬ .‫اند‬ ‫داده‬ ‫جا‬ ‫خود‬ ‫بین‬ ‫در‬ ‫را‬ ‫من‬ ‫که‬ ‫خوبم‬ ‫های‬ ‫صنفی‬ ‫ه‬ .‫اند‬ ‫بوده‬ ‫تحصیل‬ ‫سال‬ ‫چهار‬ ‫این‬ ‫در‬ ‫من‬ ‫اصلی‬ ‫مشوقین‬ ‫مانند‬ ‫به‬ ‫آنها‬ .‫کردند‬ ‫تحمل‬ ‫را‬ ‫من‬ ‫ولی‬ ‫داشت‬ ‫فرق‬ ‫دانیال‬ ‫علی‬ ‫سید‬ ‫پاییز‬2111
  • 8. vii "‫را‬ ‫مشتری‬ ‫که‬ ‫است‬ ‫افزاری‬ ‫نرم‬ ‫خوب‬ ‫افزار‬ ‫نرم‬‫در‬ ‫که‬ ‫نیازمندیهای‬ ‫تمام‬ ‫که‬ ‫شد‬ ‫خواهد‬ ‫خوشحال‬ ‫مشتری‬ ‫زمانی‬ ‫و‬ ‫کند‬ ‫خوشحال‬ ‫شود‬ ‫برآورده‬ ‫دارد‬ ‫نظر‬" ‫چکیده‬ Programming is creative process done by programmers to instruct a computer on how to do.1 [1] ‫نویس‬ ‫برنامه‬‫ی‬‫بی‬ ‫باعث‬ ‫که‬ ‫است‬ ‫کمپیوتر‬ ‫های‬ ‫بخش‬ ‫مهمترین‬ ‫از‬ ‫یکی‬ ‫کمپیوتر‬‫عبارت‬ ‫به‬ . ‫است‬ ‫شده‬ ‫علم‬ ‫این‬ ‫رشد‬ ‫شترین‬ .‫نمیرسید‬ ‫حد‬ ‫این‬ ‫به‬ ‫و‬ ‫نمیکرد‬ ‫رشد‬ ‫حد‬ ‫این‬ ‫تا‬ ‫بود‬ ‫می‬ ‫نویسی‬ ‫برنامه‬ ‫بدون‬ ‫را‬ ‫علم‬ ‫این‬ ‫اگر‬ ‫که‬ ‫گفت‬ ‫میتوان‬ ‫دیگر‬‫برنامه‬ ‫است‬ ‫رسیده‬ ‫آسانی‬ ‫به‬ ‫مختلف‬ ‫روشهای‬ ‫ایجاد‬ ‫با‬ ‫روز‬ ‫هر‬ ‫که‬ ‫است‬ ‫علم‬ ‫این‬ ‫های‬ ‫بخش‬ ‫ترین‬ ‫مشکل‬ ‫از‬ ‫یکی‬ ‫کمپیوتر‬ ‫نویسی‬ ‫از‬ ‫یکی‬ .‫باعث‬ ‫که‬ ‫میباشد‬ ‫آن‬ ‫در‬ ‫خطاها‬ ‫یافتن‬ ‫نویسی‬ ‫برنامه‬ ‫فرد‬ ‫به‬ ‫منحصر‬ ‫نویسی‬ ‫برنامه‬ ‫های‬ ‫بخش‬‫پیشرفت‬‫روز‬ .‫است‬ ‫شده‬ ‫آن‬ ‫افزون‬ " ‫نام‬ ‫به‬ ‫بود‬ ‫انگلیس‬ ‫اهل‬ ‫خانم‬ ‫یک‬ ‫کرد‬ ‫نویسی‬ ‫برنامه‬ ‫به‬ ‫شروع‬ ‫که‬ ‫کسی‬ ‫اولین‬‫لووالس‬ ‫آدا‬"2 "‫بایج‬ ‫"چالز‬ ‫با‬ ‫که‬3 ‫روی‬ ‫بر‬ ‫نام‬ ‫به‬ ‫دستگاهی‬‫آنالیتیکی‬ ‫موتور‬‫میک‬ ‫کار‬‫سال‬ ‫از‬ ‫آنها‬ .‫ردند‬2111‫کردند‬ ‫آغاز‬ ‫را‬ ‫همکاری‬ ‫هم‬ ‫با‬.‫برنامه‬ ‫اولین‬ ‫عنوان‬ ‫به‬ ‫او‬ ‫در‬ ‫او‬ ‫کار‬ .‫کرد‬ ‫نامگذاری‬ ‫او‬ ‫نام‬ ‫با‬ ‫را‬ ‫ساخت‬ ‫که‬ ‫برنامه‬ ‫اولین‬ ‫او‬ ‫افتخار‬ ‫به‬ ‫امریکا‬ ‫دفاع‬ ‫وزارت‬ ‫و‬ ‫است‬ ‫معروف‬ ‫جهان‬ ‫نویس‬ ‫او‬ . ‫شد‬ ‫استفاده‬ ‫شد‬ ‫ساخته‬ ‫او‬ ‫از‬ ‫بعد‬ ‫قرن‬ ‫یک‬ ‫که‬ ‫الکترونیکی‬ ‫کمپیوتر‬ ‫اولین‬‫سن‬ ‫در‬73.‫درگذشت‬ ‫سرطان‬ ‫علت‬ ‫به‬ ‫سالگی‬[2] ‫بررسی‬ ‫مورد‬ ‫نویسی‬ ‫برنامه‬ ‫در‬ ‫خطاها‬ ‫یافتن‬ ‫های‬ ‫روش‬ ‫انواع‬ ‫که‬ ‫است‬ ‫شده‬ ‫آن‬ ‫بر‬ ‫سعی‬ ‫داریم‬ ‫رو‬ ‫پیش‬ ‫که‬ ‫تحقیقی‬ ‫این‬ ‫در‬ .‫برسد‬ ‫خود‬ ‫نهایی‬ ‫هدف‬ ‫به‬ ‫برنامه‬ ‫همان‬ ‫آنها‬ ‫یافتن‬ ‫با‬ ‫یا‬ ‫و‬ ‫شکست‬ ‫به‬ ‫برنامه‬ ‫یک‬ ‫که‬ ‫میشود‬ ‫باعث‬ ‫خطاها‬ ‫این‬ .‫بگیرد‬ ‫قرار‬ ‫خطاه‬‫برنامه‬ ‫آن‬ ‫در‬ ‫که‬ ‫کدها‬ ‫داخل‬ ‫از‬ ‫یکی‬ ‫کرد‬ ‫پیدا‬ ‫منظر‬ ‫دو‬ ‫از‬ ‫را‬ ‫آنها‬ ‫میتوان‬ ‫که‬ ‫دارد‬ ‫مختلف‬ ‫انواع‬ ‫نویس‬ ‫برنامه‬ ‫ای‬ ‫برنامه‬ ‫کاربران‬ ‫یا‬ ‫مشتری‬ ‫خطاها‬ ‫نوع‬ ‫این‬ ‫کردن‬ ‫پیدا‬ ‫در‬ ‫بیشتر‬ ‫که‬ ‫خارجی‬ ‫زوایه‬ ‫از‬ ‫هم‬ ‫یکی‬ ‫و‬ ‫میکند‬ ‫آفرینی‬ ‫نقش‬ ‫نویس‬ .‫میکنند‬ ‫ایفا‬ ‫نقش‬ Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test.4 [3] ‫شود‬ ‫بررسی‬ ‫و‬ ‫بگیرد‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫شود‬ ‫کار‬ ‫بازار‬ ‫وارد‬ ‫اینکه‬ ‫از‬ ‫قبل‬ ‫را‬ ‫برنامه‬ ‫که‬ ‫است‬ ‫معنا‬ ‫این‬ ‫به‬ ‫برنامه‬ ‫تست‬ ‫است‬ ‫شده‬ ‫ساخته‬ ‫که‬ ‫ای‬ ‫برنامه‬ ‫که‬‫آن‬ ‫برای‬ ‫که‬ ‫هدفی‬ ‫میتواند‬ ‫آیا‬‫تعیین‬‫نه؟‬ ‫یا‬ ‫کند‬ ‫دنبال‬ ‫را‬ ‫است‬ ‫شده‬ ‫که‬ ‫میشود‬ ‫شامل‬ ‫را‬ ‫مختلف‬ ‫های‬ ‫دستگاه‬ ‫برای‬ ‫که‬ ‫هایی‬ ‫برنامه‬ ‫همه‬ ‫که‬ ‫است‬ ‫نظر‬ ‫مورد‬ ‫برنامه‬ ‫کلی‬ ‫حالت‬ ‫تحقیق‬ ‫این‬ ‫در‬ ‫اعم‬ ‫کمپیوتری‬ ‫های‬ ‫برنامه‬ ‫شامل‬ ‫ها‬ ‫افزار‬ ‫سخت‬ ‫این‬‫سیستم‬ ‫از‬‫برنامه‬ ،‫کاربردی‬ ‫های‬ ‫برنامه‬ ،‫ها‬ ‫عامل‬،‫کمکی‬ ‫های‬ ‫بازی‬‫های‬ ‫برنامه‬ ‫مانند‬ ‫به‬ ‫که‬ ‫میشود‬ ‫ساخته‬ ‫ها‬ ‫موبایل‬ ‫برای‬ ‫هایی‬ ‫برنامه‬ .‫میباشد‬ ‫کمپیوتر‬ ‫دیگری‬ ‫های‬ ‫برنامه‬ ‫و‬ ‫ها‬ ‫هایی‬ ‫برنامه‬ ‫و‬ ‫ها‬ ‫سایت‬ ‫مانند‬ ‫میکنند‬ ‫کار‬ ‫کمپیوتر‬ ‫از‬ ‫خارج‬ ‫که‬ ‫هایی‬ ‫برنامه‬ .‫است‬ ‫مختلف‬ ‫های‬ ‫بخش‬ ‫دارای‬ ‫کامپیوتری‬ ‫مجازی‬ ‫فضای‬ ‫در‬ ‫که‬‫اینترنت‬‫میکنند‬ ‫کار‬.‫میکنند‬ ‫کار‬ ‫مشخص‬ ‫های‬ ‫افزار‬ ‫سخت‬ ‫در‬ ‫که‬ ‫هایی‬ ‫برنامه‬ ‫دیگر‬ ‫و‬ 1 David Bolton 2 Ada Lovelace 3 Chalz Baeej 4 Cem a b kaner
  • 9. viii ‫بررسی‬ ‫یعنی‬ ‫ساختاری‬ ‫حالت‬ ‫به‬ .‫داد‬ ‫قرار‬ ‫تست‬ ‫مورد‬ ‫میتوان‬ ‫مختلف‬ ‫های‬ ‫حالت‬ ‫به‬ ‫را‬ ‫ها‬ ‫برنامه‬ ‫این‬‫متد‬‫کالس‬ ‫و‬ ‫ها‬ ‫کار‬ ‫حالت‬ ‫به‬ .‫است‬ ‫شده‬ ‫برده‬ ‫کار‬ ‫به‬ ‫آن‬ ‫در‬ ‫که‬ ‫هایی‬‫نوی‬ ‫برنامه‬ ‫نظر‬ ‫مورد‬ ‫هدف‬ ‫که‬ ‫بردی‬‫بر‬ ‫مورد‬ ‫را‬ ‫کاربر‬ ‫و‬ ‫س‬‫رسی‬ .‫میدهد‬ ‫قرار‬ " ‫سر‬ ‫بر‬ ‫بحث‬ ‫اینجا‬ ‫در‬ ‫کلی‬ ‫حالت‬ ‫به‬(‫سفید‬ ‫جعبه‬ ‫بررسی‬White Box Testing‫سیاه‬ ‫جعبه‬ ‫و‬ )(Black Box Testing)‫کردن‬ ‫تست‬ ‫های‬ ‫روش‬ ‫دیگر‬ ‫با‬ ‫آنها‬ ‫فرق‬ ‫و‬ ‫ها‬ ‫برنامه‬ ‫تست‬ ‫در‬.‫گیرد‬ ‫می‬ ‫قرار‬ ‫بحث‬ ‫مورد‬ " ‫ب‬ ‫تست‬ ‫برای‬ ‫روشها‬ ‫ترین‬ ‫اساسی‬ ‫میگیریم‬ ‫بحث‬ ‫به‬ ‫اینجا‬ ‫در‬ ‫که‬ ‫هایی‬ ‫روش‬‫تست‬ ‫و‬ .‫است‬ ‫شمول‬ ‫همه‬ ‫که‬ ‫میباشد‬ ‫ها‬ ‫رنامه‬ ‫سازمان‬ ‫در‬ ‫ها‬ ‫روش‬ ‫این‬ .‫میکنند‬ ‫استفاده‬ ‫ها‬ ‫روش‬ ‫این‬ ‫از‬ ‫بیشتر‬ ‫ها‬ ‫کننده‬ISO‫برای‬ ‫سازمان‬ ‫این‬ ‫و‬ ‫میباشند‬ ‫شناسه‬ ‫دارای‬ ‫استاندار‬ ‫آن‬‫د‬‫استاندارد‬ .‫است‬ ‫شده‬ ‫قایل‬ ‫هم‬ ‫هایی‬‫سازمان‬ ‫که‬ ‫هایی‬ISO‫است‬ ‫شده‬ ‫باعث‬ ‫است‬ ‫گرفته‬ ‫نظر‬ ‫در‬ ‫تست‬ ‫برای‬ ‫تست‬ ‫که‬( ‫مفهوم‬ ‫دارای‬ ‫و‬ ‫تر‬ ‫منطقی‬ ‫کردن‬Concept‫و‬ ‫تر‬ ‫آسان‬ ‫صورت‬ ‫به‬ ‫خطاها‬ ‫و‬ ‫شود‬ ‫مشخص‬ )‫تر‬ ‫هدفمند‬‫پیدا‬ .‫شوند‬ ‫انگلیسی‬ ‫متون‬ ‫درک‬ ‫توانایی‬ ‫کشورمان‬ ‫نویسان‬ ‫برنامه‬ ‫از‬ ‫خیلی‬ ‫که‬ ‫دلیل‬ ‫این‬ ‫به‬ ‫است‬ ‫شده‬ ‫نوشته‬ ‫فارسی‬ ‫زبان‬ ‫به‬ ‫مقاله‬ ‫این‬ ‫نی‬ ‫آنها‬ ‫برای‬ ‫خوبی‬ ‫منبع‬ ‫مقاله‬ ‫این‬ ‫بنابراین‬ .‫ندارند‬ ‫را‬‫اول‬ ‫وهله‬ ‫در‬ ‫دیگر‬ ‫های‬ ‫زبان‬ ‫یا‬ ‫و‬ ‫انگلیسی‬ ‫متون‬ ‫درک‬ .‫میباشد‬ ‫ز‬ .‫است‬ ‫دری‬ ‫فارسی‬ ‫ما‬ ‫مادری‬ ‫زبان‬ ‫چون‬ .‫میگیرد‬ ‫را‬ ‫زیادی‬ ‫وقت‬ ‫اینکه‬ ‫دوم‬ ‫و‬ ‫است‬ ‫مشکل‬
  • 10. ix ‫مقاله‬ ‫نگارش‬ ‫نحوه‬ ‫است‬ ‫جدید‬ ‫تکنولوژی‬ ‫علوم‬ ‫که‬ ‫همانطوری‬ ‫است‬ ‫جدید‬ ‫علم‬ ‫یک‬ ‫افزار‬ ‫نرم‬ ‫تست‬‫این‬ ‫از‬ ‫مقاالتی‬ ‫و‬ ‫کتابها‬ ‫علت‬ ‫همین‬ ‫به‬ . ‫دس‬‫منابع‬ ‫نبود‬ ‫بنابر‬ ‫نداریم‬ ‫خود‬ ‫شهر‬ ‫در‬ ‫زمینه‬ ‫این‬ ‫در‬ ‫متخصصی‬ ‫یک‬ ‫هیچ‬ ‫همچنین‬ ‫و‬ ‫ندارد‬ ‫وجود‬ ‫ما‬ ‫کشور‬ ‫در‬ ‫ت‬ ‫فیزیکی‬‫شده‬ ‫نوشته‬ ‫جهان‬ ‫سرتاسر‬ ‫در‬ ‫زمینه‬ ‫این‬ ‫در‬ ‫که‬ ‫علمی‬ ‫مقاالت‬ ‫و‬ ‫انترنتی‬ ‫منابع‬ ‫توسط‬ ‫را‬ ‫خود‬ ‫مشکل‬ ‫مقاله‬ ‫این‬ .‫کند‬ ‫حل‬ ‫است‬ ‫دو‬ ‫به‬ ‫است‬ ‫شده‬ ‫استفاده‬ ‫مقاله‬ ‫این‬ ‫در‬ ‫که‬ ‫منابعی‬‫است‬ ‫نوع‬ ‫اند‬ ‫داشته‬ ‫را‬ ‫مطلبی‬ ‫زمینه‬ ‫این‬ ‫در‬ ‫که‬ ‫هایی‬ ‫وبالگ‬ ‫و‬ ‫ها‬ ‫سایت‬ .‫است‬ ‫شده‬ ‫نگاشته‬ ‫مختلف‬ ‫سطوح‬ ‫دانشجویان‬ ‫توسط‬ ‫که‬ ‫علمی‬ ‫مقاالت‬ ‫مسئله‬ ‫بیان‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫کننده‬ ‫تولید‬ ‫های‬ ‫شرکت‬ ‫و‬ ‫ها‬ ‫سازمان‬ ‫های‬ ‫هزینه‬ ‫از‬ ‫زیادی‬ ‫مقدار‬ ‫ساالنه‬ ‫که‬ ‫میشود‬ ‫شروع‬ ‫آنجا‬ ‫از‬ ‫مشکل‬ ‫ا‬ ‫نرم‬ ‫اینکه‬ ‫دلیل‬‫استاندار‬ ‫دارای‬ ‫شده‬ ‫ایجاد‬ ‫فزار‬‫د‬‫دارد‬ ‫وجود‬ ‫آن‬ ‫در‬ ‫بزرگی‬ ‫مشکل‬ ‫اینکه‬ ‫یا‬ ‫و‬ ‫است‬ ‫ضعیف‬ ‫های‬‫آن‬ ‫ولی‬ ‫نمیشود‬ ‫پیدا‬ ‫یا‬ ‫شود‬ ‫نمی‬ ‫رفع‬ ‫مشکل‬‫که‬ ‫ها‬ ‫هزینه‬ ‫این‬ .‫میشود‬ ‫صرف‬ ‫نیست‬ ‫مشتری‬ ‫خواسته‬ ‫بر‬ ‫منطبق‬ ‫اینکه‬ ‫یا‬ ‫و‬‫مقدار‬ ‫شان‬‫ا‬ ‫برای‬ .‫کند‬ ‫می‬ ‫وارد‬ ‫خسارت‬ ‫ها‬ ‫سازمان‬ ‫و‬ ‫ها‬ ‫شرکت‬ ‫این‬ ‫بر‬ ‫است‬ ‫زیاد‬‫کاسته‬ ‫اضافی‬ ‫های‬ ‫هزینه‬ ‫اتالف‬ ‫از‬ ‫ینکه‬ ‫نیاز‬ ‫شود‬‫مبرم‬.‫است‬ ‫واقعی‬ ‫فضای‬ ‫در‬ ‫آن‬ ‫اجرای‬ ‫از‬ ‫قبل‬ ‫آن‬ ‫تست‬ ‫بر‬ ‫اوقات‬ ‫گاهی‬ ‫و‬ ‫است‬ ‫زیادی‬ ‫هزینه‬ ‫دارای‬ ‫اینکه‬ ‫با‬ ‫افزار‬ ‫نرم‬ ‫تست‬‫آن‬ ‫های‬ ‫هزینه‬‫ولی‬ ‫میشود‬ ‫زیادتر‬ ‫هم‬ ‫افزار‬ ‫نرم‬ ‫تولید‬ ‫از‬ ‫ثبات‬ ‫باعث‬ ‫کیفیت‬ ‫تضمین‬ .‫میکند‬ ‫تضمین‬ ‫را‬ ‫آن‬ ‫کیفیت‬‫ک‬ ‫و‬‫یفیت‬‫افزار‬ ‫نرم‬ ‫در‬‫نرم‬ .‫میشود‬‫تست‬ ‫توسط‬ ‫که‬ ‫افزارهایی‬ ‫ایجاد‬‫خود‬ ‫نهایی‬ ‫هدف‬ ‫به‬ ‫معموال‬ ‫میشوند‬.‫اند‬ ‫رسیده‬ ‫مقاله‬ ‫سوال‬ .‫میشود‬ ‫داده‬ ‫جواب‬ ‫آمد‬ ‫می‬ ‫پیش‬ ‫نویسی‬ ‫برنامه‬ ‫حین‬ ‫در‬ ‫خودم‬ ‫برای‬ ‫که‬ ‫سوالی‬ ‫سه‬ ‫دارید‬ ‫رو‬ ‫پیش‬ ‫که‬ ‫ای‬ ‫مقاله‬ ‫این‬ ‫در‬ 2.‫کیف‬ ‫و‬ ‫تولید‬ ‫بر‬ ‫میتواند‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫آیا‬‫؟‬ ‫باشد‬ ‫داشته‬ ‫ارتباط‬ ‫افزار‬ ‫نرم‬ ‫یک‬ ‫یت‬ 1.‫داد؟‬ ‫انجام‬ ‫کمتری‬ ‫هزینه‬ ‫با‬ ‫میتوان‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫آیا‬ 1.‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫برای‬ ‫است‬ ‫معقولی‬ ‫روش‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫آیا‬‫نه‬ ‫یا‬‫؟‬
  • 11. x ‫مقاله‬ ‫این‬ ‫ضرورت‬ ‫و‬ ‫اهمیت‬ ‫شدید‬ ‫عالقه‬ ‫و‬ ‫ام‬ ‫خوانده‬ ‫درس‬ ‫ساینس‬ ‫کمپیوتر‬ ‫دانشکده‬ ‫در‬ ‫که‬ ‫کسانی‬ ‫از‬ ‫یکی‬ ‫عنوان‬ ‫به‬ ‫من‬‫ام‬ ‫داشته‬ ‫نویسی‬ ‫برنامه‬ ‫به‬ ‫این‬ ‫که‬ ‫میکردم‬ ‫برخورد‬ ‫مشکل‬ ‫به‬ ‫ساده‬ ‫های‬ ‫برنامه‬ ‫ساختن‬ ‫و‬ ‫نویسی‬ ‫کد‬ ‫بخش‬ ‫در‬ ‫همیشه‬‫میگشت‬ ‫بر‬‫مقوله‬ ‫از‬ ‫اینکه‬ ‫به‬ .‫کنم‬ ‫ارائه‬ ‫خود‬ ‫تحقیقی‬ ‫نامه‬ ‫پایان‬ ‫عنوان‬ ‫به‬ ‫را‬ ‫مقاله‬ ‫این‬ ‫که‬ ‫دانستم‬ ‫الزم‬ ‫دلیل‬ ‫این‬ ‫به‬ ‫ام‬ ‫نداشته‬ ‫آگاهی‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫که‬ ‫هم‬ ‫ما‬ ‫کشور‬ ‫در‬‫نویسان‬ ‫برنامه‬‫جدیدا‬‫که‬ ‫دلیل‬ ‫این‬ ‫به‬ .‫است‬ ‫مهم‬ ‫بسیار‬ ‫بحث‬ ‫این‬ ‫اند‬ ‫کرده‬ ‫افزار‬ ‫نرم‬ ‫تولید‬ ‫به‬ ‫شروع‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫از‬ ‫درک‬ ‫بدون‬ ‫بیشترشان‬ ‫ما‬ ‫نویسان‬ ‫برنامه‬‫آن‬ ‫توسعه‬ ‫مراحل‬ ‫و‬‫که‬ ‫میکنند‬ ‫نویسی‬ ‫برنامه‬ ‫به‬ ‫شروع‬ ‫اس‬ ‫های‬ ‫راه‬ ‫که‬ ‫است‬ ‫شده‬ ‫سعی‬ ‫اینجا‬ ‫در‬ .‫میشوند‬ ‫واقع‬ ‫شکست‬ ‫به‬ ‫بیشترشان‬‫و‬ ‫کنیم‬ ‫معرفی‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫برای‬ ‫تاندار‬ ‫مفید‬ ‫کشورمان‬ ‫نویس‬ ‫برنامه‬ ‫جامعه‬ ‫برای‬ ‫و‬ ‫دارد‬ ‫کمتری‬ ‫های‬ ‫هزینه‬ ‫که‬ ‫کنیم‬ ‫می‬ ‫معرفی‬ ‫هم‬ ‫را‬ ‫افزارهایی‬ ‫نرم‬ ‫همچنین‬ .‫میشود‬ ‫واقع‬ ‫شر‬ ‫آن‬ ‫از‬ ‫قبل‬ ‫و‬ ‫نویسی‬ ‫برنامه‬ ‫شروع‬ ‫ابتدای‬ ‫از‬ ‫که‬ ‫میباشد‬ ‫افزار‬ ‫نرم‬ ‫تولید‬ ‫مراحل‬ ‫ترین‬ ‫اساسی‬ ‫افزار‬ ‫نرم‬ ‫تست‬‫میشود‬ ‫وع‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫دهی‬ ‫تحویل‬ ‫از‬ ‫بعد‬ ‫معموال‬ .‫میشود‬ ‫مشتری‬ ‫توسط‬ ‫که‬ ‫است‬ ‫آن‬ ‫تست‬ ‫هم‬ ‫افزار‬ ‫نرم‬ ‫تولید‬ ‫مرحله‬ ‫آخرین‬ ‫و‬ ‫تا‬ ‫مشتری‬1‫نویسان‬ ‫برنامه‬ ‫دلیل‬ ‫این‬ ‫به‬ .‫میباشد‬ ‫افزار‬ ‫نرم‬ ‫خطاهای‬ ‫و‬ ‫مشکالت‬ ‫پاسخگوی‬ ‫نویس‬ ‫برنامه‬ ‫سال‬ ‫یک‬ ‫یا‬ ‫ماه‬ .‫کنند‬ ‫فراموش‬ ‫نباید‬ ‫را‬ ‫نکته‬ ‫این‬ ‫کشورمان‬ ‫ا‬‫چرا‬ ‫که‬ ‫میکنند‬ ‫برخورد‬ ‫مشکل‬ ‫این‬ ‫به‬ ‫همیشه‬ ‫هستند‬ ‫نویس‬ ‫برنامه‬ ‫راه‬ ‫ابتدای‬ ‫که‬ ‫کمپیوتر‬ ‫رشته‬ ‫دانشجویان‬ ‫گذشته‬ ‫آن‬ ‫ز‬ ‫ای‬ ‫برنامه‬‫که‬‫این‬ ‫خواندن‬ ‫با‬ ‫میتوانند‬ ‫هم‬ ‫آنها‬ .‫دارند‬ ‫مشکل‬ ‫نویسی‬ ‫برنامه‬ ‫در‬ ‫چرا‬ ‫اینکه‬ ‫یا‬ ‫و‬ ‫نمیکند‬ ‫کار‬ ‫درست‬ ‫اند‬ ‫نوشته‬ ‫ا‬ ‫و‬ ‫کنند‬ ‫یابی‬ ‫ریشه‬ ‫را‬ ‫خود‬ ‫مشکالت‬ ‫مقاله‬‫به‬ ‫شروع‬ ‫ساده‬ ‫های‬ ‫برنامه‬ ‫ساختن‬ ‫شروع‬ ‫ابتدای‬ ‫ز‬‫یابی‬ ‫خطا‬‫جزء‬ ‫که‬ ‫کنند‬ ‫شان‬ ‫عادت‬.‫باشند‬ ‫نداشته‬ ‫مشکلی‬ ‫میشوند‬ ‫نویس‬ ‫برنامه‬ ‫که‬ ‫آینده‬ ‫در‬ ‫تا‬ ‫شود‬ ‫مقاله‬ ‫اهداف‬ -‫یک‬ ‫اینکه‬ ‫یا‬ ‫و‬ ‫باشد‬ ‫کوچک‬ ‫افزارها‬ ‫نرم‬ ‫این‬ ‫چه‬ .‫بکند‬ ‫خود‬ ‫افزارهای‬ ‫نرم‬ ‫تست‬ ‫به‬ ‫ترغیب‬ ‫را‬ ‫نویسان‬ ‫برنامه‬ ‫ب‬ ‫بزرگ‬ ‫افزار‬ ‫نرم‬.‫اشد‬ -.‫کند‬ ‫بیان‬ ‫ساده‬ ‫زبان‬ ‫با‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫تست‬ -‫کند‬ ‫بیان‬ ‫نویسی‬ ‫برنامه‬ ‫در‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫های‬ ‫ویژگی‬ ‫و‬ ‫اهمیت‬ -‫با‬ ‫اضافی‬ ‫های‬ ‫هزینه‬ ‫این‬ .‫دهد‬ ‫آگاهی‬ ‫میشود‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫از‬ ‫استفاده‬ ‫عدم‬ ‫اثر‬ ‫در‬ ‫که‬ ‫اضافی‬ ‫های‬ ‫هزینه‬ ‫از‬ )‫شدن‬ ‫(خراب‬Ruinous.‫است‬ ‫توام‬ ‫افزار‬ ‫نرم‬ ‫شدن‬ ‫فرضیات‬ -‫ت‬‫برنامه‬ ‫جامعه‬ ‫بین‬ ‫در‬ ‫هنوز‬ ‫آن‬ ‫اهمیت‬ ‫که‬ ‫میباشد‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫نشدنی‬ ‫جدا‬ ‫اجزای‬ ‫از‬ ‫یکی‬ ‫افزار‬ ‫نرم‬ ‫ست‬ .‫است‬ ‫نشده‬ ‫معلوم‬ ‫ما‬ ‫کشور‬ ‫نویسی‬ -‫یاد‬ ‫را‬ ‫نویسی‬ ‫برنامه‬ ‫که‬ ‫دارند‬ ‫عالقه‬ ‫یا‬ ‫و‬ ‫دارند‬ ‫یاد‬ ‫را‬ ‫نویسی‬ ‫برنامه‬ ‫میخوانند‬ ‫را‬ ‫مقاله‬ ‫این‬ ‫که‬ ‫کسانی‬ ‫تمام‬ ‫و‬ ‫بگیرند‬‫افزار‬ ‫نرم‬ ‫تست‬ ‫اهمیت‬‫افزار‬ ‫نرم‬ ‫تست‬ ‫اهمیت‬ ‫از‬ ‫مقاله‬ ‫این‬ ‫خواندن‬ ‫با‬ .‫اند‬ ‫نکرده‬ ‫درک‬ ‫خوبی‬ ‫به‬ .‫میکنند‬ ‫پیدا‬ ‫آگاهی‬
  • 12. xi ‫مفهومی‬ ‫تعاریف‬ ‫میشود‬ ‫شده‬ ‫تولید‬ ‫افزار‬ ‫نرم‬ ‫در‬ ‫مشکل‬ ‫کردن‬ ‫پیدا‬ ‫باعث‬ ‫که‬ ‫عملیاتی‬ ‫مجموعه‬ :‫افزار‬ ‫نرم‬ ‫تست‬ ‫تمام‬ ‫به‬ ‫کننده‬ ‫تست‬ ‫آن‬ ‫در‬ ‫که‬ ‫تستی‬ : ‫سفید‬ ‫جعبه‬ ‫تست‬‫برنام‬ ‫مختلف‬ ‫های‬ ‫بخش‬ ‫و‬ ‫کدها‬‫دست‬ ‫ه‬‫دارد‬ ‫رسی‬ ‫کارکرد‬ ‫فقط‬ ‫و‬ ‫ندارد‬ ‫اطالعی‬ ‫برنامه‬ ‫کدهای‬ ‫و‬ ‫محتویات‬ ‫از‬ ‫کننده‬ ‫تست‬ ‫آن‬ ‫در‬ ‫که‬ ‫تستی‬ : ‫سیاه‬ ‫جعبه‬ ‫تست‬ ‫است‬ ‫مهم‬ ‫برایش‬ ‫افزار‬ ‫نرم‬ ‫ولی‬ ‫دارد‬ ‫دسترسی‬ ‫افزار‬ ‫نرم‬ ‫محتویات‬ ‫های‬ ‫قسمت‬ ‫بعضی‬ ‫به‬ ‫کننده‬ ‫تست‬ ‫آن‬ ‫در‬ ‫که‬ ‫تستی‬ : ‫خاکستری‬ ‫تست‬ .‫نه‬ ‫کامل‬ ‫صورت‬ ‫به‬‫ا‬ ‫ترکیبی‬ ‫تست‬ ‫نوع‬ ‫این‬‫است‬ ‫سیاه‬ ‫جعبه‬ ‫و‬ ‫سفید‬ ‫جعبه‬ ‫تست‬ ‫ز‬ ‫نرم‬ ‫کیفیت‬ ‫حقیقت‬ ‫در‬ ‫شخص‬ ‫این‬ .‫میکند‬ ‫ریزی‬ ‫برنامه‬ ‫را‬ ‫برنامه‬ ‫تست‬ ‫پروسه‬ ‫که‬ ‫است‬ ‫کسی‬ : ‫کننده‬ ‫تست‬ .‫میکند‬ ‫رد‬ ‫یا‬ ‫تایید‬ ‫را‬ ‫افزار‬ .‫میکند‬ ‫نویسی‬ ‫کد‬ ‫و‬ ‫دیزاین‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫که‬ ‫است‬ ‫کسی‬ :‫نویس‬ ‫برنامه‬ ‫برنام‬ ‫زمان‬ ‫در‬ ‫نویس‬ ‫برنامه‬ ‫که‬ ‫کوچکی‬ ‫مشکل‬ : ‫خطا‬.‫میکند‬ ‫رفع‬ ‫را‬ ‫آن‬ ‫نویس‬ ‫ه‬ : ‫افزار‬ ‫نرم‬ ‫بینی‬ ‫باز‬ ‫و‬ ‫سنجی‬ ‫اعتبار‬‫می‬ ‫گفته‬ ‫فرآیندی‬ ‫به‬‫اعمال‬ ‫آن‬ ‫طی‬ ‫در‬ ‫یا‬ ‫و‬ ‫تولید‬ ‫از‬ ‫پس‬ ‫که‬ ‫شود‬ ‫می‬‫شود‬ ‫حاصل‬ ‫اطمینان‬ ‫نظر‬ ‫مورد‬ ‫سیستم‬ ‫کارآیی‬ ‫و‬ ‫صحت‬ ‫از‬ ‫تا‬ ‫گردد‬. ‫مجازی‬ ‫فضای‬ ‫در‬ ‫را‬ ‫تست‬ ‫مراحل‬ ‫که‬ ‫میشود‬ ‫گفته‬ ‫افزارهایی‬ ‫نرم‬ ‫به‬ : ‫تست‬ ‫خودکار‬ ‫ابزارهای‬‫انجام‬ .‫میکند‬ ‫استفاده‬ ‫آن‬ ‫از‬ ‫کننده‬ ‫تست‬ ‫که‬ ‫هستند‬ ‫ابزارهایی‬ ‫آنها‬ .‫میدهند‬ xUnit.‫افزارها‬ ‫نرم‬ ‫خودکار‬ ‫تست‬ ‫افزارهای‬ ‫نرم‬ ‫از‬ ‫ای‬ ‫خانواده‬ :
  • 13. .‫است‬ ‫آنها‬ ‫تست‬ ‫بودن‬ ‫ضعیف‬ ‫دلیل‬ ‫به‬ ‫افزارها‬ ‫نرم‬ ‫در‬ ‫موجود‬ ‫مشکالت‬ ‫فصل‬‫اول‬ ‫کلیدی‬ ‫نکات‬
  • 14. 2 ‫اول‬ ‫فصل‬ 1.1‫چیست‬ ‫افزار‬ ‫نرم‬ ‫کیفیت‬(Software Quality)‫؟‬ ‫تو‬‫سعه‬‫کاربردی‬ ‫افزارهای‬ ‫نرم‬‫هر‬‫روز‬‫میشود‬ ‫زیاد‬‫و‬‫اهمیت‬‫اصول‬ ‫و‬ ‫ها‬ ‫روش‬ ‫بکارگیری‬‫انجینری‬‫در‬ ‫افزار‬ ‫نرم‬ ‫بیشتر‬ ‫آنها‬ ‫پشتیبانی‬ ‫و‬ ‫مدیریت‬ ، ‫توسعه‬ ‫مراحل‬‫شود‬ ‫می‬‫افزار‬ ‫نرم‬ ‫کیفیت‬ .(Software Quality)‫زیادی‬ ‫اهمیت‬‫برای‬ ‫کیفیت‬ ‫با‬ ‫های‬ ‫افزار‬ ‫نرم‬ ‫تولید‬‫دارد‬‫بر‬ ‫باال‬ ‫ضمن‬ ‫که‬‫دن‬‫کارایی‬‫نرم‬ ‫ایجاد‬ ‫به‬ ، ‫ها‬ ‫افزار‬ ‫نرم‬ ‫تولید‬ ‫در‬‫قدرتمند‬ ‫های‬ ‫افزار‬ ‫می‬ ‫منجر‬‫شود‬.‫سلسله‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫کیفیت‬‫مراحلی‬‫برای‬ ‫که‬ ‫میشود‬ ‫گفته‬‫شدن‬ ‫بهتر‬.‫میشود‬ ‫انجام‬ ‫افزار‬ ‫نرم‬ ‫کارایی‬‫کیفیت‬ ‫ن‬ ‫کیفیت‬ .‫میباشد‬ ‫افزار‬ ‫نرم‬ ‫کاربران‬ ‫و‬ ‫خریداران‬ ‫های‬ ‫اولویت‬ ‫ترین‬ ‫مهم‬ ‫از‬ ‫یکی‬ ‫افزار‬ ‫نرم‬‫های‬ ‫بخش‬ ‫شامل‬ ‫افزار‬ ‫رم‬ ‫های‬ ‫بخش‬ ‫از‬ ‫یکی‬ ‫هم‬ ‫افزار‬ ‫نرم‬ ‫تست‬ .‫بگذارد‬ ‫مستقیم‬ ‫اثر‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫بهبود‬ ‫بر‬ ‫میتواند‬ ‫کدام‬ ‫هر‬ ‫که‬ ‫میباشد‬ ‫متنوعی‬ .‫پردازیم‬ ‫می‬ ‫آن‬ ‫به‬ ‫بحث‬ ‫این‬ ‫در‬ ‫ما‬ ‫که‬ ‫است‬ ‫افزار‬ ‫نرم‬ ‫کیفیت‬[4] ‫های‬ ‫مرحله‬‫فعالیتهاي‬ ‫از‬ ‫یکي‬ ‫عنوان‬ ‫به‬ ، ‫افزار‬ ‫نرم‬ ‫کیفیت‬‫مدیر‬‫توسعه‬‫افزار‬ ‫نرم‬‫ب‬ ‫است‬‫دادن‬ ‫انجام‬ ‫با‬ ‫که‬ ‫اي‬ ‫گونه‬ ‫ه‬ ‫این‬‫مراحل‬‫استانداردهاي‬ ‫رعایت‬ ‫و‬ ‫ریزي‬ ‫برنامه‬ ‫در‬ ‫افزار‬ ‫نرم‬ ‫کیفیت‬ ‫تیم‬ ،‫افزار‬ ‫نرم‬‫یک‬ ‫عنوان‬ ‫به‬ ،‫نموده‬ ‫همکاري‬ ‫و‬ ‫فعالیتها‬ ‫انجام‬ ‫روش‬ ‫مستقل‬ ‫گروه‬‫ها‬ ‫خروجی‬‫نماید‬ ‫مي‬ ‫حاصل‬ ‫اطمینان‬ ‫آنها‬ ‫انجام‬ ‫صحت‬ ‫از‬ ‫و‬ ‫بازرسي‬ ‫را‬. 0.4‫افز‬ ‫نرم‬ ‫تست‬‫چیست؟‬ ‫ار‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫از‬ ‫منظور‬‫پوره‬ ‫میتواند‬ ‫را‬ ‫داشتیم‬ ‫توقع‬ ‫آن‬ ‫از‬ ‫که‬ ‫ای‬ ‫کارایی‬ ‫آیا‬ ‫ایم‬ ‫کرده‬ ‫تولید‬ ‫که‬ ‫افزاری‬ ‫نرم‬ ‫اینکه‬ ‫یعنی‬ ‫یعنی‬ .‫است‬ ‫میشود‬ ‫ایجاد‬ ‫تولیدی‬ ‫های‬ ‫کارخانه‬ ‫یا‬ ‫و‬ ‫افراد‬ ‫توسط‬ ‫که‬ ‫محصوالتی‬ ‫دیگر‬ ‫مانند‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫نه؟‬ ‫یا‬ ‫کند‬ ‫طبق‬ ‫که‬ ‫دارد‬ ‫مشخصی‬ ‫مراحل‬‫تولید‬ ‫فزیکی‬ ‫صورت‬ ‫به‬ ‫که‬ ‫محصوالتی‬ .‫کرد‬ ‫تولید‬ ‫را‬ ‫آل‬ ‫ایده‬ ‫افزار‬ ‫نرم‬ ‫یک‬ ‫میتوان‬ ‫آن‬ ‫به‬ ‫ها‬ ‫افزار‬ ‫نرم‬ ‫اما‬ . ‫کرد‬ ‫حاصل‬ ‫اطالع‬ ‫آن‬ ‫وری‬ ‫بهره‬ ‫و‬ ‫کیفیت‬ ‫از‬ ‫و‬ ‫داد‬ ‫قرار‬ ‫آزمایش‬ ‫مورد‬ ‫سادگی‬ ‫به‬ ‫میتوان‬ ‫را‬ ‫میشوند‬ ‫طاقت‬ ‫و‬ ‫مشکل‬ ‫هم‬ ‫آنها‬ ‫تست‬ ‫بنابراین‬ .‫نیستند‬ )‫(فزیکی‬ ‫لمس‬ ‫قابل‬ ‫که‬ ‫دلیل‬ ‫این‬‫برای‬ ‫فزیکی‬ ‫محصوالت‬ .‫میباشد‬ ‫فرسا‬ ‫آنها‬ ‫یعنی‬ ‫داشت‬ ‫نگه‬ ‫مشخص‬ ‫شرایط‬ ‫یک‬ ‫در‬ ‫نمیتوان‬ ‫را‬ ‫ها‬ ‫افزار‬ ‫نرم‬ ‫اما‬ ‫هستند‬ ‫بینی‬ ‫پیش‬ ‫قابل‬ ‫که‬ ‫میشوند‬ ‫ایجاد‬ ‫شرایطی‬ ‫بدهیم‬ ‫قرار‬ ‫آزمایش‬ ‫مورد‬ ‫مختلف‬ ‫شرایط‬ ‫در‬ ‫را‬ ‫آن‬ ‫باید‬ ‫کنیم‬ ‫تست‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫یک‬ ‫ما‬ ‫اینکه‬ ‫برای‬ ‫دارند‬ ‫تغییر‬ ‫قابلیت‬‫در‬ . ‫صورتی‬‫کار‬ ‫درست‬ ‫ما‬ ‫افزار‬ ‫نرم‬ ‫که‬ ‫بگوییم‬ ‫نمیتوانیم‬ ‫ایم‬ ‫نکرده‬ ‫آزمایش‬ ‫افزار‬ ‫نرم‬ ‫روی‬ ‫بر‬ ‫را‬ ‫خاص‬ ‫شرایط‬ ‫همه‬ ‫ما‬ ‫که‬ .‫میباشد‬ ‫خطا‬ ‫از‬ ‫عاری‬ ‫اینکه‬ ‫یا‬ ‫و‬ ‫میکند‬ ‫به‬ ‫دیگر‬ ‫طرف‬ ‫از‬ ‫و‬ ‫است‬ ‫رشد‬ ‫به‬ ‫رو‬ ‫هم‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫اهمیت‬ ‫است‬ ‫رفته‬ ‫افزایش‬ ‫به‬ ‫رو‬ ‫افزارها‬ ‫نرم‬ ‫تعداد‬ ‫که‬ ‫وقتی‬ ‫از‬ ‫تست‬ ‫مراتب‬ ‫همان‬‫توسط‬ ‫که‬ ‫مختلف‬ ‫های‬ ‫روش‬ ‫ایجاد‬ ‫به‬ ‫برمیگردد‬ ‫این‬ ‫که‬ ‫است‬ ‫شده‬ ‫مشکل‬ ‫و‬ ‫سخت‬ ‫هم‬ ‫افزار‬ ‫نرم‬ .‫کند‬ ‫تایید‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫کیفیت‬ ‫که‬ ‫میشود‬ ‫تعریف‬ ‫جهانی‬ ‫استاندارد‬ ‫سازمان‬ ‫دایکسترا‬5 ‫می‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫باب‬ ‫در‬ ‫ارزشمند‬ ‫جمله‬ ‫یک‬ ‫در‬ ‫کامپیوتر‬ ‫علوم‬ ‫فقید‬ ‫و‬ ‫بزرگ‬ ‫دانشمند‬:‫گویید‬‫فقط‬ ‫تست‬ ‫میتوا‬‫را‬ ‫آنها‬ ‫وجود‬ ‫عدم‬ ‫نه‬ ،‫دهد‬ ‫نمایش‬ ‫را‬ ‫خطاها‬ ‫ند‬[5]! 5 Edsgar W. Dijkstra
  • 15. 3 0.1‫افزار‬ ‫نرم‬ ‫تست‬ ‫اهمیت‬ ‫نرم‬ ‫در‬ .‫فزیکی‬ ‫غیر‬ ‫اینکه‬ ‫یا‬ ‫و‬ ‫باشد‬ ‫فزیکی‬ ‫محصول‬ ‫آن‬ ‫خواه‬ ‫دارد‬ ‫محصول‬ ‫هر‬ ‫تولید‬ ‫در‬ ‫خاصی‬ ‫اهمیت‬ ‫کل‬ ‫در‬ ‫تست‬ ‫ت‬ .‫میباشد‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫اصلی‬ ‫مراحل‬ ‫از‬ ‫یکی‬ ‫افزار‬ ‫نرم‬ ‫تست‬ .‫است‬ ‫جاری‬ ‫امر‬ ‫این‬ ‫هم‬ ‫ها‬ ‫افزار‬‫کیفیت‬ ‫افزار‬ ‫نرم‬ ‫ست‬ .‫دارد‬ ‫زیادی‬ ‫اهمیت‬ ‫آن‬ ‫های‬ ‫دهنده‬ ‫توسعه‬ ‫و‬ ‫مشتریان‬ ‫برای‬ ‫که‬ ‫میکند‬ ‫تایید‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫یک‬ ‫در‬‫شرکت‬‫معمول‬ ‫طور‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬11‫تا‬11‫تست‬ ‫صرف‬ ‫پروژه‬ ‫فعالیت‬ ‫کل‬ ‫درصد‬‫افزار‬ ‫نرم‬.‫میشود‬ ‫پرواز‬ ‫مانند‬ ‫است‬ ‫حیاتی‬ ‫انسانی‬ ‫زندگی‬ ‫در‬ ‫که‬ ‫هایی‬ ‫افزار‬ ‫نرم‬ ‫برای‬‫ها‬ ‫طیاره‬‫حدود‬ ‫ای‬ ‫هسته‬ ‫راکتور‬ ‫و‬1‫تا‬1‫برابر‬ ‫صرف‬ ‫افزار‬ ‫نرم‬ ‫تولید‬ ‫مراحل‬ ‫تمام‬ ‫از‬ ‫بیشتر‬ ‫هزینه‬‫تست‬.‫میشود‬ 0.2‫تست‬ ‫اصول‬ ‫و‬ ‫ها‬ ‫روش‬‫متد‬‫میشود‬ ‫مربوط‬ ‫میدهد‬ ‫انجام‬ ‫را‬ ‫تست‬ ‫آن‬ ‫که‬ ‫کسی‬ ‫به‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫تست‬ ‫یک‬ ‫کردن‬ ‫اجرا‬ ‫برای‬ ‫زیادی‬ ‫های‬ ‫این‬ ‫زیرا‬‫متد‬‫سازی‬ ‫پیاده‬ ‫نوع‬ ‫به‬ ‫بستگی‬ ‫ها‬‫شخص‬ ‫توسط‬‫نرم‬ ‫تست‬ ‫برای‬ ‫مطرح‬ ‫و‬ ‫مهم‬ ‫اصول‬ ‫از‬ ‫یکی‬ ‫اینجا‬ ‫در‬ .‫دارد‬ .‫است‬ ‫شده‬ ‫مطرح‬ ‫دیویس‬ ‫توسط‬ ‫که‬ ‫میگیریم‬ ‫معرفی‬ ‫به‬ ‫را‬ ‫افزار‬ ‫دیویس‬ ‫تست‬ ‫اصول‬6 [6] -‫باشد‬ ‫پیگیری‬ ‫قابل‬ ،‫مشتری‬ ‫نظر‬ ‫مورد‬ ‫نیازمندیهای‬ ‫به‬ ‫رسیدن‬ ‫تا‬ ‫باید‬ ‫ها‬ ‫تست‬ ‫تمام‬ -‫برنامه‬ ، ‫آن‬ ‫شروع‬ ‫از‬ ‫قبل‬ ‫طوالنی‬ ‫مدت‬ ‫باید‬ ‫ها‬ ‫تست‬.‫شوند‬ ‫ریزی‬ -‫اصل‬ ‫کارگیری‬ ‫به‬‫پارتو‬7 ‫افزار‬ ‫نرم‬ ‫تست‬ ‫مورد‬ ‫در‬(%81‫در‬ ‫نشده‬ ‫کشف‬ ‫خطاهاي‬21%‫است‬ ‫کد‬) -‫کم‬ ‫کم‬ ‫و‬ ‫شده‬ ‫شروع‬ ‫جزء‬ ‫از‬ ‫باید‬ ‫تست‬.‫برسد‬ ‫وسیع‬ ‫سطح‬ ‫در‬ ‫هایی‬ ‫تست‬ ‫طرف‬ ‫به‬ -‫نیست‬ ‫ممکن‬ ‫فراگیر‬ ‫و‬ ‫جامع‬ ‫های‬ ‫تست‬ -‫ثال‬ ‫شخص‬ ‫یک‬ ‫توسط‬ ‫باید‬ ،‫باشد‬ ‫داشته‬ ‫را‬ ‫تاثیر‬ ‫بیشترین‬ ‫تست‬ ‫اینکه‬ ‫برای‬.‫گیرد‬ ‫صورت‬ ‫مستقل‬ ‫ث‬ 0.5‫افزار‬ ‫نرم‬ ‫تست‬ ‫اهداف‬ ‫استفاده‬ ‫مورد‬ ‫اینکه‬ ‫از‬ ‫قبل‬ ‫را‬ ‫آن‬ ‫بودن‬ ‫درست‬ ‫که‬ ‫میتوان‬ ‫آن‬ ‫با‬ ‫و‬ ‫باشد‬ ‫می‬ ‫پروژه‬ ‫مهم‬ ‫های‬ ‫بخش‬ ‫از‬ ‫یکی‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫کار‬ ‫کرد.این‬ ‫امتحان‬ ‫را‬ ‫بگیرد‬ ‫قرار‬ ‫آن‬ ‫کاربران‬ ‫توسط‬1‫سازی‬ ‫پیاده‬ ‫درست‬ ‫صورت‬ ‫به‬ ‫هدف‬ ‫سه‬ ‫هر‬ ‫اگر‬ .‫دارد‬ ‫هدف‬ ‫نرم‬ ‫شود‬‫میباشد‬ ‫نقص‬ ‫بدون‬ ‫ما‬ ‫افزار‬.[7] -‫افزار‬ ‫نرم‬ ‫کیفیت‬ ‫افزایش‬ -‫اطمینان‬ ‫قابلیت‬ ‫و‬ ‫نیازها‬ ‫به‬ ‫پاسخگویی‬ ‫لحاظ‬ ‫از‬ ‫سیستم‬ ‫بررسی‬ -‫افزار‬ ‫نرم‬ ‫های‬ ‫اشتباه‬ ‫و‬ ‫خطاها‬ ‫ها‬ ‫ضعف‬ ‫شناسایی‬ 6 Davis 7 Vilfredo Federico Damaso Pareto ‫اند‬ ‫بوده‬ ‫ایتالیایی‬ ‫ایشان‬
  • 16. 4 0.6‫افزار‬ ‫نرم‬ ‫زدایی‬ ‫اشکال‬ ‫نرم‬ ‫توسعه‬ ‫در‬ ‫مهمی‬ ‫بسیار‬ ‫وظیفه‬ ‫زدایی‬ ‫اشکال‬‫افزار‬‫می‬‫باشد‬‫غلط‬ ‫برنامه‬ ‫یک‬ ‫زیرا‬ ،‫م‬‫ی‬‫تواند‬‫برای‬ ‫مهمی‬ ‫پیامدهای‬ ‫از‬ ‫بعضی‬ .‫باشد‬ ‫داشته‬ ‫خود‬ ‫کاربر‬‫زبانها‬‫اشتباهات‬ ‫برخی‬ ‫معرض‬ ‫در‬ ‫بیشتر‬‫می‬‫باشند‬‫خاطر‬ ‫به‬ ،‫شان‬ ‫خصوصیات‬‫به‬ ‫نیاز‬ ‫به‬ ‫نسبت‬ ‫کامپایلر‬ ‫بیشتر‬ ‫بررسی‬‫زبانهای‬‫دیگر‬‫دارند‬.‫کردن‬ ‫پیدا‬ ‫کارش‬ ‫زدایی‬ ‫اشکال‬‫اشکاالت‬‫برنامه‬ ‫عین‬ ‫در‬ ‫که‬ ‫است‬ ‫ک‬ ‫این‬ .‫میدهد‬ ‫رخ‬ ‫نویسی‬‫باشد‬ ‫داشته‬ ‫آگاهی‬ ‫آن‬ ‫بر‬ ‫باید‬ ‫بنابراین‬ ‫میشود‬ ‫انجام‬ ‫نویس‬ ‫برنامه‬ ‫خود‬ ‫توسط‬ ‫ار‬ 0.6.0‫افزار‬ ‫نرم‬ ‫زدایی‬ ‫اشکال‬ ‫با‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫تفاوت‬ ‫های‬ ‫روش‬ ‫در‬‫انجینری‬‫افزار‬ ‫نرم‬‫قدیمی‬‫نمی‬ ‫توجه‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫به‬‫شد‬‫و‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫بین‬ ‫فرق‬ ‫مردم‬ ‫که‬ ‫دلیل‬ ‫این‬ ‫به‬ ‫نکرده‬ ‫درک‬ ‫را‬ ‫زدایی‬ ‫اشکال‬.‫بودند‬ ‫که‬ ‫کاری‬ ‫و‬ ‫میشد‬ ‫مشکل‬ ‫دچار‬ ‫کردم‬ ‫می‬ ‫نوشته‬ ‫که‬ ‫کدهایی‬ ‫از‬ ‫خیلی‬ ‫بودم‬ ‫کرده‬ ‫نویسی‬ ‫برنامه‬ ‫به‬ ‫شروع‬ ‫من‬ ‫که‬ ‫اوایل‬ ‫در‬ ‫کمی‬ .‫میداد‬ ‫کار‬ ‫بودم‬ ‫نوشته‬ ‫که‬ ‫کدی‬ ‫میکردم‬ ‫رفع‬ ‫را‬ ‫آن‬ ‫های‬ ‫اشکال‬ ‫که‬ ‫زمانی‬ ‫ولی‬ ‫نمیداد‬ ‫انجام‬ ‫را‬ ‫داشتم‬ ‫را‬ ‫آن‬ ‫توقع‬ ‫من‬ ‫ایج‬ ‫جداگانه‬ ‫کالس‬ ‫دو‬ ‫توانستم‬ ‫که‬ ‫بعدتر‬‫کدهای‬ ‫از‬ ‫مشکل‬ ‫که‬ ‫میکردم‬ ‫برخورد‬ ‫مشکل‬ ‫به‬ ‫آنها‬ ‫سازی‬ ‫یکجا‬ ‫موقع‬ ‫در‬ ‫کنم‬ ‫اد‬ ‫نرم‬ ‫تست‬ ‫خطاها‬ ‫گونه‬ ‫این‬ ‫رفع‬ ‫به‬ .‫بود‬ ‫کالس‬ ‫دو‬ ‫آن‬ ‫سازی‬ ‫جا‬ ‫یک‬ ‫طریقه‬ ‫در‬ ‫مشکل‬ ‫بلکه‬ ‫نبود‬ ‫ها‬ ‫کالس‬ ‫در‬ ‫شده‬ ‫نوشته‬ .‫میسازیم‬ ‫یکجا‬ ‫هم‬ ‫با‬ ‫را‬ ‫کالس‬ ‫چندین‬ ‫یا‬ ‫دو‬ ‫آن‬ ‫نتیجه‬ ‫در‬ ‫که‬ ‫میگویند‬ ‫افزار‬ ‫هدفشا‬ ‫آنها‬ ‫دو‬ ‫هر‬‫را‬ ‫میشود‬ ‫ایجاد‬ ‫نویسی‬ ‫برنامه‬ ‫وقت‬ ‫در‬ ‫که‬ ‫خطاهایی‬ ‫زدایی‬ ‫اشکال‬ .‫است‬ ‫افزار‬ ‫نرم‬ ‫کیفیت‬ ‫بردن‬ ‫باال‬ ‫ن‬ ‫رفع‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫کاربردی‬ ‫خطاهای‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫و‬ ‫میشود‬ ‫انجام‬ ‫نویس‬ ‫برنامه‬ ‫توسط‬ ‫زدایی‬ ‫اشکال‬ ‫این‬ .‫میکند‬ ‫رفع‬ .‫باشد‬ ‫سیستمی‬ ‫که‬ ‫است‬ ‫ممکن‬ ‫خطاها‬ ‫این‬ ‫میکند‬ ‫هی‬ ‫اگر‬ ‫حتی‬ ‫مثال‬ ‫برای‬‫عبارت‬ ‫به‬ ‫شود‬ ‫کشف‬ ‫افزار‬ ‫نرم‬ ‫در‬ ‫نقص‬ ‫و‬ ‫عیب‬ ‫است‬ ‫ممکن‬ ‫نباشد‬ ‫موجود‬ ‫برنامه‬ ‫در‬ ‫اشکالی‬ ‫چ‬ ‫برای‬ ‫که‬ ‫میکند‬ ‫شناسایی‬ ‫را‬ ‫شرایطی‬ ‫تست‬ ‫حالیکه‬ ‫در‬ ‫میکند‬ ‫ارضاء‬ ‫را‬ ‫شده‬ ‫تعیین‬ ‫پیش‬ ‫از‬ ‫مشخصات‬ ‫زدایی‬ ‫اشکال‬ ‫دیگر‬ ‫میکند‬ ‫مشکل‬ ‫ایجاد‬ ‫کاربران‬ ‫ت‬ ‫نکته‬ ‫این‬ ‫بر‬ ‫زدایی‬ ‫اشکال‬ ‫توسط‬ ‫شده‬ ‫پیدا‬ ‫های‬ ‫اشکال‬‫در‬ ‫یا‬ ‫و‬ ‫نشده‬ ‫برآورده‬ ‫است‬ ‫بوده‬ ‫مدنظر‬ ‫که‬ ‫منطقی‬ ‫که‬ ‫دارد‬ ‫وجه‬ ‫تست‬ ‫توسط‬ ‫که‬ )‫سیستمی(کاربری‬ ‫میشود.خطاهای‬ ‫خطا‬ ‫ایجاد‬ ‫باعث‬ ‫که‬ ‫است‬ ‫بوده‬ ‫اشکاالتی‬ ‫است‬ ‫شده‬ ‫نوشته‬ ‫که‬ ‫کدهایی‬ ‫توسع‬ ‫طوری‬ ‫باید‬ ‫افزار‬ ‫نرم‬ ‫علت‬ ‫همین‬ ‫به‬ .‫است‬ ‫آن‬ ‫کاربران‬ ‫و‬ ‫افزار‬ ‫نرم‬ ‫برای‬ ‫مشکل‬ .‫میشود‬ ‫شناسایی‬ ‫افزار‬ ‫نرم‬‫یابد‬ ‫ه‬ ( ‫اشکال‬ ‫دارای‬ ‫که‬ ‫افزارهایی‬ ‫نرم‬ .‫نیاید‬ ‫پیش‬ ‫مشکالت‬ ‫این‬ ‫که‬Bug‫نویس‬ ‫برنامه‬ ‫مهارت‬ ‫و‬ ‫تجربگی‬ ‫کم‬ ‫خاطر‬ ‫به‬ ‫است‬ ) ‫میدهد‬ ‫انجام‬ ‫را‬ ‫تست‬ ‫که‬ ‫کسی‬ ‫اگر‬ .‫ببرد‬ ‫باال‬ ‫را‬ ‫خود‬ ‫مهارت‬ ‫سطح‬ ‫که‬ ‫است‬ ‫موظف‬ ‫نویس‬ ‫برنامه‬ ‫اینجا‬ ‫در‬ ‫آید‬ ‫می‬ ‫وجود‬ ‫به‬ ‫ا‬ ‫بسیاری‬ ‫که‬ ‫است‬ ‫ممکن‬ ‫باشد‬ ‫نویس‬ ‫برنامه‬ ‫خود‬.‫نشوند‬ ‫کشف‬ ‫وقت‬ ‫هیچ‬ ‫اشکاالت‬ ‫ز‬‫نرم‬ ‫شکست‬ ‫با‬ ‫مساوی‬ ‫کار‬ ‫این‬ ‫که‬ .‫باشد‬ ‫مجزا‬ ‫توسعه‬ ‫گروه‬ ‫از‬ ‫کننده‬ ‫تست‬ ‫تیم‬ ‫که‬ ‫میشود‬ ‫توصیه‬ ، ‫بنابراین‬ . ‫بود‬ ‫خواهد‬ ‫افزار‬ ‫هنوز‬ ‫است‬ ‫بوده‬ ‫نویس‬ ‫برنامه‬ ‫خود‬ ‫آن‬ ‫کننده‬ ‫تست‬ ‫اینکه‬ ‫علت‬ ‫به‬ ‫هم‬ ‫سال‬ ‫چندین‬ ‫گذشت‬ ‫با‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫هایی‬ ‫افزار‬ ‫نرم‬ ‫ا‬ ‫دارای‬ ‫هم‬‫میشود‬ ‫افزار‬ ‫نرم‬ ‫شدن‬ ‫کیفیت‬ ‫کم‬ ‫باعث‬ ‫زمان‬ ‫مرور‬ ‫به‬ ‫ها‬ ‫اشکال‬ ‫این‬ .‫میباشد‬ ‫شکال‬.[7]
  • 17. 5 ‫جدول‬2‫برنامه‬ ‫تست‬ ‫و‬ ‫زدایی‬ ‫اشکال‬ ‫تفاوت‬[8] ‫زدایی‬ ‫اشکال‬Debugging( ‫کردن‬ ‫تست‬Testing) ‫هدف‬( ‫اشکاالت‬ ‫رفع‬Bug)‫انتظار‬ ‫مورد‬ ‫کیفیت‬ ‫تضمین‬ ‫و‬ ‫ارزیابی‬ ‫مور‬ ‫یا‬ ‫موضوع‬‫د‬‫برنامه‬)‫افزار‬ ‫نرم‬ ‫شامل‬ ( ‫سیستم‬ ‫کار‬‫اشتباهات‬ ‫و‬ ‫خطاها‬ ‫تصحیح‬‫خطاها‬ ‫شناسایی‬ ‫دهنده‬ ‫انجام‬‫نویس‬ ‫برنامه‬‫کننده‬ ‫تست‬ ‫شروع‬‫افزار‬ ‫نرم‬ ‫کدهای‬ ‫نوشتن‬ ‫از‬ ‫بعد‬‫میشود‬ ‫شروع‬ ‫نیازها‬ ‫شناسایی‬ ‫مرحله‬ ‫از‬ ‫تست‬ ‫طرح‬ ‫یک‬ ‫پایان‬--------‫کند‬ ‫می‬ ‫اعالم‬ ‫تست‬ ‫مسئول‬ 0.1‫افزار‬ ‫نرم‬ ‫تست‬ ‫چرخه‬ ‫ا‬‫در‬ ‫تست‬ ‫فرآیند‬ ‫گرچه‬‫های‬ ‫شرکت‬‫میباشد‬ ‫زیر‬ ‫چرخه‬ ‫چندین‬ ‫داری‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫اما‬ ‫است‬ ‫متفاوت‬ ‫مختلف‬ ‫انجام‬ ‫افزار‬ ‫نرم‬ ‫زندگی‬ ‫چرخه‬ ‫نیازها‬ ‫تحلیل‬ ‫فاز‬ ‫در‬ ‫باید‬ ‫تست‬ ‫فرآیند‬ :‫نیازها‬ ‫تحلیل‬‫بپذیرد‬. ‫تحلیل‬‫تست‬ ‫طراحی‬ ‫فاز‬ ‫طی‬ ‫در‬ : ‫طراحی‬‫گان‬ ‫کنند‬‫شود‬ ‫مشخص‬ ‫تا‬ ‫میکنند‬ ‫همکاری‬ ‫طراحان‬ ‫با‬‫قسمت‬ ‫کدام‬ ‫که‬ ‫کدام‬ ‫از‬ ‫تست‬ ‫هنگام‬ ‫در‬ ‫و‬ ‫است‬ ‫تست‬ ‫قابل‬ ‫طراحی‬ ‫از‬‫ها‬ ‫پارامتر‬.‫شود‬ ‫استفاده‬ ‫باید‬ ‫میشود‬ ‫مشخص‬ ‫تست‬ ‫استراتژی‬ ‫مرحله‬ ‫این‬ ‫در‬ :‫تست‬ ‫طراحی‬ ‫تست‬ :‫تست‬ ‫اجرای‬‫گان‬ ‫کنند‬‫دهنده‬ ‫توسعه‬ ‫تیم‬ ‫به‬ ‫را‬ ‫خطا‬ ‫گونه‬ ‫هر‬ ‫و‬ ‫میکنند‬ ‫تست‬ ‫و‬ ‫کرده‬ ‫اجرا‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫میکنند‬ ‫گزارش‬ :‫تست‬ ‫گزارش‬‫تست‬ ‫شد‬ ‫تکمیل‬ ‫تست‬ ‫فرآیند‬ ‫اینکه‬ ‫از‬ ‫بعد‬‫گان‬ ‫کنند‬‫گزارش‬ ‫یک‬ ‫قالب‬ ‫در‬ ‫را‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫نتایج‬ .‫خیر‬ ‫یا‬ ‫است‬ ‫استفاده‬ ‫قابل‬ ‫افزار‬ ‫نرم‬ ‫آیا‬ ‫که‬ ‫شود‬ ‫می‬ ‫مشخص‬ ‫و‬ ‫میکنند‬ ‫تهیه‬[9] 0.1‫ها‬ ‫تست‬ ‫بندی‬ ‫دسته‬ ‫صورت‬ ‫دو‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫تست‬‫ساكن‬8 ‫پویا‬ ‫و‬9 ‫ا‬ ‫را‬ ‫برنامه‬ ‫پویا‬ ‫تست‬ ‫روش‬ ‫در‬ ‫میشود‬ ‫انجام‬‫آن‬ ‫نتایج‬ ‫سپس‬ ‫و‬ ‫کرده‬ ‫جرا‬ ‫و‬ ‫میگیرد‬ ‫قرار‬ ‫بررسی‬ ‫مورد‬‫تست‬‫ساکن‬‫تحلیل‬.‫شود‬ ‫اجرا‬ ‫برنامه‬ ‫اینکه‬ ‫بدون‬ ‫است‬ ‫افزار‬ ‫نرم‬ ‫کدهای‬ ‫تست‬‫ساکن‬‫و‬ ‫کدها‬ ‫یعنی‬ ‫میکنیم‬ ‫بررسی‬ ‫آن‬ ‫ساختاری‬ ‫شکل‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫آن‬ ‫طی‬ ‫که‬ ‫میشود‬ ‫گفته‬ ‫هایی‬ ‫فعالیت‬ ‫مجموعه‬ ‫به‬ ‫است‬ ‫شده‬ ‫ساخته‬ ‫آن‬ ‫برای‬ ‫که‬ ‫هایی‬ ‫دیاگرام‬.‫میدهیم‬ ‫قرار‬ ‫بازبینی‬ ‫مورد‬ ‫را‬‫ندارد‬ ‫نیاز‬ ‫قبلی‬ ‫دانش‬ ‫هیچ‬ ‫به‬ ‫پویا‬ ‫تست‬ ‫اما‬ 8 Static 9 Daynamic
  • 18. 6 ‫تست‬‫ساکن‬‫پذیرد‬ ‫انجام‬ ‫متخصص‬ ‫یک‬ ‫توسط‬ ‫باید‬ ‫حتما‬‫نرم‬ ‫که‬ ‫کسی‬ ‫به‬ ‫ریپورت‬ ‫یک‬ ‫که‬ ‫است‬ ‫این‬ ‫ساکن‬ ‫تست‬ ‫خوبی‬ ‫م‬ ‫انجام‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫طی‬ ‫در‬ ‫تست‬ ‫این‬ ‫که‬ ‫این‬ ‫همیچنان‬ ‫و‬ .‫میشود‬ ‫داده‬ ‫است‬ ‫کرده‬ ‫ایجاد‬ ‫را‬ ‫افزار‬‫اینکه‬ ‫از‬ ‫بعد‬ ‫نه‬ ‫یشود‬ .‫میکند‬ ‫تر‬ ‫نزدیک‬ ‫هدفش‬ ‫به‬ ‫را‬ ‫نویس‬ ‫برنامه‬ ‫کار‬ ‫این‬ . ‫باشد‬ ‫کرده‬ ‫تمام‬ ‫را‬ ‫برنامه‬ ‫نویس‬ ‫برنامه‬ 0.1‫سنجی‬ ‫اعتبار‬‫افزار‬ ‫نرم‬ ‫بازبینی‬ ‫و‬ ‫افزار‬ ‫نرم‬ ‫سنجی‬ ‫اعتبار‬10 ‫بینی‬ ‫باز‬ ‫و‬ ‫افزار‬ ‫نرم‬11 ‫افزار‬ ‫نرم‬‫در‬‫انجینری‬‫نرم‬‫به‬ ‫افزار‬‫فعالیتی‬‫می‬ ‫گفته‬‫که‬ ‫شود‬‫ای‬ ‫طول‬ ‫در‬‫نرم‬ ‫جاد‬ ‫نه؟‬ ‫یا‬ ‫دارد‬ ‫را‬ ‫دلخواه‬ ‫کیفیت‬ ‫برنامه‬ ‫که‬ ‫شود‬ ‫مشخص‬ ‫اینکه‬ ‫تا‬ ‫میشود‬ ‫انجام‬ ‫افزار‬ ‫نرم‬ ‫کار‬ ‫اتمام‬ ‫از‬ ‫بعد‬ ‫یا‬ ‫و‬ ‫افزار‬ :‫افزار‬ ‫نرم‬ ‫بازبینی‬‫میشود؟‬ ‫ساخته‬ ‫صحیح‬ ‫صورت‬ ‫به‬ ‫محصول‬ ‫آیا‬ Verification : Are you building it right? ‫افزار‬ ‫نرم‬ ‫بازبینی‬ ‫در‬‫را‬ ‫موضوع‬ ‫این‬.‫هست‬ ‫ما‬ ‫اهداف‬ ‫با‬ ‫مطابق‬ ‫ایم‬ ‫کرده‬ ‫ایجاد‬ ‫که‬ ‫محصولی‬ ‫که‬ ‫میکنیم‬ ‫بررسی‬ ‫اختالل‬ ‫ایجاد‬ ‫باعث‬ ‫که‬ ‫میکند‬ ‫عمل‬ ‫آن‬ ‫برخالف‬ ‫ولی‬ ‫دهد‬ ‫انجام‬ ‫را‬ ‫عملیه‬ ‫یک‬ ‫باید‬ ‫افزار‬ ‫نرم‬ ‫از‬ ‫قسمت‬ ‫یک‬ ‫مثال‬ ‫طور‬ ‫به‬ ‫میشود‬ ‫سیستم‬ ‫کل‬ ‫در‬ ‫سنجی‬ ‫اعتبار‬:‫افزار‬ ‫نرم‬‫میشود؟‬ ‫ساخته‬ ‫صحیحی‬ ‫محصول‬ ‫آیا‬ Validation: Are you building the right thing? ‫میتواند‬ ‫را‬ ‫مشتری‬ ‫های‬ ‫خواسته‬ ‫آیا‬ ‫شده‬ ‫ایجاد‬ ‫افزار‬ ‫نرم‬ ‫که‬ ‫است‬ ‫این‬ ‫کننده‬ ‫تست‬ ‫و‬ ‫نویس‬ ‫برنامه‬ ‫نظر‬ ‫سنجی‬ ‫اعتبار‬ ‫در‬ ‫؟‬ ‫نه‬ ‫یا‬ ‫کند‬ ‫پوره‬.‫میشود‬ ‫انجام‬ ‫نیازها‬ ‫با‬ ‫مقایسه‬ ‫در‬ ‫همیشه‬ ‫اعتبارسنجی‬ ‫که‬ ‫است‬ ‫کرده‬ ‫ما‬ ‫از‬ ‫درخواستی‬ ‫یک‬ ‫کاربر‬ ‫مثال‬ ‫طور‬ ‫به‬‫نمایش‬ ‫دیگر‬ ‫نحوی‬ ‫به‬ ‫قابلیت‬ ‫این‬ ‫ولیکن‬ ‫باشد‬ ‫افزار‬ ‫نرم‬ ‫در‬ ‫باید‬ .‫کند‬ ‫ایجاد‬ ‫را‬ ‫قابلیت‬ ‫که‬ ‫است‬ ‫موظف‬ ‫نویس‬ ‫پروگرام‬ ‫بنابراین‬ .‫میدهد‬[10] 0.01‫دارد؟‬ ‫قرار‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫چرخه‬ ‫یا‬ ‫فرآیند‬ ‫مرحله‬ ‫کدام‬ ‫در‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫تست‬ ‫به‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫مهم‬ ‫های‬ ‫بخش‬ ‫از‬ ‫یکی‬ ‫زیر‬ ‫شکل‬ ‫در‬‫که‬ ‫میدهد‬ ‫نشان‬ ‫این‬ .‫است‬ ‫داده‬ ‫تخصیص‬ ‫افزار‬ ‫نرم‬ ‫فقط‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫طی‬ ‫در‬ ‫که‬ ‫نیست‬ ‫معنی‬ ‫این‬ ‫به‬ ‫این‬ . ‫است‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫نشدنی‬ ‫جدا‬ ‫اجزای‬ ‫از‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫فوکس‬ ‫بیشترین‬ ‫مرحله‬ ‫این‬ ‫در‬ ‫کم‬ ‫مقدار‬ ‫به‬ ‫اما‬ ‫میشود‬ ‫انجام‬ ‫تست‬ ‫مراحل‬ ‫تمام‬ ‫در‬ . ‫میشود‬ ‫انجام‬ ‫تست‬ ‫آن‬ ‫چهارم‬ ‫مرحله‬ ‫در‬ ‫خدمات‬ ‫یا‬ ‫نگهداری‬ ‫مرحله‬ ‫از‬ ‫قبل‬ ‫افزار‬ ‫نرم‬ ‫تست‬ .‫دارد‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫در‬ ‫زیاد‬ ‫اهمیت‬ ‫بنابراین‬ .‫میاشد‬ ‫تست‬ ‫روی‬ ‫بر‬ .‫دهد‬ ‫انجام‬ ‫را‬ ‫فعالیتی‬ ‫که‬ ‫دارد‬ ‫را‬ ‫این‬ ‫قابلیت‬ ‫برنامه‬ ‫و‬ ‫است‬ ‫شده‬ ‫کامل‬ ‫نویسی‬ ‫برنامه‬ ‫مرحله‬ ‫این‬ ‫در‬ . ‫میباشد‬ ‫تولید‬ ‫از‬ ‫بعد‬ 10 Validation 11 Verification
  • 19. 7 ‫شکل‬2:‫مرح‬‫افزار‬ ‫نرم‬ ‫تست‬ ‫شروع‬ ‫اصلی‬ ‫له‬ 0.00‫استانداردهای‬‫افزار‬ ‫نرم‬ ‫تست‬ .‫میشود‬ ‫تست‬ ‫پروسه‬ ‫شدن‬ ‫بهتر‬ ‫باعث‬ ‫استانداردها‬ ‫این‬ .‫میباشد‬ ‫استانداردهای‬ ‫دارای‬ ‫کمپیوتر‬ ‫علوم‬ ‫همه‬ ‫مانند‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫تست‬ [17] ISO/IEC 9126: This standard deals with the following aspects to determine the quality of a software application: 1. Quality model 2. External metrics 3. Internal metrics 4. Quality in use metrics. This standard presents some set of quality attributes for any Software such as: 1. Functionality 2. Reliability 3. Usability 4. Efficiency 5. Maintainability 6. Portability IEEE 829: A standard for the format of documents used in different stages of software testing. IEEE 1061: A methodology for establishing quality requirements, identifying, implementing, nalyzing, and validating the process and product of software quality metrics is defined. BS 7925-1: A vocabulary of terms used in software testing. BS 7925-2: A standard for software component testing.
  • 20. 8 IEEE 1008: A standard for unit testing. IEEE 1012: A standard for Software Verification and Validation. 0.04‫فصل‬ ‫خالصه‬‫اول‬ ‫افزار‬ ‫نرم‬ ‫تست‬ .‫کنیم‬ ‫بازگو‬ ‫را‬ ‫آن‬ ‫اهمیت‬ ‫همچنین‬ ‫و‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫از‬ ‫درستی‬ ‫تعریف‬ ‫که‬ ‫بود‬ ‫این‬ ‫بر‬ ‫سعی‬ ‫فصل‬ ‫این‬ ‫در‬ ‫اهمیت‬ ‫آن‬ ‫به‬ ‫یا‬ ‫و‬ ‫ندهیم‬ ‫انجام‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫که‬ ‫صورتی‬ ‫در‬ . ‫است‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫نشدنی‬ ‫جدا‬ ‫های‬ ‫بخش‬ ‫از‬ ‫یکی‬ ‫افزاری‬ ‫نرم‬ ‫که‬ ‫است‬ ‫ممکن‬ ‫نشود‬ ‫داده‬‫اینکه‬ ‫یا‬ ‫و‬ ‫نباشد‬ ‫برخوردار‬ ‫ای‬ ‫مالحظه‬ ‫قابل‬ ‫قابلیت‬ ‫و‬ ‫کیفیت‬ ‫از‬ ‫میکنیم‬ ‫تولید‬ ‫که‬ ‫معنوی‬ ‫و‬ ‫مالی‬ ‫خسارات‬ ‫این‬ ‫که‬ ‫بیاورد‬ ‫بار‬ ‫به‬ ‫را‬ ‫زیادی‬ ‫خساراتی‬ ‫میشود‬ ‫باعث‬ ‫که‬ ‫شود‬ ‫مواجه‬ ‫شکست‬ ‫با‬ ‫ما‬ ‫افزار‬ ‫نرم‬ .‫است‬‫اس‬ ‫سازی‬ ‫افزار‬ ‫نرم‬ ‫شرکت‬ ‫دوش‬ ‫بر‬ ‫آید‬ ‫می‬ ‫بار‬ ‫به‬ ‫شکست‬ ‫نتیجه‬ ‫در‬ ‫که‬ ‫مالی‬ ‫خسارات‬‫بیشتر‬ ‫معنوی‬ ‫خسارات‬ .‫ت‬ .‫است‬ ‫نویس‬ ‫برنامه‬ ‫بر‬ ‫مستقیم‬ ‫تاثیر‬ ‫اوقات‬ ‫جهانی‬ ‫سازمان‬ISO‫و‬IEEE‫نیز‬‫استانداردهای‬‫آن‬ ‫توسط‬ ‫که‬ ‫اند‬ ‫کرده‬ ‫ایجاد‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫و‬ ‫افزار‬ ‫نرم‬ ‫کیفیت‬ ‫برای‬ ‫کیفیت‬ ‫آنها‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫افزارهای‬ ‫نرم‬‫شو‬ ‫می‬ ‫بهتر‬ ‫و‬ ‫بیشتر‬ ‫افزار‬ ‫نرم‬ ‫ماندگاری‬ ‫و‬.‫د‬
  • 21. ‫پارتو‬ ‫قانون‬:%81‫در‬ ‫نشده‬ ‫کشف‬ ‫خطاهاي‬21%‫است‬ ‫کد‬ ‫دوم‬ ‫فصل‬ TESTING METHOD
  • 22. 10 ‫دوم‬ ‫فصل‬ 4.0‫افزار‬ ‫نرم‬ ‫تست‬ ‫نرم‬ ‫تست‬ . ‫است‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫های‬ ‫بخش‬ ‫ترین‬ ‫مهم‬ ‫از‬ ‫یکی‬ ‫شد‬ ‫گفته‬ ‫قبلی‬ ‫فصل‬ ‫در‬ ‫که‬ ‫همانطور‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫شود‬ ‫بازار‬ ‫وارد‬ ‫اینکه‬ ‫از‬ ‫قبل‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫کار‬ ‫درستی‬ ‫میتواند‬ ‫و‬ ‫میکند‬ ‫بررسی‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫یک‬ ‫اعتبار‬ ‫و‬ ‫کیفیت‬ ‫افزار‬ .‫کند‬ ‫بررسی‬ ‫را‬‫افزار‬ ‫نرم‬ ‫تست‬ ‫برای‬ .‫دهد‬ ‫اطمینان‬ ‫اند‬ ‫کرده‬ ‫که‬ ‫کاری‬ ‫از‬ ‫را‬ ‫دهنده‬ ‫توسعه‬ ‫تیم‬ ‫که‬ ‫میشود‬ ‫باعث‬ ‫کار‬ ‫این‬ ‫دارد‬ ‫وجود‬ ‫مختلفی‬ ‫های‬ ‫روش‬‫کمبودی‬ ‫و‬ ‫ها‬ ‫مزیت‬ ‫دارای‬ ‫روش‬ ‫هر‬ .‫ا‬ ‫با‬ ‫که‬ ‫میباشد‬ ‫های‬‫میتوان‬ ‫روش‬ ‫چند‬ ‫از‬ ‫ستفاده‬ ‫کمبودی‬‫میشو‬ ‫تولید‬ ‫که‬ ‫افزارهایی‬ ‫نرم‬ ‫بیشتر‬ .‫کرد‬ ‫تصریح‬ ‫را‬ ‫آن‬ ‫های‬‫ن‬‫میکنند‬ ‫استفاده‬ ‫کلی‬ ‫روش‬ ‫دو‬ ‫از‬ ‫د‬.(White Box Testing)‫و‬(Black Box Testing)‫مورد‬ ‫که‬ ‫است‬ ‫روشی‬ ‫دو‬‫استفاده‬.‫دارند‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫در‬ ‫بیشتری‬ (‫سفید‬ ‫جعبه‬ ‫تست‬White Box Testing)‫میکنند‬ ‫صرف‬ ‫را‬ ‫خود‬ ‫وقت‬ ‫بیشترین‬ ‫دارند‬ ‫برعهده‬ ‫را‬ ‫برنامه‬ ‫تست‬ ‫که‬ ‫کسانی‬ ‫در‬ ‫که‬ ‫دلیل‬ ‫این‬ ‫به‬‫و‬ ‫کدها‬ ‫تمام‬ ‫آنها‬ .‫است‬ ‫برنامه‬ ‫کدهای‬ ‫بر‬ ‫تمرکز‬ ‫روش‬ ‫این‬‫متد‬‫های‬‫موجود‬‫بررسی‬ ‫مورد‬ ‫را‬ ‫برنامه‬ ‫در‬ ‫میگیرد‬ ‫بر‬ ‫در‬ ‫را‬ ‫زیادی‬ ‫هزینه‬ ‫و‬ ‫وقت‬ ‫دلیل‬ ‫همین‬ ‫به‬ ‫میدهند‬ ‫قرار‬ ( ‫سیاه‬ ‫جعبه‬ ‫تست‬Black Box Testing)‫کدهای‬ ‫به‬ ‫کاری‬ ‫دارند‬ ‫برعهده‬ ‫را‬ ‫برنامه‬ ‫تست‬ ‫که‬ ‫کسانی‬ ‫روش‬ ‫این‬ ‫در‬ ‫ندا‬ ‫برنامه‬‫که‬ ‫کسی‬ ‫نیست‬ ‫نیازی‬ ‫روش‬ ‫این‬ ‫در‬ ‫اینکه‬ ‫یعنی‬ ‫میدهند‬ ‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫را‬ ‫برنامه‬ ‫های‬ ‫خروجی‬ ‫فقط‬ ‫آنها‬ ‫رند‬ ‫که‬ ‫مشکالتی‬ ‫و‬ ‫میکنند‬ ‫کار‬ ‫برنامه‬ ‫با‬ ‫که‬ ‫میباشند‬ ‫برنامه‬ ‫کاربران‬ ‫آنها‬ ‫حقیقت‬ ‫در‬ .‫بداند‬ ‫چیزی‬ ‫تست‬ ‫علم‬ ‫از‬ ‫است‬ ‫کننده‬ ‫تست‬ ‫گز‬ ‫یک‬ ‫صورت‬ ‫به‬ ‫را‬ ‫میکنند‬ ‫پیدا‬ ‫برنامه‬ ‫با‬ ‫کار‬ ‫حین‬ ‫در‬.‫میکنند‬ ‫ارائه‬ ‫دهنده‬ ‫توسعه‬ ‫تیم‬ ‫به‬ ‫ارش‬ 4.4Black Box Testing ‫شکل‬1:‫عمومی‬ ‫حالت‬Black Box
  • 23. 11 ‫افزاری‬ ‫نرم‬‫کرد‬ ‫تست‬ ‫برای‬‫ن‬‫گروه‬ ‫جزء‬ ‫شما‬ ‫یا‬ ‫و‬ ‫باشد‬ ‫شده‬ ‫ساخته‬ ‫شما‬ ‫برای‬ ‫است‬ ‫ممکن‬ ‫افزار‬ ‫نرم‬ ‫این‬ . ‫دارد‬ ‫وجود‬ .‫باشید‬ ‫تست‬‫ای‬ ‫کرد‬ ‫کار‬ ‫از‬ ‫بتوانیم‬ ‫اینکه‬ ‫برای‬‫توسعه‬ ‫تیم‬ ‫توسط‬ ‫که‬ ‫هایی‬ ‫قابلیت‬ ‫است‬ ‫این‬ ‫راه‬ ‫بهترین‬ ‫شویم‬ ‫مطلع‬ ‫برنامه‬ ‫ن‬ ‫و‬ ‫کدها‬ ‫از‬ ‫ما‬ ‫حقیقت‬ ‫در‬ .‫کنیم‬ ‫اجرا‬ ‫را‬ ‫برنامه‬ ‫آن‬ ‫از‬ ‫بعد‬ ‫و‬ ‫دهیم‬ ‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫را‬ ‫است‬ ‫شده‬ ‫داده‬ ‫افزار‬ ‫نرم‬‫متد‬‫های‬ ‫ندا‬ ‫را‬ ‫اطالعات‬ ‫این‬ ‫اینکه‬ ‫فهم‬ ‫با‬ ‫و‬ ‫نداریم‬ ‫اطالعی‬ ‫هیچ‬ ‫است‬ ‫موجود‬ ‫برنامه‬ ‫این‬ ‫در‬ ‫که‬‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫را‬ ‫برنامه‬ ‫ریم‬ .‫میدهیم‬( ‫نداریم‬ ‫اطالعی‬ ‫افزار‬ ‫نرم‬ ‫کدهای‬ ‫از‬ ‫ما‬ ‫که‬ ‫این‬ ‫دلیل‬ ‫به‬ ‫تست‬ ‫این‬ ‫در‬11‫انجام‬ ‫را‬ ‫تست‬ ‫این‬ ‫که‬ ‫کسانی‬ ‫از‬ ‫درصد‬ ‫فقط‬ ‫ما‬ ‫علت‬ ‫این‬ ‫به‬ )‫ندارند‬ ‫یاد‬ ‫را‬ ‫نویسی‬ ‫برنامه‬ ‫اصال‬ ‫میدهند‬‫مشخص‬ ‫افزار‬ ‫نرم‬ ‫در‬ ‫ما‬ ‫برای‬ ‫نویس‬ ‫برنامه‬ ‫که‬ ‫اهدافی‬ ‫را‬ ‫است‬ ‫کرده‬‫چیز‬ ‫به‬ ‫و‬ ‫میدهیم‬ ‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫را‬ ‫برنامه‬ ‫های‬ ‫خروجی‬ ‫و‬ ‫ها‬ ‫ورودی‬ ‫یعنی‬ . ‫میگیریم‬ ‫بررسی‬ ‫مورد‬ . ‫میدهیم‬ ‫گزارش‬ ‫نویس‬ ‫برنامه‬ ‫به‬ ‫را‬ ‫آن‬ ‫کردیم‬ ‫پیدا‬ ‫افزار‬ ‫نرم‬ ‫اجرا‬ ‫در‬ ‫مشکلی‬ ‫اگر‬ ‫و‬ ‫نمیکنم‬ ‫دخالت‬ ‫دیگر‬‫روش‬ ‫این‬ .‫ندارد‬ ‫نویسی‬ ‫برنامه‬ ‫همچنین‬ ‫و‬ ‫کدها‬ ‫فهمیدن‬ ‫به‬ ‫زیادی‬ ‫نیازی‬ 4.4.0‫م‬‫روش‬ ‫این‬ ‫زایای‬ ‫کرد‬ ‫پیدا‬ ‫را‬ ‫مشکالت‬ ‫میتوان‬ ‫سریع‬ ‫صورت‬ ‫به‬ ‫میگیرد‬ ‫بر‬ ‫در‬ ‫را‬ ‫کمتری‬ ‫وقت‬ ‫یعنی‬ .‫است‬ ‫ارزان‬ ‫باشیم‬ ‫داشته‬ ‫برنامه‬ ‫کدهای‬ ‫و‬ ‫نویسی‬ ‫برنامه‬ ‫زمینه‬ ‫در‬ ‫کافی‬ ‫مهارت‬ ‫که‬ ‫نیست‬ ‫نیازی‬ ‫ج‬ ‫را‬ ‫نظر‬ ‫مورد‬ ‫فرد‬ ‫که‬ ‫نیست‬ ‫نیازی‬ ‫بنابراین‬ .‫دهند‬ ‫انجام‬ ‫را‬ ‫تست‬ ‫این‬ ‫میتوانند‬ ‫مختلفی‬ ‫افراد‬‫کنیم‬ ‫ستجو‬ ‫و‬ ‫اند‬ ‫نشده‬ ‫استفاده‬ ‫که‬ ‫کدهایی‬ ‫به‬ .‫اند‬ ‫گرفته‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫که‬ ‫میشود‬ ‫تست‬ ‫ای‬ ‫برنامه‬ ‫کدهای‬ ‫روش‬ ‫این‬ ‫در‬ ‫نداریم‬ ‫کاری‬ ‫ندارند‬ ‫را‬ ‫خاصی‬ ‫نقش‬ ‫برنامه‬ ‫در‬ ‫اما‬ ‫اند‬ ‫شده‬ ‫استفاده‬ ‫اینکه‬ ‫یا‬‫روی‬ ‫بر‬ ‫تنها‬ ‫ما‬ ‫های‬ ‫ورودی‬ ‫یعنی‬ . ‫اجرا‬ ‫را‬ ‫برنامه‬ ‫است‬ ‫قرار‬ ‫که‬ ‫میشود‬ ‫تست‬ ‫کدهایی‬‫وظیفه‬ ‫پشت‬ ‫در‬ ‫و‬ ‫است‬ ‫افزار‬ ‫نرم‬ ‫در‬ ‫که‬ ‫کدهایی‬ ‫به‬ ‫و‬ ‫کنند‬ .‫نمیگیرد‬ ‫ارتباط‬ ‫دارند‬ ‫روش‬ ‫در‬Black Box Testing‫میکنیم‬ ‫بررسی‬ ‫را‬ ‫زیر‬ ‫موارد‬ ‫معموال‬ ‫این‬ ‫آیا‬‫افزار‬ ‫نرم‬‫میتواند؟‬ ‫اجرا‬ ‫را‬ ‫است‬ ‫کرده‬ ‫تعریف‬ ‫که‬ ‫عملیاتی‬ ‫غیر‬ ‫و‬ ‫عملیاتی‬ ‫های‬ ‫نیازمندی‬ ‫های‬ ‫ورودی‬‫افزار‬ ‫نرم‬‫یا‬ ‫دارند‬ ‫اعتبار‬‫نه؟‬ ‫ها‬ ‫ورودی‬‫صورت‬ ‫به‬ ‫که‬ ‫یی‬‫کمترین‬ ‫و‬ ‫بیشترین‬‫این‬ ‫در‬‫افزار‬ ‫نرم‬‫قبول‬ ‫مورد‬ ‫است‬ ‫شده‬ ‫تعیین‬‫افزار‬ ‫نرم‬‫است‬ ‫نه؟‬ ‫یا‬ ‫ها‬ ‫خروجی‬‫دارد‬ ‫انطباق‬ ‫افزار‬ ‫نرم‬ ‫ها‬ ‫ورودی‬ ‫با‬ ‫افزار‬ ‫نرم‬‫نه؟‬ ‫یا‬ ‫عملکرد‬‫افزار‬ ‫نرم‬‫برابر‬ ‫در‬‫پروسز‬‫قابل‬ ‫غیر‬ ‫و‬ ‫جدید‬ ‫های‬ ‫ورودی‬‫افزار‬ ‫نرم‬ ‫قبول‬‫است؟‬ ‫چگونه‬ [7] .44.4Equivalence partitioning‫مشابهات‬ ‫بندی‬ ‫(دسته‬12 ) 12 Equivalence partitioning
  • 24. 12 [12] :‫میکند‬ ‫دنبال‬ ‫را‬ ‫زیر‬ ‫اهداف‬ ‫که‬ ‫است‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫به‬ ‫مربوط‬ ‫روش‬ ‫یک‬ ‫به‬ ‫تست‬ ‫موارد‬ ‫تعداد‬ ‫کاهش‬‫مصرف‬ ‫تست‬ ‫اجرای‬ ‫در‬ ‫کمتری‬ ‫هزینه‬ ‫و‬ ‫وقت‬ ‫میشود‬ ‫باعث‬ ‫که‬ ‫مقدار‬ ‫کمترین‬ .‫شود‬ ‫همه‬ ‫تا‬ ‫درست‬ ‫تست‬ ‫موارد‬ ‫انتخاب‬‫را‬ ‫برنامه‬ ‫های‬ ‫قسمت‬‫های‬ ‫برگیرنده‬ ‫در‬ ‫تست‬ ‫موارد‬ ‫این‬ . ‫شود‬ ‫شامل‬ .‫باشد‬ ‫باید‬ ‫برنامه‬ ‫خروجی‬ ‫و‬ ‫ورودی‬ ‫های‬ ‫راه‬ ‫میشود‬ ‫اعمال‬ ‫نیز‬ ‫افزار‬ ‫نرم‬ ‫های‬ ‫خروجی‬ ‫در‬ ‫مشابهات‬ ‫بندی‬ ‫دسته‬ ‫موارد‬ ‫از‬ ‫بعضی‬ ‫در‬‫به‬ ‫روش‬ ‫این‬ ‫به‬ ‫معموال‬ ، ‫یک‬ ‫های‬ ‫ورودی‬‫اجزاء‬‫رفتار‬ ‫ویژگیهای‬ ‫از‬ ‫معموال‬ ‫معادل‬ ‫های‬ ‫قسمت‬ .‫میشود‬ ‫اعمال‬‫اجزاء‬‫یک‬ .‫میشوند‬ ‫مشخص‬ ‫ورودی‬‫محدوده‬13 ‫سایر‬ ‫و‬ ‫مجازند‬ ‫که‬ ‫دارد‬ ‫خاصی‬ ‫های‬‫محدوده‬‫برای‬ ‫درست‬ ‫اعداد‬ ‫مثال‬ ‫طور‬ ‫به‬ .‫مجازند‬ ‫غیر‬ ‫ها‬ ‫از‬ ‫ماه‬ ‫ورود‬2‫تا‬21‫این‬ .‫است‬ ‫حوت‬ ‫تا‬ ‫حمل‬ ‫دهنده‬ ‫نشان‬ ‫که‬ ‫است‬‫محدوده‬‫از‬ ‫بیشتر‬ ‫مقادیر‬ ‫بعدی‬ ‫مجاز‬ ‫غیر‬21 .‫هستند‬ ‫روش‬‫کردن‬ ‫تست‬‫افزار‬ ‫نرم‬‫دسته‬ ‫به‬ ‫مربوط‬ ‫که‬‫است‬ ‫مشابهات‬ ‫بندی‬‫تست‬ ‫استراتژی‬ ‫یک‬ ‫فقط‬ ‫که‬ ‫میکند‬ ‫بیان‬ ‫را‬ ‫این‬ ‫ندارد‬ ‫لزوم‬ ‫دیگری‬ ‫های‬ ‫استراتژی‬ ‫و‬ ‫میکند‬ ‫کفایت‬ ‫بخش‬ ‫هر‬ ‫برای‬‫اگر‬ ‫دیگر‬ ‫عبارت‬ ‫به‬ .‫در‬ ‫را‬ ‫تست‬ ‫استراتژی‬ ‫یک‬ . ‫نمیشود‬ ‫دیگری‬ ‫های‬ ‫استراتژی‬ ‫به‬ ‫دیگر‬ ‫نیازی‬ ‫بنابراین‬ .‫میکند‬ ‫کشف‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫خطاهای‬ ‫بدهیم‬ ‫انجام‬ ‫بخش‬ ‫هر‬ ‫میشوند‬ ‫حساب‬ ‫معادل‬ ‫بخش‬ ‫یک‬ ‫مقادیر‬.‫میکند‬ ‫را‬ ‫ها‬ ‫جویی‬ ‫صرفه‬ ‫از‬ ‫بخشی‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫روش‬ ‫این‬ ‫و‬‫بنابراین‬ . ‫میزان‬ ‫به‬ ‫تست‬ ‫موارد‬ ‫تعداد‬‫ای‬ ‫مالحظه‬ ‫قابل‬‫تست‬ ‫موارد‬ ‫شما‬ ‫که‬ ‫است‬ ‫این‬ ‫روش‬ ‫این‬ ‫مزایای‬ ‫از‬ ‫یکی‬ .‫باید‬ ‫می‬ ‫کاهش‬ "dirty.‫میکنید‬ ‫شناسایی‬ ‫را‬ "‫ت‬ ‫که‬ ‫است‬ ‫ممکن‬ ‫تجربه‬ ‫بی‬ ‫تستر‬ ‫یک‬‫از‬ ‫ها‬ ‫ماه‬ ‫در‬ ‫باال‬ ‫مثال‬ ‫مانند‬ ‫به‬ ‫را‬ ‫اعداد‬ ‫مام‬2‫تا‬ 21‫تعداد‬ ‫که‬ ‫دهد‬ ‫قرار‬ ‫ها‬ ‫ورودی‬ ‫در‬ ‫هم‬ ‫را‬ ‫بیشتری‬ ‫یا‬ ‫و‬ ‫کمتر‬ ‫های‬ ‫ماه‬ ‫اینکه‬ ‫یا‬ ‫و‬ ‫بدهد‬ ‫قرار‬ ‫ها‬ ‫ورودی‬ ‫در‬ ‫را‬ . ‫است‬ ‫بیهوده‬ ‫ها‬ ‫تست‬ ‫این‬ ‫بیشتر‬ ‫که‬ ‫میشود‬ ‫انجام‬ ‫تست‬ ‫زیادی‬ ‫دسته‬ ‫تعیین‬ ‫بر‬ ‫مبتنی‬ ‫مشابهات‬ ‫بندی‬ ‫دسته‬ ‫برای‬ ‫تست‬ ‫مورد‬‫بتوان‬ ‫اگر‬ .‫است‬ ‫ورودی‬ ‫شروط‬ ‫برای‬ ‫مشابه‬ ‫های‬ ‫روابط‬ ‫توسط‬ ‫را‬ ‫اشیا‬ ‫از‬ ‫ای‬ ‫مجموعه‬‫متقارن‬‫اعد‬‫اد‬‫دسته‬ .‫دارد‬ ‫وجود‬ ‫مشابه‬ ‫دسته‬ ‫یک‬ ،‫داد‬ ‫پیوند‬ ‫هم‬ ‫به‬ ‫انعکاسی‬ ‫و‬ ‫ی‬ ‫و‬ ‫معتبر‬ ‫حالت‬ ‫از‬ ‫ای‬ ‫مجموعه‬ ‫نشانگر‬ ‫مشابه‬‫معتب‬ ‫نا‬‫ر‬‫یک‬ ‫با‬ ‫معموال‬ ‫ورودی‬ ‫شرط‬ ‫هر‬ . ‫است‬ ‫ورودی‬ ‫شرایط‬ ‫برای‬ ‫عددی‬ ‫مقدار‬‫محد‬‫وده‬‫را‬ ‫مشابه‬ ‫های‬ ‫دسته‬ . ‫است‬ ‫بولی‬ ‫شرط‬ ‫یک‬ ‫با‬ ‫مرتبط‬ ‫مقادیر‬ ‫از‬ ‫ای‬ ‫مجموعه‬ ،‫مقادیر‬ ‫از‬ ‫ای‬ :‫نمود‬ ‫تعریف‬ ‫زیر‬ ‫های‬ ‫دستورالعمل‬ ‫طبق‬ ‫میتوان‬ ،‫ورودی‬ ‫شرط‬ ‫اگر‬‫محدوده‬‫مشابه‬ ‫دسته‬ ‫دو‬ ‫و‬ ‫معتبر‬ ‫مشابه‬ ‫دسته‬ ‫یک‬ ،‫کند‬ ‫مشخص‬ ‫را‬ ‫ای‬‫ن‬‫ا‬‫معتب‬‫ر‬‫تعریف‬ .‫میکند‬ ‫مشخص‬ ‫ورودی‬ ‫شرط‬ ‫اگر‬‫مشخص‬ ‫مقداری‬‫د‬ ‫را‬‫ارا‬‫مشابه‬ ‫دسته‬ ‫دو‬ ‫و‬ ‫معتبر‬ ‫مشابه‬ ‫دسته‬ ‫یک‬ ،‫باشد‬‫معتب‬ ‫نا‬‫ر‬ ‫شوند‬ ‫می‬ ‫تعریف‬ 13 Confine