automated+software+testing+tools.pdf

51
داﻧﺸﮑﺪه ي ﻣﻬﻨﺪﺳﯽ ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ- ﻧﺮم اﻓﺰار ﺑﺮرﺳﯽ اﺑﺰارﻫﺎي ﺗﺴﺖ ﺧﻮدﮐﺎر ﻧﺮم اﻓﺰار ﺗﻬﯿﻪ ﮐﻨﻨﺪه: ﮔﺮوه ﺗﺨﺼﺼﯽ آزﻣﺎﯾﺸﮕﺎه ﻓﻨﺎوري وب آﺑﺎن1387
  • date post

    21-Oct-2014
  • Category

    Documents

  • view

    2.025
  • download

    13

description

 

Transcript of automated+software+testing+tools.pdf

Page 1: automated+software+testing+tools.pdf

ي مهندسی دانشکده

افزار نرم-گروه مهندسی کامپیوتر

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

گروه تخصصی آزمایشگاه فناوري وب: تهیه کننده

1387آبان

Page 2: automated+software+testing+tools.pdf

II

پیشگفتار

افزاري مخاطبـان هر محصول نرم .افزارهاي کامپیوتري همواره رو به افزایش است نرم ي پیچیدگی و اندازه

بـازي افـزار نـرم متفـاوت از مخاطبـان یـک بانکی مخاطبـانی کـامالً افزار نرمبراي مثال یک .اردخاصی د

،کنـد نویـسد یـا خریـداري مـی ي را می افزار نرمزمانیکه سازمانی یک محصول بنابراین، .کامپیوتري دارد

و سایر خریداران، ، او مخاطبان ي براي کاربران او، افزار نرمیا محصول آ باید اطمینان حاصل کند که منطقاً

بـه عبـارت .افزار فرایند تالش براي این گونه ارزیابی هاسـت تست نرم .ذینفعان قابل پذیرش هست یا نه

يهـا يازمندینکه ن ین ا ی کشف خطاها و تضم ي برا يک برنامه کاربرد یند امتحان یافزار فرا نرم دیگر تست

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

از نظـر . کننـد ی صـرف مـ افزار نرمل و تست ی را در تحل يادی زمان و منابع ز افزاري نرم يها امروزه سازمان

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

ها نسبت به تست يازخودکارس. استافزار غیرقابل اجتناب حلی براي خودکار کردن تست نرم بنابراین راه

حـل يده هستند و بـرا یچی پ يافزار ي نرم ها پروژه يدر جامعه امروز . دارد يادی ز يها ي برتر ی دست تست

يشتریـ دهندگان زمان ب ی شود که توسعه ها باعث م تست يخودکارساز. شوند ی م یده طراح یچیمسائل پ

رفـع يثرترافـزار را بـه صـورت مـؤ نـرم يند خطاها ها داشته باشند و بتوان گر جنبه ی د ي تمرکز بررو يبرا

تـوان می، ی اجرا کرد توان در هر زمان و به هر تعداد دفعات یها را م تست که یین، ازآنجا ی عالوه برا .یندنما

و به این ترتیب کارایی تست را افزایش و زمان تـست را کـاهش . ي مجدد نمود هاي قبلی استفاده از تست

.دهد افزار زحمت و پیچیدگی انجام تست را کاهش می رمخودکارسازي تست ن. داد

افـزار، بـه افزار و اهمیـت خودکارسـازي تـست نـرم ي مقدماتی در مورد تست نرم در این متن پس از ارائه

.افزار پرداخته شده است هاي ابزارهاي متداول تست نرم معرفی و بررسی ویژگی

Page 3: automated+software+testing+tools.pdf

III

فهرست مطالب

1.............................................................. افزار تست نرمندی بر فرايا مقدمه-1

2...............................................................................................اهداف تست

3................................................................................................اصول تست

5..................................................................... ها و سطوح تست انواع، روش - 2

5.................................................................................................انواع تست

5........................................................................................................تست عملکرد

5........................................................................................................تست استرس

6...............................................................................................................تست بار

7.......................................................................................................تست اکتشافی

7......................................................................................................تست رگرسیون

8...............................................................................................تست قابلیت استفاده

8..........................................................................................................تست امنیت

9.........................................................................................................تست پوشش

10.........................................................................................هاي تست روش

10...................................................................................................تست جعبه سیاه

11..................................................................................................تست جعبه سفید

13............................................................................................تست جعبه خاکستري

13........................................................................تست سیستمهاي مبتنی بروب

15...................................................................................سطوح مختلف تست

15...........................................................................................................تست واحد

16....................................................................................................یکپارچگیتست

17.......................................................................................................ستمیتست س

17........................................................................................................رشیتست پذ

18............................................................................. سازي تست خودکار-3

21................................................................. افزار ابزارهاي تست خودکار نرم- 4

xUnit..................................................................................................21

JUnit................................................................................................................21

HTTPUnit......................................................................................................24

HTMLUnit.....................................................................................................26

Page 4: automated+software+testing+tools.pdf

IV

Selenium............................................................................................28

Selenium IDE................................................................................................28

Selenium Remote Control..........................................................................29

EMMA...............................................................................................30

Testing Framework based on .NET....................................................34

NET CodeDOM.............................................................................36. نام يفضا

Push To Test Test Maker ....................................................................37

39.....................................................................................................حیتست و تصح

Test network..................................................................................................40

Test Maker Monitor.....................................................................................40

iMacros..............................................................................................41

43........................................................................... يریگ جهیانداز و نت چشم - 5

46..................................................................................................مراجع- 6

Page 5: automated+software+testing+tools.pdf

V

ها فهرست شکل

Selenium IDE.................................................................................29 -1- 4 شکل

EMMA..................................................................33 براي HTML قالب -2- 4 شکل

Page 6: automated+software+testing+tools.pdf

١

افزار اي بر فرایند تست نرم مقدمه- 1

افـزار شـامل تـست نـرم .کنـد کامپیوتري را مشخص مـی افزار نرم فرایندي است که کیفیت افزار نرمتست

کیفیـت مطلـق .ن نیـست حدود به آ، اما مي استافزار نرم هاي فرایند اجراي یک برنامه با هدف یافتن باگ

هـاي افزار نـرم تواند صحت تست کردن هرگز نمی ، با این تصور .نیست، بلکه براي افراد مختلف نسبی است

، باید از نقطه نظرات افزار نرمیک نکته مهم اینست که تست .وتري دلخواه را به طور کامل اثبات کندیکامپ

هاي فرایند تجاري همراه باشـد نـه فقـط که با همه حوزه د، لحاظ شو افزار نرممختلفی از تضمین کیفیت

.حوزه هاي تست

در . تلقـی شـود افـزار نـرم ممکن است به عنوان یک قسمت مهم از فرایند تضمین کیفیـت افزار نرمتست

.ن دارنـد افـزار و توسـعه آ تري روي نرم و دیدگاه وسیع افزار نرمافزار متخصصان فرایند تضمین کیفیت نرم

، را براي کاهش میزان خطاهاي منجـر بـه شکـست نکنند و آ بررسی می افزار را ها فرایند مهندسی نرم آن

بـازي ویـدئویی کـه . اسـت افزار نرمماهیت ،قابل قبول عنصر تعیین کننده میزان شکست . دهند تغییر می

براي کنترل یک خط ي کهافزار نرم، منطقاً باید نسبت به سازي پرواز یک هواپیما طراحی شدهبراي شبیه

.رود ، تحمل شکست بیشتري داشته باشد پرواز واقعی به کار می

دهـد کـه یک برنامه نویس یک خطایی را انجام مـی .دهد هاي زیر رخ می از طریق فرایند افزار نرمشکست

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

لزوماً همه خطـا هـا منجـر بـه .شود کند که منجر به شکست می خاصی سیستم نتایج نادرستی تولید می

هرگز منجر به . 1رسد نها نمی اجراي آ براي مثال خطاها در کدهایی که برنامه هرگز به .شوند شکست نمی

از ایـن ثـالی م .کنـد محیط تغییر مـی که شود، منجر به شکست می زمانی یک خطا .شکست نخواهد شد

1 dead code

Page 7: automated+software+testing+tools.pdf

٢

ي، یـا افـزار نـرم افزارهایی هستند که در یک پلتفرم جدید سخت افزاري یـا تغییرات در محیط شامل نرم

[Kan01-1].شوند اجرا می هاي متفاوتافزار نرمهاي منبع، یا تعامالت با تغییرات در داده

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

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

.شود ، تست پویا نامیده میاز فرایند توسعه

تستاهداف

. عمل می کندتستی به عنوان اهداف چند قاعده را بیان می کند که به خوبافزار نرم درباره "گلن مایزر"

فرآیند اجراي برنامه به قصد یافتن خطاهاستتست .

موردي است که احتمال یافتن خطاهاي کشف شده در آن، باال باشد خوبتستمورد ،.

ی است که خطاهاي کشف نشده را کشف می کندتست، موفقتست.

ي تـست موفـق، تستالف این دیدگاه عامیانه که اهداف باال نشانگر یک تغییر دیدگاه زیبا هستند، و برخ

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

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

به عالوه، . برآورده شده اند "د، و خواسته هاي رفتاري و کارایی ظاهرا مطابق مشخصه کار می کنن "ظاهرا

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

بلکـه . نمی تواند نبود خطاها و نقایص را ثابـت کنـد تستولی . به دست می دهند افزار نرمکلیت کیفیت

.ی تواند نشان دهد که خطاها و نقایص وجود دارندفقط م

Page 8: automated+software+testing+tools.pdf

٣

تستاصول

تـست مؤثر، باید اصـول پایـه اي را کـه تست پیش از اعمال روش ها در خصوص موارد افزار نرممهندس

مجموعه اي از اصول پیشنهاد می کند، که در اینجـا از "دیویس". را هدایت می کنند، درك کند افزار نرم

: کردآنها استفاده خواهیم

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

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

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

می تواند به تست طرح ریزي .، طرح ریزي شودتست باید مدت ها قبل از شروع تست

می تواند به محض تستتعریف مشروح موارد . محض کامل شدن مدل خواسته ها آغاز شود

ها را می توان پیش از تولید هر گونه تستبنابراین، همه . منسجم شدن مدل طراحی آغاز شود

.کد، برنامه ریزي و طراحی کرد

بیان می کند "پارتو" به عبارت ساده، اصل . صدق می کندافزار نرم تست در "پارتو"اصل

درصد همه مؤلفه ها برنامه 20 در "، احتماالتست درصد همه خطاهاي کشف شده طی 80که

.مسئله، جدا سازي مؤلفه هاي مظنون و آزمودن کامل آنهاست. قابل کشف هستند

ها برروي تست اولین .یابد باید در ابعاد کوچک آغاز شود و به ابعاد بزرگتر گسترش تست

، خطاهاي مجموعه اي از مؤلفه هاي مجتمع تستبا پیشرفت . هر یک از مؤلفه ها انجام می شوند

.و سپس کل سیستم یافت می شود

لذا، . تعداد مسیرهاي ممکن براي برنامه متوسط نیز زیاد است. کامل امکان پذیر نیستتست

ولی این امکان وجود دارد که برنامه را در حد . نیستاجراي هر ترکیبی از مسیرها امکان پذیر

.کفایت پوشش دهیم

Page 9: automated+software+testing+tools.pdf

٤

بیشترین بازدهی را داشته باشد، باید توسط یک شخص ثالث بی طرف تستبراي آنکه

به دالیلی . منظور از بیشترین بازدهی آن است که خطاها را با احتمال بیشتري بیابد.انجام شود

ي که سیستم را ایجاد کرده است، بهترین افزار نرممهندس در همین فصل ذکر شد، "که قبال

.م دهد ها را انجاتستکسی نیست که باید همه

Page 10: automated+software+testing+tools.pdf

٥

ها و سطوح تست انواع، روش- 2

تستانواع

هاي متنوعی را می توان بر روي سیستم ها اعمال نمود تا آنان را از جنبه هاي مختلف مورد تست و تست

. ها اشاره می شود وهریک را مختصرا توضیح می دهیمتتسدر این بخش به این . قرار دادتست

تست عملکرد

تستها نوشته میشوند تا . تست میشود تا از لحاظ درستی عملکرد بررسی شود افزار نرمدر این نوع تست ،

اگر چه تست عملکـرد معمـوالً در انتهـاي . همان گونه که انتظار میرود عمل میکند افزار نرمببینند که ایا

کامپوننت هـا و فراینـد هـاي مجـزا . سریعتر اغاز شود –و باید –ند توسعه انجام میشود ولی میتواند فرای

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

تست استرس

یـادي ورودي و مقـادیر زیـادي پـرس و برنامه در مقابل بار سنگین مثل مقادیر عددي پیچیده ، مقادیر ز

هدف طراحـی . که میزان باري که برنامه میتواند ان را تحمل کند را بررسی میکند . امتحان میشود 2جو

محیطی است که مخرب تر از محیطی که برنامه در دنیاي واقعی و در شرایط نرمال بـا ان روبـرو میـشود

ز تست است که باید انجام شود و احتیاج بـه تـالش تـوأم این مسئله سخت ترین و پیچیده ترین مقوله ا .

یک محیط تست بـا چنـدین ایـستگاه تـست ایجـاد میـشود و در هـر . همه تیم هاي برنامه نویسی دارد

این اسکریپتها رو به رشد هستند و ایستگاه ها نیز بتـدریج .ایستگاه یک اسکریپت سیستم را تست میکند

سیـستم را .اورند تا سیستم متوقـف شـود میهمزمان روي سیستم فشار یابند و همه بصورت میافزایش

2 query

Page 11: automated+software+testing+tools.pdf

٦

تعمیر میکنند و تست استرس دوباره انجام میشود تا سیستم به حدي از استرس برسد کـه بـاالتر از حـد

شرایط . در تست استرس پیدا میشوند 4 و رخنه هاي حافظه 3شرایط رقابت . مورد انتظار مشتري باشد

ین حداقل دو ایستگاه تست است و هر تست زمانیکه به تنهایی کار کند به درسـتی کـار رقابت تعارضی ب

و ایـن . اما زمانیکه دو تست به صورت موازي کار کنند ، یکی یا هر دو تـست شکـست میخورنـد .میکند

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

به نظر تست درست . تست ، حافظه تخصیص یافته را رها میکند و به درستی حافظه را بر نمیگرداند یک

یـدا میکنـد و سیـستم شکـست کار میکند ، اما بعد از مدتی اجراي تست حافظـه در دسـترس کـاهش پ

.میخورد

تست بار

ي یافتن نقاطی که در ان نقاط برنامه در مقابل بار زیاد یا ورودي ها تست میشود مثل تست وب سایتها برا

تـست . وب سایت یا برنامه شکست میخورد و یا نقاطی که در انها کارایی وب سایت کا هش پیدا میکند

معمـوالً .Error! Reference source not foundبار در سطح بار از پیش تعیین شده اي انجام میشود،

توجه کنید که تست بار . ر حالیکه هنوز به درستی کار میکند باالترین باري که سیستم میتواند بپذیرد، د

اما میخواهد سیستم را بطور پیوسته زیر بار نگـه دارد . خواهد سیستم را با فشار اوردن از پا در اورد مین

باگهـا ظهـور . در مفهوم تست بار ، باید مجموعه داده هاي زیادي براي تست در دسترس داشـته باشـیم .

ر اینکه شما بـا موجودیتهـا ي خیلـی بـزرگ مثـل هـزاران کـاربر در انبـار داده هـایی مثـل نمیکنند مگ

LDAP,NIS , Active directory تست کنند گان به ابزار هاي اتومـات بـراي ایجـاد ایـن .... کار کنید و

.ام داد اما خوشبختنه با هر زبان اسکریپت نویسی میتوان این کار را انج.مجموعه داده هاي بزرگ دارند

3 Race condition4 memory leaks

Page 12: automated+software+testing+tools.pdf

٧

تست اکتشافی

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

هاي اسـکریپت نویـسی بـراي تـست در بعضی مواقع ممکنه تا حدودي قوي تر از زبان . براي تست است

.باشد

تست رگرسیون

در عملکرد یا براي تصحیح یک خطا ، یک تـست رگراسـیون تمـام ، جه براي تغییر افزار نرمبعد از تغییر

انها را با موفقیت انجام داده را دوباره اجرا میکند تا اطمینـان حاصـل کنـد کـه افزار نرمتستهایی که قبالً

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

انـواع خـاص تـري از تـستهاي .این تستهاي رگراسیون اکثراً اتومات شده اند . ورت بگیرد سطوح قبلی ص

خواهیم سریعاً رفتار عجیب سیستم می شناخته شده اند و زمانیکه ما 5رگراسیون با عنوان تست سالمت

. زمانیکه عملکرد هاي ابتدایی چک میشوند 6و یا تست دود . را بررسی کنیم

در تـستهاي . وعی تست که تمرکـز روي تـست مجـدد بعـد از اعمـال تغییـرات اسـت نتست رگراسیون

اما در تستهاي رگراسیون ریسک گرا ، ما نواحی قبلی . شد می، یک تست دوباره تکرار میرگراسیون قدی

را مثل قبل تست میکنیم اما از تستهاي متفاوتی که بـه تـدریج پیچیـده تـر میـشوند اسـتفاده میکنـیم

. معموالً تا حدودي اتومات بودند می رگراسیون قدیتستهاي .

:تست رگراسیون میخواهد دو ریسک را کاهش دهد

.تغییري که میبایست یک خطا را ازبین میبرد ، شکست میخورد

ماند و اگر تصحیح کنید خطـاي میبعضی تغییرات اثر جانبی دارند ، اگر تصحیح نکنید خطاي قبلی باقی

.جدید ایجاد میشود

5 sanity testing6 smoke testing

Page 13: automated+software+testing+tools.pdf

٨

تست قابلیت استفاده

براي برنامه خیلی مهم باشد و باید براي هـر 7این نوع تست تنها در مواردي انجام میشود که رابط کاربر

تست قابلیت استفاده ، فرایند کار کردن مستقیم یا غیر مستقیم با کاربران نهایی براي . کاربر، خاص باشد

ایـن .ي را احساس میکند و چگونه با ان تعامـل میکنـد زاراف نرمشناخت اینکه چگونه هر کاربر یک بسته

.فرایند نقاط قوت و ضعف برنامه را براي کاربران کشف میکند

در . باشـد مـی کاربران دی از دستمی مشکالت مربوط به طرز استفاده س یی تست، شناسا نیهدف ا بنابر این

نی و بهمـ رنـد یگ مـی شند، مورد توجه قرار با می subjective که عمدتا ی انسان ي تست فاکتورها نیانجام ا

يارسـاز آن امکـان خودک ي قسمتها ياری است که در بس ي ا دهیچی نوع تست معموال کار پ نیعلت انجام ا

[Mye04] [Mye79].باشد میتست موجود ن

تست امنیت

ساسـی اي ا افزاري براي اطمینان از ایمن و مطمئن بودن سیستم، مـسأله هاي نرم طراحی و تست سیستم

ي ایمنی و مطمئن اخیراً مسأله . با آن مواجه هستند تستافزار و متخصصان دهندگان نرم است که توسعه

. هاي کاربردي تجاري براي استفاده روي اینترنت اهمیت مازادي یافتـه اسـت بودن به خاطر ازدیاد برنامه

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

ي تجـارت الکترونیکـی بـه مخـاطره رسانند قابل دسترسی اسـت، آینـده با استفاده از اینترنت آسیب می

ها و هایی از سیستم که به دردسترس بودن، یکپارچگی و محرمانه بودن داده امنیت ویژگی تست. افتد می

مشتریان باید توسط این موضوع ترغیب شوند که /ربرانکا. کند خدمات سیستم مرتبط است را ارزیابی می

ها کامالً مشخص است، و بنـابراین مـسائل امنیتـی توسـط نیازهاي امنیتی آنان در زمان تعیین نیازمندي

[BUR03]. گیرد طراحان و آزمایندگان مورد توجه قرار می

7 User interface

Page 14: automated+software+testing+tools.pdf

٩

هـاي نـامطلوب سترسـی هاي دفـاعی سیـستم وب در مقابـل د امنیت بررسی کارایی مکانیزم تستهدف

کاربران بدون مجوز و حفظ منابع سیستم در مقابل کـاربران ناشایـست، و همچنـین دادن دسترسـی بـه

گـذارد هاي سیستم که بر روي امنیت سیـستم تـأثیر مـی پذیري آسیب. باشد کاربرانی که مجوز دارند، می

افـزاري افزاري یا میـان افزاري، نرم هاي سخت ممکن است منشأ در کد برنامه داشته باشند یا در کامپوننت

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

هاي اجرایی نـاهمگن همـراه بـا تعـداد بـسیار زیـاد ها و تکنولوژي سازي هاي مبتنی بر وب پیاده افزار نرم

هـاي کـاربردي معمـولی جایی، این برنامه هـا را از برنامـه کاربران و همچنین امکان دسترسی آنان از هر

.سازد تر می امنیت آنها را سختتستپذیرتر آسیب

محرمانـه بـودن، : انـد امنیت پوشش داده شود به ایـن شـرح تستشش مفهوم اساسی امنیت که باید در

.، در دسترس بودن و عدم انکار9، مجوز دادن8جامعیت، تصدیق هویت

تست پوشش

در تـست . می توان تقـسیم نمـود 11 پوشش انشعابات و 10پوشش عبارات ست پوشش به دو دسته کلی ت

کد طوري اجرا میشود که هر عبارتی از برنامه حداقل یکبار اجرا شود و این باعث میشود ، پوشش عبارات

.بفهمیم همه جمالت بدون اثر جانبی اجرا میشوند

در بعضی از نقاط نیاز است ،میتواند در مد پیوسته اي از کد اجرا شود ي ن افزار نرمهیچ برنامه از آنجائیکه

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

که همه انشعابات در کد را ارزیابی کنیم و اطمینان حاصل کنیم که هیچ انشعابی در کد منجر بـه رفتـار

. در برنامه کاربردي نمیشودغیر نرمال

8 Authentication9 Authorization10 statement coverage11 Branch Coverage

Page 15: automated+software+testing+tools.pdf

١٠

تستهاي روش

و هر محصول مهندسی دیگر، می تواند به اندازه طراحی خـود محـصول افزار نرمهایی براي تستطراحی

بـه تـست بـا " غالبا افزار نرمبا این حال به دالیلی که پیش از این بحث شد، مهندسان . اولیه دشوار باشد

رفتار می کنند، که ممکن است درست به نظر آیند، ولـی از کامـل در حال توسعه اي تستعنوان موارد

هـایی را طراحـی کنـیم کـه تست، باید تستبا بخاطر داشتن اهداف . بودن آنها چندان اطمینانی نباشد

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

: آزمایش کردتوان به یکی از دو روش

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

کرد که نشان می دهند هر عملکرد به طور کامل درست است، و در عین حال، در هر عملکـرد بـه دنبـال

.یافتن خطاها هستند

ترتیب داد که اطمینان دهند همه چیز جفـت و هایی تستبا دانستن طرز کار داخلی محصول، می توان

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

. تمرین شده است

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

هـا افـزار نـرم فته است که در مواقعی که دسترسی به برخی از مولفه هاي داخلـی هم مورد توجه قرار گر

در ایـن بخـش ایـن . جعبه خاکستري مـی گوینـد تستیه این روس . داریم مورد استفاده قرار می گیرد

.روشها را به تفصبیل شرح می دهیم

جعبه سیاهتست

ورد میکنند که هیچ درکـی از رفتـار داخلـی ان به عنوان یک جعبه سیاه برخ افزار نرمبا تستاین نوع از

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

Page 16: automated+software+testing+tools.pdf

١١

بنابراین طراح تست داده هـا را وارد میکنـد و خروجـی را از شـی؛ .نیازمندیهاي ذکر شده براورده میشوند

اي تست ، نیاز است تا طراح تست ، موارد تست طراحـی شـده را بـه براي این سطح از اجر .بیند میتست

تست کننده ،کسی که باید بررسی کند که ایا براي یک ورودي خاص ، مقدار خروجی یا رفتـار سیـستم ،

براي طراحـی مـوارد تـست یـک .منطبق بر انچه مورد انتظار است و در مورد تست ذکر شده هست یا نه

باشند کـه 13 یا غیر عملکردي12میگیرد و این نوع تستها میتوانند عملکردي دیدگاه خارجی از سیستم

طراحان تست ورودیهاي معتبر و غیر معتبر را انتخاب میکنند و خروجی . معموالً عملکردي عمل میکنند

[PRE05].و هیچ دانشی از ساختار داخلی شیء در دسترس نیست. درست را انتخاب میکنند

تـست واحـد و تـست . قابـل اسـتفاده اسـت افـزار نرماین روش از طراحی تست در همه مراحل از تست

باالترین سطح و بالطبع بزرگترین و پیچیـده .یکپارچگی و تست عملکرد و تست سیستم و تست پذیرش

ت رفتـاري نیـز تست جعبه سیاه که تـس .ترین جعبه باید بصورت جعبه سیاه صورت گیرد تا ساده تر شود

تست جعبه سـیاه اسـت کـه مهندسـان . تمرکز میکند افزار نرمنامیده میشود روي نیازمندیهاي عملکردي

را قادر میکند تا مجموعه اي از شرایط ورودي را مشتق کننـد کـه تـا کـامالً همـه نیازمنـدیهاي افزار نرم

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

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

جعبه سفیدتست

روشهاي .زمانی ممکن است که تست کننده به ساختار داده هاي داخلی و کد و الگوریتم ها دسترسی دارد

. را بـراورده میکننـد 14که بعضی از معیارهاي پوشش کدتست جعبه سفید شامل ایجاد تستهایی است

طراح تست میتواند تستهایی را طراحی کند که باعث شود همه عبارات برنامه حاقل یکبار اجرا براي مثال

12 functional13 non functional14 code coverage

Page 17: automated+software+testing+tools.pdf

١٢

تـستهاي . 16 و روشهاي تزریـق خطـا 15سایر مثالهاي تست جعبه سفید عبارتند از تست جهش .شوند

[PRE05].ک را شامل میشوندجعبه سفید ، همه تستهاي استاتی

که با روشـهاي تـست -روشهاي تست جعبه سفید میتوانند براي ارزیابی کامل بودن یک مجموعه تست

ي اجازه میدهد که قـسمتهایی از سیـستم را افزار نرماین به تیم .نیز به کار رود -جعبه سیاه ایجاد شده اند

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

دو فرم معمول از پوشش کد عبارتند از ، پوشش تابع ، کـه روي توابـع اجـرا شـده گـزارش میدهـد و .اند

ایـن دو معیـار از .پوشش جمالت ، که روي تعداد خطوط اجرا شده براي تکمیل تـست گـزارش میدهـد

تست جعبه سفید همچنین ممکن است شامل مهندسی معکوس بـراي مـشخص .شود پوشایی حاصل می

.کردن مثالً مقادیر مرزي به کار رود

چون الزمه ان دانستن ساختار داخلی کد است فهمیـدن اینکـه : ی دارد از جمله مزایای تست جعبه سفید

مزیت دیگـر .شود میسانتر آ،راي تست کاراتر برنامه مناسب استچه نوع از داده هاي ورودي و خروجی ب

ردن خطوط اضـافی کـد نیـز به پاك ک .کند نست که به بهینه سازي کد نیز کمک می به سفید آ تست جع

.کن است منجربه خطاهاي پنهان شونداین خطوط اضافی مم .کند کمک می

ت از کـد و سـاختار داخلـی نیـاز چون اگاهی و مهـار : شوند شامل موارد زیر می معایب تست جعبه سفید

. شـود دهد که باعـث افـزایش هزینـه مـی ، یک تست کننده ماهر نیاز است تا این نوع تست را انجام ستا

بررسی هر قطعه از کد و بدنبال خطاهاي پنهان گشتن تقریباً غیر ممکن است و همچنین ممکـن اسـت

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

15 mutation testing16 fault injection

Page 18: automated+software+testing+tools.pdf

١٣

جعبه خاکستريتست

يکـه بـه معنـا . به استفاده معمول اضافه شده اسـت زی ن ي عبارت تست جعبه خاکستر ری اخ يها در سال

ی مـوارد تـست را طراحـ می بتـوان نکهی اي براتمهای و الگور ی داخل ي به ساختمان داده ها یداشتن دسترس

.می استفاده کناهیبه سع در سطح تست جای و در سمت کاربر میکن

دو ماژول از کد کـه بـه نی را ب ونیس تست رگر میخواهیکه م ی مخصوصاً در مواقع ي جعبه خاکستر تست

به کـار - تست در دسترس هستند ي ها برا سینترفیو فقط ا – مختلف نوشته شده سی دو برنامه نو لهیوس

.رودیم

سیستمهاي مبتنی بروبتست

.گذارنـد سیستم هاي تحت وب بطور مستقیم بر موضوع تست این سیستم ها تـاثیر مـی خاص ویژگیهاي

هـاي افزار نـرم نتیجه این ویژگیها و پیچیدگیها آن است که روشها و ابزارها و مـدلهاي رایـج بـراي تـست

برخی از این روشها نیازمند تغییـر و . باشند میمتداول، معموال براي تست سیستم هاي تحت وب، کافی ن

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

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

شـود، میاستفاده ) RAD( از مدل توسعه سریع با توجه به اینکه در توسعه سیستمهاي تحت وب، معموالً

موارد نظیر تـست همچنین برخی . باشد میفرصت کمتري براي تست سیستم در اختیار توسعه دهندگان

در نتیجه به نظر . مقیاس پذیري، ممکن است بطور دقیق قابل اجرا نباشند یا هزینه اجراي آنها زیاد باشد

رسد که براي برخی انواع تست، الزم است که سیستم ابتدا بطور کامل زیـر بـار بـرود و در تعامـل بـا می

. ، مورد تست قرار گیردکاربران واقعی که رفتارهایشان لزوما قابل پیش بینی نیست

با توجه به حساسیت زیاد نسبت به زمان توسعه این سیستم ها، همچنین بـا توجـه بـه اینکـه ترکیبـات

متعددي از مرورگرها، سیستم عاملها، و محیطهاي اجرا وجود دارد، اگر بخواهیم یک سیـستم را در برابـر

ازي روالهاي تست به شکل چشمگیري، افزایش تمام این ترکیبات مورد تست قرار دهیم، نیاز به خودکارس

Page 19: automated+software+testing+tools.pdf

١٤

باشـند، مـی در حال تغییـر و بروزرسـانی همچنین با توجه به اینکه سیستم هاي تحت وب دائماً . یابد می

توان پـس از انجـام میبدین ترتیب . باشد میقابلیت اجراي مجدد تست ها بطور خودکار، بسیار مورد نیاز

در . ستم، دوباره تست ها را بطور خودکار بر روي سیـستم انجـام داد حجم مناسبی از تغییرات بر روي سی

پس از ارائه سیستم به بازار و مشتریان، تغییرات سیستم خیلی محدود مورد سیستم هاي متداول، معموالً

یـا وصـله هـاي امنیتـی آن، توزیـع افـزار نرمافتد و در فواصل زمانی متفاوت، نسخه هاي جدید میاتفاق

اما در سیستم هاي تحت وب، چـون سیـستم بـر روي . ر نتیجه نرخ تغییرات بسیار پایین است شوند د می

شود و از طریق شبکه قابل دسترس است، این امکـان وجـود دارد کـه طراحـان سیـستم، میسرور نصب

. براحتی و بطور مداوم سیستم را بروزرسانی نمایند و تغییرات الزم را اعمال نمایند

هم در تست سیستم هاي تحت وب آن است که هنوز معیارهاي دقیـق و قابـل اعتمـاد و یکی از مسائل م

. مورد توافق، براي تست این سیستم ها، معرفی نشده است

سیستم هاي اولیه، شـامل صـفحات ایـستاي . سیستم هاي تحت وب، در طول زمان بسیار تغییر کرده اند

HTML ویا با ترکیبی از تکنولـوژي هـاي متفـاوت، نظیـر اما سیستمهاي امروزي، شامل صفحات پ. بودند

PHP ،ASP ،JSP ،XML و JDBC اي جدید، و یا تکنولوژي هاي چندرسانه مواردي نظیر قالب . باشند می

AJAX، افزایش اجزاي مختلفی که در طراحی سیستم دخیل هستند، همه و همـه بـه پیچیـده و پویـاتر

.شدن این سیستم ها منجر شده اند

ابـی هـا و خطاهـاي آن تست یک سیستم تحت وب، اجراي آن سیستم به منظور کـشف خر هدف اصلی

به یک ناتوانی مشخص سیستم در اجراي یک وظیفه از پیش تعیین شـده بـر ، )failure(خرابی . باشد می

برخی خرابی ها مربوط به خطاهـاي عامـل انـسانی در طراحـی و . باشد میاساس معیارهاي تعریف شده،

مرورگر افزار نرماما برخی خرابی ها نیز مربوط به محیط اجرا، مثال باگهاي . باشند میي سیستم پیاده ساز

در نتیجه بـراي تـشخیص . باشند میشوند و منشا مشکل، طراحان سیستم ن مییا مشکالت شبکه، مربوط

. باشد میانواع مختلف خرابی ها، انواع متفاوت تست مورد نیاز

Page 20: automated+software+testing+tools.pdf

١٥

، بر نیازمندیهاي غیر عملیاتی سیستم، نظیر مقیاس پذیري، ثبـات، و سـازگاري بطور اساسی، محیط اجرا

گذارد و نه بر نیازمندیهاي عملیاتی سیـستم، یعنـی تطبیـق بـین آنچـه سیـستم انجـام میسیستم، تاثیر

سیستم مسئول ارضاي نیازهاي عملیاتی، و محیط اجـرا در نتیجه معموالً . دهد و آنچه باید انجام دهد می

توان میاما . باشد، البته تفکیک کامل بین این دو مورد وجود ندارد میل ارضاي نیازهاي غیرعملیاتی مسئو

:توان از دو دیدگاه بررسی نمود میگفت که تست سیستم هاي تحت وب را

عملکرد سیستم در یعنی .گیرند می سیستم مورد تست قرار عملیاتی نیازمندیهايدیدگاه اول، از .1

مورد ،ه که باید انجام دهد، یعنی منطق سیستم و وظایف تعریف شده در مستنداتمقایسه با آنچ

.گیرد میتست قرار

.گیرند می نیازمندیهاي غیرعملیاتی سیستم مورد ارزیابی قرار،دیدگاه دوماز .2

توان یکـی از ایـن دو مـورد را مینکته مهم آن است که هر دو نوع تست باید بطور مناسب اجرا شوند و ن

.Error! Reference source not found .یگزین دیگري نمودجا

سطوح مختلف تست

:این سطوح عبارتند از. افزار در فازهاي متفاوت و در سطوح مختلف انجام می پذیرد نرمتست

تست واحد

لی تـشک ي ماژولها ای از واحدها کیباشد که هر می، 17 تست واحد ستم،ی س کی تست هی از مراحل اول یکی

سانیـ معموال تست واحد توسط خود برنامه نو. دهد می را بطور مستقل، مورد تست قرار برنامه کیدهنده

سد،یـ نو مـی ستمی س ي را برا ی که ماژول یسی هر برنامه نو یعنی. شود می انجام ستمیو به موازات توسعه س

تمسیـ س لیـ تست آن ماژول به پس از تکم ستی ن يازی بعهده دارد و ن زی تست آن ماژول را ن فهیخود، وظ

.موکول شود

17 Unit testing

Page 21: automated+software+testing+tools.pdf

١٦

ي است که پـس از توسـعه، در قـسمتها یی عملکرد واحدها ی از درست نانی از انجام تست واحد، اطم هدف

. مورد استفاده قرار خواهند گرفتستمیمختلف س

بـه سـاختار ی بـه دسترسـ ازیشود که ن می به حساب آورده دی جعبه سفي واحد، معموال جزء تستها تست

. کد مورد تست داردیدرون

ـ ، اافـزار نرم تیفی کنی تضمندی تست واحد در فرآ ادی ز اری بس تی اهم رغمی به ذکر است که عل الزم نـوع نی

تیـ فیتـوان ک مـی بعنوان مثال، با استفاده از تست واحد ن . انواع تست شود گری د نیگزیتواند جا میتست ن

تـست واحـد انجـام داد زاتـوان بـا اسـتفاده مـی تـست بـار را ن ایـ نمود یابی را ارز ستمی س یکیرابط گراف

[Ham04].

تست یکپارچگی

گر،یکـد ی در کنار ستم،ی مختلف س ي اجزا می آن است که مطمئن شو ،18ستمی س یکپارچگیدف از تست ه

ـ کار می یبخوب ستم،یـ مختلـف س ي ماژولهـا نیکنند و تعامالت، ارتباطات و رد و بدل کردن داده ها در ب

. داردیحی عملکرد صحستمی کل سجه،یشود و در نت انجام مییبدرست

ی اساسـ ي از ماژولهـا کیـ تـوان هـر مـثال، مـی . انجام دادیتوان در سطوح متفاوت را می یکپارچگی تست

و تـست ) شـده لی تـشک ي کـوچکتر يکه خـودش از اجـزا ( در نظر گرفت ستمی س کی را بعنوان ستمیس

ر واحـد در نظـ ستمیـ سکیـ نوان را بعستمیتوان کل س مینیهمچن. را در مورد آن انجام داد یکپارچگی

.گرفته و آن را مورد تست قرار داد

مـا را ستم،ی سي ماژولهاي تصور شود که انجام تست واحد بر رونطوری ادی قابل توجه آن است که نبا نکته

یی توانا کیباشند و هر در واقع هر دو نوع تست مذکور الزم می . کند می ازی ن ی ب یکپارچگیاز انجام تست

اسـت و گریکـد ی بـا اژولهـا نقاط تماس و تعامل م ،یکپارچگینقطه مورد توجه تست . را دارند خاص خود

18Integrity testing

Page 22: automated+software+testing+tools.pdf

١٧

تست واحد، ماژولها را کهیدهد، در حال و در ضمن کار با هم، مورد تست قرار میگریکدیماژولها را در کنار

[Cra02] [Chu05].دهد مدنظر قرار میستمی سي اجزاهیبطور مستقل و جدا از بق

سیستمتست

.شوند یـا نـه میکند تا بررسی کند که ایا تمام نیازمندیها براورده میک سیستم کامالً یکپارچه را تست ی

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

پتانسیل ، یا یک تـیم تـست مـستقل در تست عملکرد شبیه سازي شده یا واقعی با مشتریان یا کاربران

هاي تولید انبوه به عنوان نوعی از تست پذیرش بکـار افزار نرمتست الفا معموالً براي .سایت برنامه نویسان

. پذیرد میو قبل از مرحله تست بتا صورت . شود میبرده

محدودي در خارج از تیم برنامه ، که نسخه هاي بتا نامیده میشوند ، به مخاطبان افزار نرمنسخه هایی از

به گروهی از افراد عرضه میشود تا تستهاي بیشتري انجام شود و اطمینان افزار نرم. شود مینویسان عرضه

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

.میزان بازخورد ها افزایش یابد

رشی پذتست

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

میخـواه مـی نوع تـست نی در ا گری د انیبه ب . باشد می ستم،ی کاربران توسط س يازهای ن نی از تام نانیاطم

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

[Cra02] [Chu05].ردی صورت گی واقعطی و شراطی آنها و در محندگانی نماایتست توسط خود کاربران

در نهایت ، تست پذیرش توسط کاربران نهایی یا مشتریان انجام میشود تا پذیرش محصول صورت بگیـرد

، زمانیکه از یک فاز توسعه به فاز دیگر میرویم تست پذیرش ممکن است به عنوان بخشی از فرایند . یا نه

. نیز صورت گیرد

Page 23: automated+software+testing+tools.pdf

١٨

تتسسازي خودکار-3

از نظـر . کننـد ی صـرف مـ افزار نرمل و تست ی را در تحل يادی زمان و منابع ز يافزار نرم يها امروزه سازمان

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

موجود يها يازمندینکه نین ای کشف خطاها و تضمي برايک برنامه کاربردیند امتحان یافزار فرا نرمتست

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

يهـا پـروژه يدر جامعـه امـروز . دارد يادیـ ز يهـا ي برتـر ی دسـت تستها نسبت به تست يخودکارساز

افـزار نرم تست يسازندگان ابزارها. شوند ی میده طراحیچی حل مسائل پ يتند و برا ده هس یچی پ يافزار نرم

مربـوط بـه آن مـساله يکنند و با تکنولوژ دای پیک مساله خاص آگاه یاز به زمان دارند تا درباره یاغلب ن

تـست ک ابـزار یـ د یـ با تـست م ین شده پروژه ، تـ ییدن به ضرب االجل تع ی رس ين برا یبنابرا. آشنا شوند

نکـه ممکـن یوجود ا با. د ی موجود عمل نما تستند ی فرآ ي برا ید که به عنوان مکمل یجاد نما یخودکار را ا

نـه جبـران ین هزیـ نـد توسـعه ، ا ی فرآین باشد اما در طـ ی آن در شروع کار سنگ يه اجرا ینه اول یاست هز

ي تمرکـز بـررو ي برا يشتریدهندگان زمان ب شود که توسعه یها باعث م تست يخودکارساز. خواهد شد

ن، یعـالوه بـرا . نـد ی رفـع نما يثرتر را به صورت مؤ افزار نرم يها داشته باشند و بتوانند خطاها گر جنبه ید

دهندگان قادر خواهند ، توسعه اجرا کرد یتوان در هر زمان و به هر تعداد دفعات یها را م تست که ییازآنجا

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

تمـام گـر تست، فرد ی دستتست اوقات هنگام انجام یرا گاهی باشد ز ی مجدد خطا سخت م ي اجرا یدست

.ن انجام داده است را بخاطر ندارد کردتست روال ی که طیاتیعمل

Page 24: automated+software+testing+tools.pdf

١٩

ج مورد انتظار دست یا به نتاهتست ينه خودکارسازیها در زم از تالشيارید اشاره کرد که بساین بیهمچن

شـود امـا ی میمی عظيگذار هی سرماتست ي خودکارسازيجاد و نگهدارینه ای اوقات در زم یگاه. اند افتهین

ل کامل یک تحلیار مهم است که یبس. ست ی شده قابل جبران نيگذار هینه سرمای هزیپس از ساخت ، حت

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

آنهـا سـودمند بـه ي که خودکارساز افزار نرم از ییدا کردن قسمتها ی پ ي شود که بر رو ی حاصل م یهنگام

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

که توسـط افـراد مناسـب و در یا در صـورت یمراه داشته باشد و به ه گرتستم ی ت ي را برا يادی ز یدگیچیپ

.م ارائه دهدین تی را به ایتواند کمک قابل توجه ی، مد است انجام شودیی که انجام آن مورد تايموارد

:ا باشد یر در مورد پروژه مهیط زی از شرایکیم که حداقل ی بپردازتست ي به خودکارسازیبهتراست زمان

Test case قابل استفاده مجدد باشندتست يط هایمحها و .

م یها داشته باش تست در یطی به دانش محیاز کمین.

ها استاندارد و مستقل باشند ستمیس.

ت دانش باشدیرین استاندارد در مدیتر ی اصل19نین قوانی و تدويرمزگذار.

بـه صـورت خودکـار رافـزا نرم تستند یست که کل فرآ ین معنا ن ی خودکار به ا تستد توجه داشت که یبا

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

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

استفاده از . باشدیکت موجود ما شریافته دارد که در حال حاضر در سازمان ی ساخت ی دستتستند یفرآ

ی دستتست به يازیگر نیست که دی نین معنی خودکار به اتستبه کاربردن . نه استی خودکار پرهزتست

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

19 codification

Page 25: automated+software+testing+tools.pdf

٢٠

تستنمونه ک ی ي و مستند ساز ینیتوسعه ، بازب . باشد یموجود م برابر 10 تا 3ن ی تواند ب ی خودکار م 20

record/playback زمان بر باشد ، بخصوص اگـر از روش ی دستتستک نمونه ی يجاد و اجرایشتر از ایب

. خودکار استفاده شود تست ی به عنوان متد اصل- وجود داردتست يکه در اکثر ابزارها-

20 Test case

Page 26: automated+software+testing+tools.pdf

٢١

افزار نرمخودکار تستابزارهاي -4

برخی از ایـن ابزارهـا تجـاري و برخـی . افزار ابزارهاي گوناگونی موجود است سازي تست نرم براي خودکار

در این فـصل بـه . رود هر یک از این ابزارها براي یک یا چند نوع از تست به کار می . دیگر متن باز هستند

.کنیم هاي هر یک را بیان می پردازیم و ویژگی افزار می توضیح ابزارهاي مهم تست خودکار نرم

xUnit

Kent Beck 1997 در سال ،SUnit نوشته شـده بـه ي تست واحد برنامه هاي ساده برا چارچوب کی که

ي، براErich Gamma و Kent Beck مدل توسط نی ایپس از مدت. باشد را ارائه نمود می Smalltalkزبان

تـست واحـد ار ابـز نیتـر ن مهـم شد کـه امـروزه بعنـوا جادی ا JUnitزبان جاوا مورد استفاده قرار گرفت و

،ی سـادگ نی دو ابزار، در ع نیساختار مورد استفاده در ا . است افتهی يادی ز اری بس تی جاوا مقبول يها برنامه

JUnit دهیـ کـه از ا ی مـشابه ي علت در طول زمان، ابزارها نیبهم. برخوردار بود یی باال یی و کارآ تیاز قابل

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

مختلف، وجـود دارنـد کـه بعلـت ي نوشته شده به زبانها ي تست واحد برنامه ها ي برخوردارند برا یمشابه

خانواده، نیبعنوان چند عضو از ا. رندیگ می مورد ارجاع قرار xUnit همه تحت عنوان خانواده اد،یشباهت ز

يهـا زبـان ي بـرا CPP ،NUnit زبـان ي برا CppUnitتوان از میباشند، می ز متن با يابزارها زیکه همه ن

نـام XML اسـناد ي برا XMLUnit ک،یسی ب ژوالی و ي برا Python ،VBUnit ي برا Net ،PyUnit.پلتفرم

.Error! Reference source not found. برد

قـرار ی است که در قسمت به اختصار مـورد معرفـ JUint، ابزار xUnit خانواده ي اعضا نی از موفق تر یکی

.ردیگ می

JUnit

Page 27: automated+software+testing+tools.pdf

٢٢

21JUnit باشد که خودش نیـز میباز براي تست برنامه هاي نوشته شده به زبان جاوا - متن چارچوب، یک

، بر JUnitدر واقع . نوشته شده است1997 در سال Kent Beck و Erich Gammaبه زبان جاوا و توسط

تست براي برنامه هاي نوشته شده به زبـان چارچوب، که یک SUnit با نام Kent Beckاساس طرحی از

Smalltalk قابلیت و کارایی باال در عین سادگی، موجب شـده اسـت تـا . باشد، توسعه داده شده است می

JUnit ر هـاي برنامـه نویـسی دیگـر، نظیـ هاي مشابه آن براي زبان چارچوب، بعنوان یک الگو قرار گیرد و

ASP ،C# ،Eiffel ،Delphi ،PHP ،Perl ،Python و Visual Basicهــا در چــارچوبایــن . ، ایجــاد شــود

. باشـند میدهند که همه از نظر ساختار و مدل کاري مشابه یکدیگر می را تشکیل xUnitمجموع خانواده

JUnit اوا مطـرح اسـت و از امروزه بعنوان یک استاندارد غیر رسمی براي انجام تست واحد برنامه هاي جـ

. مقبولیت بسیار باالیی برخوردار است

. باشد ریق سایت رسمی آن قابل دسترس می، از طJUnitهاي اجرایی و همچنین کدهاي فایل

هـاي خـود را ایجـاد توانیم تست باشد که با استفاده از آن می می TestCase، کالس JUnitعنصر مرکزي

بعنوان مثال فرض کنـیم کالسـی . باشد ها می اي ایجاد و اجراي تست یی بر این کالس شامل متدها . کنیم

، بـه انجـام JUnitاگر بخـواهیم بـا اسـتفاده از . باشد که داراي تعدادي فیلد و متد می Circleداریم با نام

هـاي الزم را بـر روي سازي نماییم کـه تـست تست واحد این کالس بپردازیم، باید یک کالس تست پیاده

براي . ، تنها یک راه براي این کار وجود داردJUnit 4.0هاي قبل از در نسخه. دهد انجام میCircleکالس

سـپس در ایـن کـالس متـدهایی . مشتق شـود TestCaseاین کار باید یک کالس بنویسیم که از کالس

در نهایت . پردازند میCircleها یا رفتارهاي کالس کنیم که هر یک به تست یکی از ویژگی سازي می پیاده

، بطـور JUnit. بـدهیم JUnitبراي اجراي تست، باید این کالس را کامپایل نموده و آن را بـراي اجـرا بـه

testکند و هر یک از متدهاي این کالس کـه نـامش بـا عبـارت خودکار یک شیء از این کالس ایجاد می

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

. شود شروع میtestباشد که نامشان با عبارت متدهاي جدیدي می

21 http://www.junit.org

Page 28: automated+software+testing+tools.pdf

٢٣

، روش دیگري نیز فراهم گردید که براساس آن دیگر نیازي نیست کـالس تـست از کـالس JUnit 4.0در

TestCase همچنین نیازي نیست نام متدهاي تست با عبارت . مشتق شودtest روش در ایـن . شروع شود

توان متدهاي تست را می) معرفی گردیدJ2SE 5.0که در ( هاي جاوا annotationکه مبتنی بر استفاده از

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

ر وب، همچنـین در نمونـه کـدهاي دهیم، زیرا در اکثر متـون و راهنماهـاي موجـود د را مد نظر قرار می

. از این روش استفاده شده استموجود، عمدتاً

طراحـی شـده انـد اسـتفاده JUnitبراي اجراي تست هاي نوشته شده، از کالسهایی که بدین منظـور در

:گوییم می test runnerکند، که به آنها می، دو کالس براي اجراي تست ها ارائه JUnit. نماییم می

. باشد می junit.textui.TestRunnerده تست مبتنی بر متن که کالس اجرا کنن

. باشد می junit.swingui.TestRunner که کالس Swingاجراکننده تست مبتنی بر

مشتق شود، در نتیجه متـدهایی کـه TestCaseهمانطور که پیشتر گفته شد، کالس تست باید از کالس

تـرین ایـن متـدها، متـدهاي رسـند، مهـم میالس تست به ارث اند به ک تعریف شده TestCaseدر کالس

assert متد ً◌مثال. روند میباشند که براي بررسی نتایج به کار می assertTrue کنـد کـه آیـا مـی بررسی

است این به معناي موفقیت متد تست trueاگر مقدار آن برابر . false است یا trueمقدار آرگومان آن برابر

بنـابراین در . نمایـد می، این مساله را بعنوان شکست متد تست گزارش JUnitر اینصورت، باشد، در غی می

، assertTrue ،assertFalse ،assertEqualsعمــل، در پیــاده ســازي متــدهاي تــست، از متــدهایی نظیــر

assertNotNull ،assertNull نماییم می و متدهاي دیگر که بدین منظور تعریف شده اند استفاده .

، براي انجام تست واحد برنامه هاي جاوا، ابزار بسیار مناسب، قدرتمند و در عـین حـال JUnitمجموع، در

باشد و امکانات جدیدي ارائـه می آن بسیار ساده تر و غنی تر از پیش 4.0بخصوص نسخه . باشد میساده

که متدهاي تست بـه چـه هاي جاوا، تعیین کنیمannotationتوان با استفاده از میبعنوان مثال . کند می

. یک متد تحت چه شرایطی اجرا شودترتیبی اجرا شوند، یا هر متد چند بار اجرا شود، یا اینکه مثالً

Page 29: automated+software+testing+tools.pdf

٢٤

و Eclipse ،JBuilderهاي جاوا نظیـر هاي توسعه برنامه ، با تعدادي از محیط JUnitالزم به ذکر است که

Intellij IDEAل با ، نیز یکپارچه شده است و امکان تبادJUnit هـا بخـوبی فـراهم افزار نـرم از درون ایـن

، که توجه )agile methods (افزار نرمهمچنین با توجه به مقبولیت روزافزون متدهاي توسعه چابک . است

Error! Reference .، رو به افزایش اسـت JUnitله تست دارند، اهمیت و رواج ي بر مسأو تمرکز بیشتر

source not found.

HTTPUnit

شروع شد و اولین پـروژه متمرکـز در حـوزه تـست Ruse Gold توسط 2000 در سال 22httpunitپروژه

ها بـدون اسـتفاده از مرورگـر ، براي تست وب سایت افزار نرم منبع باز تست چارچوبو یک . است افزار نرم

اسکریپت و و جاوا http دسترسی ساده و احراز هویتhttpهاي توان از ارسال فرم میhttpunitدر .است

هاي تـست جـاوا اجـازه پـردازش زبان جاوا نوشته شده است و به کد به httpunit. استفاده کرد...کوکی و

. دهـد را می XMLDOMها ویا هایی از فرم ها و جداول لینک یا کانتینر صفحات بازگشتی بصورت متن

httpunit براي استفاده با junit توان به سادگی تـست هـایی نوشـت کـه رفتـار اسب است و می بسیار من

هاي وب بسیار کمـک به اتوماتیک کردن تست برنامهhttpunit. کنند ناسب یک وب سایت را بررسی می م

.دماین کند و به همین دلیل در تست رگراسیون کمک بسیاري می می

API هاي ا و دریافته تعامالت وب را در سطح پاسخافزار نرم هاي موجود در اینhttpنمونه . کند مدل می

: زیر را ببینید

WebConversation wc = new WebConversation();

WebResponse resp = wc.getResponse("http://www.google.com/");

WebLink link = resp.getLinkWith("About Google");

link.click();

WebResponse resp2 = wc.getCurrentPage();

22 http://httpunit.sourceforge.net/index.html

Page 30: automated+software+testing+tools.pdf

٢٥

و WebRequest و WebConversion هــاي کــالس کــد ازشــود در مــشاهده مــیهمــان طــور کــه

WebResponse شود می استفاده .

. گیرد خواهیم بررسی کنیم را می ، که مکان سایتی را که می استwebconversion کالس httpunit پایه

.د تقاضاي پاسخ نموwebconversion و از هدبراي استفاه از آن، باید یک درخواست ایجاد کر

:مثالً

WebConversation wc = new WebConversation();

WebRequest req = new

GetMethodWebRequest("http://www.meterware.com/testpage.html" );

WebResponse resp = wc.getResponse( req );

از طریـق DOMو یـا بـصورت یـک به عنوان متن ()gettextتوان با تابع حاال پاسخ برگردانده شده را می

.بررسی کرد ()getDOMتابع

تـوان از ، نمـی هاي جـاوا اسـکریپت اسـتفاده شـده باشـد اي از مقادیر زیادي کد متأسفانه ، اگر در صفحه

httpunitن صفحه استفاده کرد براي تست آ .

عنـوان یـک خط فرمان اجرا شوند و چه بـه ، چه روي standaloneهاي جاواي تست اتومات براي برنامه

چون برقـراري ارتبـاط در برنامـه هـاي وب از . شوند اجرا می Junit، با استفاده از کامپوننت استفاده شوند

هـاي وب مناسـب بـراي تـست برنامـه Junit است و نه از طریق فراخوانی توابع جاوا، بنابراین httpطریق

رایگان در دسـترس اسـت و امکـان تـست به طور این ابزار . یدآ میما به کمک httpunitدر اینجا . نیست

. استJunitکند و در واقع مکملی براي هاي وب را فراهم می برنامه

هـاي هاي هر دو را ترکیب کنید و از ویژگی یا اینکه توانایی جداگانه استفاده کنید و httpunitتوانید از می

reporting , regression موجود در junitنیز استفاده کنید . httpunit شامل کدهایی براي شـبیه سـازي

یک کالینت وب httpunitدر اصل . است JavaScriptعملکرد یک مرورگر، و همچنین پشتیبانی جزئی از

.ریزي است قابل برنامه

Page 31: automated+software+testing+tools.pdf

٢٦

Client API هاي موجود در httpunitربري را کـا هایی بنویسید تا تستدهند که این امکان را به شما می

خیلی از httpunit .کند را، شبیه سازي کنید که به یک برنامه وب از طریق یک مرورگر دسترسی پیدا می

کند، از جملـه مـدیریت کـوکی بـراي هایی را که شما از یک مرورگر انتظار دارید را پشتیبانی می عملکرد

session ها از طریق متدهاي ها و ارسال فرمGET و POST وان به دنبـال عنـصر ت می ....ت و و احراز هوی

، لینک به لینک یا فرم به فرم گشت و مطمئن شد که برنامه نتایج درستی را برگردانده خاصی روي صفحه

.است

:هاي وب عبارتند از هاي اتومات روي برنامه دو روش اساسی براي انجام تست

توانند تکرار شوند از طریق ماکروهاي ضبط شده که می

از طریقAPIهاي ریزي که پاسخ هاي قابل برنامهhttpکنند را بررسی می.

، ریـزي قابل برنامـه APIبراي یک . هاي متناوب دارد و کاربرد آن سخت است روش اول احتیاج به بازبینی

HTMLهاي نز هم جدا کرد و سلسله مراتب الما دریافت شده از وب سرور را ا HTMLباید اجزاي فایل

.برد به کار می Httpunit این روش انعطاف پذیرتري است که. را تشکیل دادو محتویات متنی

شـنایی بـا هـا و نیـاز بـه آ نقطه ضعف روش دوم در مقایسه با روش اول زمان طوالنی براي ایجـاد تـست

تر است زیرا با تغییـرات کوچـک در روش دوم کوتاهmaintenance اما زمان .نویسی است امههاي برن روش

.ه ضبط دوباره ماکرو نیستنیاز ب

.کند اهمیت بیشتري دارد که طوالنی بودن زمان ایجاد تست را کم رنگ می maintenanceکوتاهی زمان

هـاي تـست از روش (XPهـاي توانیم از روش دارد اینست که نمی عالوه بر این عیب دیگري که روش اول

.ر موجود باشد در حال کاي استفاده کنیم، چون باید یک برنامه) ابتدا

HTMLUnit

Page 32: automated+software+testing+tools.pdf

٢٧

طح باالي صفحات وب کاري س که به زبان جاوا نوشته شده و دست است یک مرورگر 23HTMLUnitابزار

. سـازد هاي خاصی در صفحه را ممکـن مـی ها و کلیک کردن ابرمتن و دسترسی به المان مثل تکمیل فرم

getpage(URL)کنید، بلکه فقـط را ایجاد HTTP و TCP/IPهاي سطح پایین خواستنیازي نیست تا در

بـه صـورت اتوماتیـک html و ajaxرا اجرا کنید و ابرمتن دلخواه را پیـدا کنیـد و حـاال جاوااسـکریپت و

حتــی بــا (ســازي تــست صــفحات وب در خودکارhtmlunitتــر از اســتفاده معمــول. شــوند پــردازش مــی

و یا دانلود webscrapingتوان براي نیز می گاهی اوقات .است) هاي بسیار پیچیده جاوا اسکریپت کتابخانه

افـزایش داده javascript پـشتیبانی خـود را در زمینـه اخیراً htmlunit. محتوي وب سایت استفاده کرد

سـطح بـاالتر اسـت و تعـامالت وب را بـصورت مـستندات و httpunitز می ا کhtmlunit هاي API .است

. کند ، مدل میکند نها تعامل میهایی که کاربر با آ اینترفیس

WebClient wc = new WebClient();

HtmlPage page = (HtmlPage)

wc.getPage("http://www.google.com");

HtmlForm form = page.getFormByName("f");

HtmlSubmitInput button = (HtmlSubmitInput)

form.getInputByName("btnG");

HtmlPage page2 = (HtmlPage) button.click();

. کنـد اسـتفاده مـی ... وbutton و form و link و page و webclientبینیـد کـد از همان طـور کـه مـی

کننـد ولـی شوند کار مـی تست میhttpunit، زمانیکه با اند ساده استفاده کرده javascriptصفحاتی که از

شـوند تست مـی httpunitنند، هنگامیکه با ک جاوااسکریپت استفاده می دیگرهاي صفحاتی که از کتابخانه

هـاي جاواسـت و صـفحات یـک مرورگـر بـراي برنامـه htmlunitدر واقع . ممکن است کار کنند یا نکنند

HTML کند و را مدل میAPI کند که به شـما اجـازه فراخـوانی صـفحات و پرکـردن هایی را عرضه می

.دهـد مـی کند، همان طور که یک مرورگر نرمال عمل می دقیقاًرا... ها و ها و کلیک کردن روي لینک فرم

نیـز ajaxهـاي پیچیـده بـا کتابخانـه ن از جاوا اسکریپت خوب و رو به پیشرفت است و تقریباً پشتیبانی آ

23 http://www.sourceforge.net/projects/htmlunit

Page 33: automated+software+testing+tools.pdf

٢٨

هـاي چـارچوب همراه بـا httpunit معموالً . را شبیه سازي کند IE و Firefoxتواند تواند کار کند و می می

و canoowebtestهاي منبع بـاز مثـل در ابزار httpunitاز . شود استفاده می testNG و junitدیگري مثل

JWebUnit و Webdriver شود مرورگر استفاده میبه عنوان... و.

:htmlunit ویژگیهاي

پشتیبانی از پروتکلهايhttp و https

پشتیبانی از کوکی ها

پشتیبانی از روشهايGET و POST

پشتیبانی ازproxy server

پشتیبانی از javascript [html]

Selenium

24Selenium ي وب را اتومـات هـا هاي مختلف بتوانید تست برنامـه ي از ابزارهاست تا در پلتفرما مجموعه

رفتار یک مرورگر را httpunit و htmlunitشود هاي متفاوتی اجرا می کنید و در مرورگرها و سیستم عامل

هاي جـاوا کـد . شـوند روي یک مرورگـر واقعـی اجـرا مـی دقیقاً seleniumاي ه کنند ولی تست تقلید می

مثـل شـوند و سـپس دقیقـاً کند در حین برنامه در حال اجرا ایجاد می تولید می seleniumاسکریپت که

.کنند تعامل میبا برنامه کاربر

Selenium IDE

توانیـد در کند و شـما مـی ا ضبط می که کلیک ها و تایپ ها و سایر عملیات ر firefox روي add-onیک

توجـه کنیـد کـه در سـایر .نیـد نها را دوباره اجرا کنید و یا اسکریپت ایجـاد شـده را ویـرایش ک مرورگر آ

.توان استفاده کرد از این نسخه نمیها مرورگر

24 http://www.testinggeek.com/selenium.asp

Page 34: automated+software+testing+tools.pdf

٢٩

Selenium IDE -1-4 شکل

Selenium Remote Control

:انتخاب زبان و مرورگر دلخواه

و . دنویـس ها را به زبان دلخـواه مـی کند و تست هاي مختلف اجرا می چارچوبها و ها را روي مرورگر تست

کند و مقیـاس بسیار پیشرفته تر از باالیی است و قادر است گستره وسیع تري از برنامه هاي وب را تست

در زیر نمایش ساختاري سـاده شـده . است نیاز ی به اطالعات فنی ار کم غاز به ک براي آ نیز تر است و پذیر

.دبینی ن را میآ

Selenium RCاز دو بخش تشکیل شده است :

نهـا هـاي وب آ کند و براي درخواسـت یک سرور که بصورت خودکار مرورگر را اجرا و یا تمام می

.کند عمل میhttp proxyبصورت یک

زبان برنامه نویسی دلخواه شما هاي کاربر براي کتابخانه

Page 35: automated+software+testing+tools.pdf

٣٠

توانیـد مـی . شـود متـصل مـی Ajax(xmlhttorequest) بـه مرورگـر از طریـق مستقیماً seleniumسرور

ـ . بفرسـتید HTTP GET/POSTهاي ساده دستورات را به سرور با استفاده از درخواستمستقیماً ه ایـن ب

را seleniumهاي ایجاد کند تا تستHTTPهاي تواند در خواست نویسی که می معنا که از هر زبان برنامه

تنظـیم شـده در سـمت http proxyسرور سلنیوم به عنوان یک .روي مرورگر اتومات کند، استفاده کنید

خواهید بود یـک مرورگـر بـا به این ترتیب قادر .گیرد کاربر است و بین مرورگر و وب سایت شما قرار می

.ها داشته باشید اوا اسکریپت روي وب سایت اجراي ج، برايهاي سلنیوم قابلیت

:با شروع اجراي یک مجموعه تست

کالینت یا برنامه شما به سرور سلنیوم دسترسی دارد.

سرور سلنیوم یک مرورگر را باURL که صفحه وب هسته سـلنیوم را بـار خواهـد . ایجاد میکند

.کرد

از طریق (ر را از کالینت یا برنامه شما میگیرد هسته سلنیوم اولین دستوhttpproxy تعبیه شـده

)در سرور سلنیوم

مثال بار کردن یک صفحه؛کند هسته سلنیوم دستور را اجرا می . [sel]

EMMA

EMMA25 ، یک ابزار متن باز براي انجام تست پوشش کد بر روي برنامه هاي نوشته شده بـه زبـان جـاوا

در حین اجـراي برنامـه، کـدام دسـتورات برنامـه اجـرا توان بررسی کرد که میه از آن با استفاد . باشد می

توان بررسی کـرد کـه کـدام میبعنوان مثال . اند هاند و چه مقداري از کدهاي برنامه پوشش داده شد شده

سرعت EMMAمهمترین ویژگی . متدها اجرا نشده اند یا کدام کالسها اصال مورد استفاده قرار نگرفته اند

. باشد میباالي آن

25/net.sourceforge.emma://http

Page 36: automated+software+testing+tools.pdf

٣١

بـه اجـراي برنامـه EMMA. دهـیم می EMMAروش کار بدین ترتیب است که یک برنامه اجرایی را به

ایجاد xml یا htmlپردازد و پس از پایان برنامه، گزارشهاي مناسبی در قالب فایلهاي متنی یا فایلهاي می

کننـد کـه در حـین اجـراي برنامـه، کـدام مـی باشند و مـشخص میکند که جاوي اطالعات مناسبی می

. قسمتهاي کد مورد اجرا قرار گرفته اند

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

EMMA. باشـند را بـه آن بـدهیم می برنامه که حاوي بایت کدهاي جاوا class.فقط کافی است فایلهاي

پردازد و سپس با میکند و سپس به اجراي برنامه میابتدا کدهاي خاصی را در میان کدهاي برنامه، درج

. پردازد میاستفاده از کدهایی که درج کرده به تشخیص دستوراتی که اجرا نشده اند

EMMA ،رشـهاي گزا. تواند میزان پوشش کالسها، متدها، خط ها و بالکهاي برنامه را گـزارش نمایـد می

بعنـوان سـاختار گـزارش اسـتفاده نمـوده htmlباشند و اگر از قالـب میتولید شده بسیار مناسب و گویا

باشیم، امکان جابجا شدن بین صفحات گزارش با استفاده از لینکهایی که در این صفحات درج شـده انـد،

. باشد میبسیار راحت و کارآ

EMMA تواند از فایلهاي می هم.class توانـد از فایلهـاي مـی ن ورودي اسـتفاده نمایـد و هـم بعنـوا.jar

.استفاده نماید

.، بطور کامل به زبان جاوا نوشته شده استEMMAالزم به ذکر است که

.باشد در نظر بگیرید می Test و Circleبعنوان مثال، برنامه زیر را که شامل دو کالس

Circle.jva Test.javapublic class Circle {

private int r; public Circle(int r) {

setR(r); }

public void setR(int r) { if ( r < 0 ) r = -r;

this.r = r; }

public int getR() {

public class Test {

public static void main(String[] args) {

Circle c = new Circle(10);

}

}

Page 37: automated+software+testing+tools.pdf

٣٢

return r; }

}

دهیم تا برنامه را اجرا نماید و گـزارش می EMMA را به Test.classپس از کامپایل این دو کالس، فایل

بطور پیش فرض، گزارش تولیدي در قالب یک فایل متنی ساده نوشته . میزان پوشش برنامه را تولید نماید

.که نمونه آن در زیر نمایش داده شده است. شود می

[EMMA v2.0.5312 report, generated Mon Jul 14 18:59:40 IRDT 2008]-----------------------------------------------------------------------------

--OVERALL COVERAGE SUMMARY:

[class, %] [method, %] [block, %] [line, %] [name]100% (2/2) 60% (3/5)! 67% (18/27)! 74% (7.4/10)! all classes

OVERALL STATS SUMMARY:

total packages: 1total classes: 2total methods: 5

total executable files: 2total executable lines: 10

COVERAGE BREAKDOWN BY PACKAGE:

[class, %] [method, %] [block, %] [line, %] [name]100% (2/2) 60% (3/5)! 67% (18/27)! 74% (7.4/10)! default

package-----------------------------------------------------------------------------

--

ایجاد نماییم، نتیجه شبیه آن چیـزي خواهـد بـود کـه در تـصویر زیـر htmlاگر گزارش را در قالب فایل

. نمایش داده شده است

Page 38: automated+software+testing+tools.pdf

٣٣

EMMA براي HTML قالب -2-4 شکل

کند که از دو کالس موجود در برنامه، هر دو کالس مورد استفاده می بیان EMMAدر این مثال، گزارش

رار متد مورد اسـتفاده قـ 5 متد از بین 3قرار گرفته اند، اما از متدهاي موجود در این کالسها، در مجموع

شود و سپس بر اثر ایجاد یک شیء می، اجرا mainالزم به توضیح است که برنامه با اجراي متد . گرفته اند

فراخوانی شـده setRشود که در درون آن نیز متد می، متد سازنده این کالس فراخوانی Circleاز کالس

، تعـداد متـدهاي موجـود در EMMAاما علت اینکه چـرا . متد اجرا شده اند 3بنابراین در مجموع، . است

کند، آن است که در جاوا اگر براي یک کـالس متـد سـازنده اي ایجـاد نکنـیم، می متد اعالم 5برنامه را

کند که کار خاصی هـم انجـام میکامپایلر بطور خودکار، یک متد سازنده پیش فرض براي کالس تعریف

بنابراین کامپـایلر یـک . ده اي تعریف نکرده ایم ، هیچ سازن Testدر مثال فوق، در تعریف کالس . دهد مین

، در شمارش متدها، آن متـد را هـم بـه EMMAمتد سازنده پیش فرض براي کالس ایجاد کرده است و

. حساب آورده است

بـه EMMA هـاي False Positive، ممکن است بعنـوان )تعداد متدهاي برنامه(مواردي نظیر مورد فوق،

.توان توجیه فنی آنها را نیز درك نمود میدقت می حساب آیند که البته با ک

Page 39: automated+software+testing+tools.pdf

٣٤

، بعنوان یک ابزار براي تست پوشش برنامه هـاي جـاوا ابـزار مناسـب و قدرتمنـدي EMMAدر مجموع،

[emma] .باشد میباشد که مزیت مهم آن، عدم نیاز به متن کد برنامه، و همچنین سرعت باالي آن می

Testing Framework based on .NET

test scriptایـن ابـزار . اتومـات شـده اسـت ي کامالًافزار نرم این چارچوب هدف توسعه یک ابزار تست در

regression testing و (integration testing) ، تـست یکپـارچگی (unit testing)هایی براي تست واحد

.ندک ایجاد می

ها، اعالم نتایج ، و تصحیح test caseجاد هاي تست، ای ، از تولید اسکریپتابزار تست باید کارهاي تست را

.ها را انجام دهد باگ

است ،نشان دادن راهی است که بتوان یـک ابـزار NET Framework.هدف در ابزار تستی که بر اساس

یابد و یک اسـکریپت بـراي میمراحل ویرایش داده ها کاهش .تست را بصورت اتومات ایجاد و توسعه داد

و شما مجبور نخواهید بود اسکریپت هاي تست را بصورت دسـتی .ربردي ایجاد میشود تست کل برنامه کا

محصول نهایی به سادگی یک برنامه را میپذیرد و نتایج تـست را بـه شـما بـاز .ویرایش و خطا یابی کنید

.میگرداند

ي با زاراف نرممیتوان ابزار اتومات تست بسیار قوي براي تست یک محصول پیچیده NET Framework.در

است ولی بـه معنـاي تمجیـد از #Cاگرچه زبان بحث شده در اینجا .کمترین میزان دخالت انسان داشت

ها نیست و متـدلوژي framework محصوالت مایکروسافتی و انتقاد از سایر محیط هاي برنامه نویسی و

و java. ها نیز هستframeworkقابل تعمیم به سایر محیط هاي برنامه نویسی و اینجا ارائه شده در این

.NETمحیط هاي کامال شی گرا وبراي تکمیل پروژه هاي ابزار هاي تست است .

نیازي به نوشتن دسـتی اسـکریپت NETFrameworkي فراهم شده در افزار نرمبا ابزارها ي اتومات تست

.هاي تست و یا ضبط سناریو هاي تست نیست و این ابزار قابل استفاده مجدد است

. قابلیت هاي زیر را داردافزار نرم براي اتومات کردن تست net framework.زار معرفی شده در اب

Page 40: automated+software+testing+tools.pdf

٣٥

. تحت تست را یاد میگیرد26بصورت دینامیک اسمبلی

.بصورت دینامیک کارهاي سخت و خسته کننده را انجام میدهد

ها بصورت برنامه ریزي شده test scriptایجاد و اجراي

.ي را با یک مجموعه داده مشخص تست میکندافزار نرم و سایر کامپوننتهاي COM رابط هاي اشیاي

.براي تست صحت نتایج تست به یک پایگاه داده دسترسی دارد

.به رجیستري ویندوز براي اطمینان از صحت نتایج دسترسی دارد

ال عات و نوشـتن قادر خواهیم بود فرایند جمع اوري اط CodeDomو Reflectionبا ترکیب دو فضاي نام

.اسکریپتهاي تست را با حداقل دخالت انسانی انجام دهیم

و ان را بـه کالسـها و توابـع عـضو و . میتواند یک اسمبلی خاص را بازنـشانی کنـد Reflectionفضاي نام

property و ایـن .بنابراین بصورت اتوماتیک فرایند جمع اوري اطالعات را انجام میدهـد . ها تجزیه میکند

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

میتواند اسکریپتهاي تست را بصورت دینامیک بر اساس اطالعـات بدسـت امـده از CodeDom فضاي نام

.فرایند فوق بنویسد

ایـن داده .رد نیاز به فضایی براي ذخیره داده هاي مربوط به تست کامپوننت ها داautomated test پروژه

ها شامل نام کالسهاي یک اسمبلی،سازنده ها،نام سایر اعضاي کالس ، مقادیر پارامترهاي توابع و سـازنده

هاي قابل برنامه MS Excel API براي قابلیت ویرایش داده ها استفاده میکنیم و xml , excelاز .ها ست

داده هاي تست را سازمان دهی کننـد و ریزي انعطاف پذیري زیادي براي تست کنندگان فراهم میکند تا

و ذخیره نتـایج ) که داده هاي تست را براي برنامه تست میکنند (میتوان براي نوشتن اسکریپتهاي تست

. نمایش داده میشوندexcel و xmlداده هاي تست و نتایج تست با . به کار برد

26

ند ماژول مثل فضاھای یک اسمبلی میتواند شامل یک یا چ. ،با نام اسمبلی شناختھ میشوندEXE , .dll. برنامھ ھای فیزیکی کامپایل شده مثل فایلھای NET.در دنیای .نام و یا کالسھا باشند

Page 41: automated+software+testing+tools.pdf

٣٦

بـا اضـافه کـردن یادداشـت هـاي .هستند براي ذخیره و تبادل داده ها یک استاندارد xml پرونده هاي

اگر در هنگام . درست کردhelp document ، میتوان یک #C در محیط برنامه نویسی xmlمستند سازي

.نوشتن یک تابع بتوان یک مورد تست طراحی کرد بسیار خوب است

تـسهیالت system.reflectionدر کنار توابع کالس اسمبلی براي کشف نوع در زمان اجـرا ، فـضاي نـام

میتـوان یـک متـد را بـا پارامترهـاي دلخـواه در زمـان اجـرا Late bindingبا .وردآ میدیگري نیز فراهم

.، میتوان بصورت دینامیک هر تابعی را فراخوانی کرد typeبا شناسایی حضور یک .فراخوانی کرد

NET CodeDOM.فضاي نام

هـاي یـک ها، متدها و خصوصیت است که تمامی کالس ايTestScriptافزار نوشتن هدف اصلی تست نرم

ي ابزار تست اتوماتیک ما مکانیزم خودکاري است که کارهاي زیـر را انجـام هسته. اسمبلی را تست نماید

:دهد می

ها در اسمبلی تحت تست ها، متدها و خصوصیت یافتن کالس

ی مبتنی بر ماهیت اسمبلیهای تعریف مورد تست

دهد ي که کار تست را انجام میاTestScriptنوشتن

TestScriptاجراي

نمایش نتایج تست

Integration و Regression، براي تست TestScriptي مجدد از اسمبلی استفاده

. اسـت ) اصـلی ( براي ایجاد اتوماتیـک کـد منبـع CodeDOMي مرسوم فضاي نام یکی از موارد استفاده

شـود، وقتی این برنامه اجرا می. کارهاي کدینگ را کمتر نمایدهاي کد این است که هدف این تولیدکننده

.ي دیگري را در کسري از ثانیه تولید کند تواند برنامه می

Page 42: automated+software+testing+tools.pdf

٣٧

هـاي مختلـف هایی را دارد که در زمان اجرا کدهایی به زبـان قابلیت ساخت برنامه CodeDomفضاي نام

کند و مستقل از زبـان برنامه را مشخص می هایی است که ساختار Typeاین فضاي نام داراي . تولید کند

. اسـت VB.NET و C#.NETکنـد، تولید میCodeDomهاي معمولی که زبان. نویسی جاري است برنامه

انواعی را براي کامپایل کد برنامه در زمان اجرا دارد که با استفاده از آنها تـست CodeDomعالوه بر این

.کنیم میافزار را پردازشی کامالً خودکار نرم

Source codeبنابراین . کند اي را بر اساس یک مدل واحد ایجاد میCodeDom ،Source codeفضاي نام

این فضاي نام یک نمـایش . کند، تولید شود را حمایت می CodeDomتواند به هر زبانی که مشخصات می

[sybex] .دهد ائه میدر مود شی که مستقل از زبان است، براي ساختار کدي که در حافظه است ار

Push To Test Test Maker

Push to test و مدیران افزار نرم کد باز براي خودکار سازي تست توسط برنامه نویسان چارچوب یک IT و

برنامـه . بازرسان کنترل کیفیت است تا بتوانند سیستم هاي اطالعاتی را تست و کنتـرل و هـدایت کننـد

. کنند استفاده میpush to testواحد به تست عملکرد از نویسان براي تبدیل تستهاي

Push to test از جمله .دهد یک محیط غنی براي ایجاد تست هاي واحد ارائه می:

کند محیط گرافیکی راحت براي کاربر ایجاد می.

هاي اسکریپت نویسی شـی گـرا مثـل زبانjava , jython بـراي ایجـاد اسـکریپتهاي تـست،ارائه

.کند می

کتابخانه اي قابل گسترش ازprotocol handler هـایی قابـل اسـتفاده از شامل پیاده سـازي . ها

http , https , soap , rest , xml-rpc , smtp , pop3 , imap , وب سرویسها.

،از جمله عامل ویزارد هایی براي ایجاد یک عامل جدیدrecorder که میتوانـد اسـکریپت بـراي

.دشما ایجاد کن

Page 43: automated+software+testing+tools.pdf

٣٨

اي تست در یک محیط توزیع شده تسته کنسول براي اجراي عامل.

عملیهاي تست نمونه کامالً اي از عامل کتابخانه .

. هاي اسـکریپت تـست وجـود دارد ها بدون نوشتن کـد هایی براي ایجاد اتوماتیک تست اردها و رکوردر ویز

هـاي امکان اسکریپت نویسی با زبـان push to testهایی که نیاز به اسکریپت نویسی دارند، در براي تست

هــاي عــالوه بــر ایــن از ســرویس . وجــود دارد…,java, jython,Groovy, PHP,Rubyمهــم از جملــه

SOA,webservice,ajax,…هاي که از پروتکلhttp, https, soap, xml-rpc, telnetهاي ایمیل و پروتکل

هـاي بـصورت خودکـار تـست push to testراي محیط زمـان اجـ . کند کنند را، پشتیبانی می استفاده می

عملکرد واحد را به تست بار و تست مقیاس پذیري وتـست کـارایی و تـست رگراسـیون و تـست کنتـرل

.کند سرویس تبدیل می

Emailهاي و سیستمSOAهاي اي وب و وب سرویسه هایی که به عملکردهایی براي تست برنامه تست

.اسب استهاي جاوا و بقیه من و برنامه

در برنامه هاي وب کاربران به عملیاتی از طریق مرورگر وب دسترسی دارند و در : تست برنامه هاي وب

براي تست این برنامه هـا (capture / playback) تکنولوژي ذخیره و اجراي مجدد push to test چارچوب

. یک کاربر مرورگر وب استtest agentبراي برنامه وب . عرضه میشود

ارتباطات SOAوب سرویس ها و :SOA(Service oriented architecture)ت وب سرویس ها و تس

XML در . بین سرویس و سرویس یا برنامه با برنامه را عرضه میکننـدpush to test ابـزار soapUI زبـان

بـراي وب . را میخواند و تست هاي واحد و تست عملکرد ایجاد میکند (WSDL)توصیف یک وب سرویس

.مانند می میکنند و منتظر پاسخها سرویس، تستها به نظر برنامه یا سروري هستند که درخواستها را ایجاد

امکان دسترسی به مکانهاي ذخیـره سـازي پیامهـاي emailسیستم هاي : emailتست سیستم هاي

email هاي افزار نرم از طریق email client و پورتال هاي دسترسـی بـه email رورگـر وب را از طریـق م

هـاي protocol handler براي ارتباط با یک مکان ذخیره سازي پیام از push to testدر . فراهم میکنند

Page 44: automated+software+testing+tools.pdf

٣٩

SMTP,IMAP,POP3 و الحاقات . استفاده میشودMIME و رمز نگاري UTF و احراز هویت را پشتیبانی

.میکند

،قادرند فراخوانی هاي صـریح بـه test agent ، اسکریپت هاي Push to testدر : تست برنامه هاي جاوا

.توابع برنامه جاواي شما داشته باشند

تست و تصحیح

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

یکننـد ، ساخت تستهایی که رگراسیون و عملکرد و مقیاس پذیري و کارایی و قابلیت اعتماد را بررسـی م

یک راه حل یکتا براي تست و تصحیح عواملی که مانع از رسـیدن بـه اهـداف push to test .کرد بیان می

براي مثال با اجراي یک سناریوي تست میتـوان . دهد شود را ارائه می کارایی و عملکردي یک سیستم می

هـاي مانیتورینـگ کنتـرل کـرد و اه داده و سرور برنامه را بـا ابـزار وي یک سیستم بار ایجاد کرد و پایگ ر

.شود را شناسایی و بهبود بخشید مواردي که باعث کاهش کارایی می

ن تـوان روي آ در یک محیط تست جعبه سیاه ، با درخواستهاي متوالی از سرویس و مـشاهده نتـایج مـی

هـاي تهاي سرویس را با افـزایش درخواسـ تست مقیاس پذیري جعبه سیاه پاسخ . سرویس بار ایجاد کرد

. کند کند و برنامه را براي یک محیط واقعی ارزیابی می همزمان نظاره می

Push to testن خـواهیم آ از سرویسی که می. هاي جعبه خاکستري نیز مناسب است همچنین براي تست

ن را کـشف تا مسائل عملکردي و مقیـاس پـذیري آ کنیم را تست کنیم اطالعات داخلی را پرس و جو می

هاي پایگاه داده و برنامه کاربردي از ت وضعیت را از عملکرد داخلی الیهرویس تحت تست اطالعا س. کنیم

, cpuزدایی سرویس مربوط به بکارگیري هاي اشکال براي مثال به درخواست. کند محیط سرویس ارائه می

I/O , memoryباعث افـزایش این اطالعات اضافی در سه مقوله. دهد ها پاسخ می هاي تراکنش و وضعیت

.شود کارایی می

Page 45: automated+software+testing+tools.pdf

٤٠

براي مدیریت جمعیـت مادگی سیستم سرور هاي سمت کاربر ، آ test agentگیري توان عملیاتی با اندازه

.دهد اي از کاربران را نشان می بینی شده پیش

اسایی شوند و مقیاس پـذیري ها شن یابند تا رخنه هاي تست در حین تست تغییر می ترکیب عملیات عامل

.شودحل

یزي براي ظرفیـت را شناسـایی ر حافظه معیارهاي برنامه و CPU ،I/Oاندازه گیري استفاده از پهناي باند

.کند می

Test network

ها قادرند تست سیستم هاي خود را اتومات کنند تا عملیـاتی را کـه بـه درسـتی شرکت testnetworkبا

سیـستم هـا را ا بار اضافی را مـدیریت کننـد و متناوبـاً ، بررسی کنند ت ت خودکار بصور ،شوند را انجام می

. کنترل کنند تا دچار مشکل نشوند

Test network روي testmakerبا ارائه این ویژگیها ایجاد میشود .

، 1GHzبـراي مثـال روي یـک سیـستم پنتیـوم . ها با مقیاس بزرگتـر روي یـک ماشـین agentاجراي

testmaker مل همزمان را شبیه سازي کند و لی با عا150 تا 1 قادر استtestnetwork یا 10000 حدود

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

عامل هاي تست به سرورهاي کوچکی تبـدیل میـشوند کـه testnetworkکنسول / testnodeبا معماري

.میتوانند عملیات را مستقال مدیریت کنند

Test Maker Monitor

وري آ آمار جمـع . که و حافظه ي سرور برنامه وب است و شب CPUمار راي بررسی آ یک ابزار کمکی است ب

با برقراري ارتباط بین امار push to testهاي ارائه شده در اي در نمودار یک تحلیل ریشهmonitorشده از

.کند کارایی و استفاده از منابع ارائه می

Page 46: automated+software+testing+tools.pdf

٤١

Testmaker ها و شامل ویزاردrecorder اگرچـه اینهـا ابـزار هـاي . هاسـت دن ایجاد تست سان کر براي آ

بـرا ي مثـال فـرض کنیـد . توانند انجام دهند اي در جاي خودشان هستند ولی کار هاي کمی را می قوي

کنـد و میخواهید تستی بنویسید که نتایج بازگشتی از سرور را ، مطابق با منطق پیچیـده اي تحلیـل مـی

شود که از قابلیتهاي در موقعیتهایی مثل این ، پیشنهاد می . دهد عمل مناسب را بر اساس نتایج انجام می

. استفاده کنیدtestmakerاسکریپت نویسی پویاي

iMacros

iMacros27 که مخفف عبارت ،internet macros شرکت باشد، محصول می iOpus ، است که در ابتدا یک

. کشور اروپایی و آسیایی، متخصصانی دارددر حال حاضر در آمریکا و چندافزاري آلمانی بود، و تیم نرم

iMacrosابزاري است که براي خودکارسازي تعامالت کاربران با سیستمهاي تحت وب طراحی شده است .

دهند، بـا اسـتفاده از میانگیزه اصلی این بوده است که کارهایی را که کاربران بطور تکراري و مکرر انجام

iMacros مثال کارمندي که . و در نتیجه در وقت و انرژي کاربر صرفه جویی شود بطور خودکار انجام شود

توانـد بـا اسـتفاده از میهر روز باید به چند سیستم تحت وب، وارد شود و کارهاي روتینی را انجام دهد،

iMacorsبخش زیادي از کارهاي تکراري خود را بطور خودکار انجام دهد ، .

است، یعنی کارهـایی کـه کـاربر در مرورگـر انجـام capture/replay مبتنی بر مدل iMacros اساس کار

ماکروهـا را در مرورگـر بعد قابلیت اجـراي آن نماید و میرا در قالب یکسري ماکرو ضبط و ذخیره هد می

تواند ابتدا تعامالت خود با سیـستم مـورد نظـر را ضـبط نمایـد، و سـپس بـا میبدین ترتیب، کاربر . دارد

همین قابلیت تعامل خودکـار .، این تعامالت را بارها و بارها بطور خودکار تکرار نماید iMacrosاستفاده از

را به ابزاري قوي براي خودکارسازي تست سیستمهاي تحت وب تبـدیل کـرده iMacrosبا صفحات وب،

وي براي انجام تست هاي مختلف بـر ر iMacrosدر حال حاضر کاربران زیادي در سراسر جهان از .. است

.کنند میسیستمهاي تحت وب خود استفاده

27com.iopus.www://http

Page 47: automated+software+testing+tools.pdf

٤٢

یعنی مثال ماکرویی کـه . باشند میمستقل از پلتفرم و مرورگر فایلهاي متنی ساده اي هستند که ماکروها،

. اجرا کردFirefoxمرورگر توان در میرا است ایجاد شده IEمرورگر در

: بدین ترتیب استiMacorsي برخی از کاربردها و ویژگی ها

رکردن فرمهاي موجود در صفحات وب، بعنوان مثال فرم ورود به یک سایتپ

تست هاي مختلف بر روي سیستم هاي تحت وب، نظیر تست کارآیی، تست امنیت، تست بار و

استرس

استخراج داده ها از صفحات وب بطور خودکار

Uploadکردن اطالعات در سیستم هاي تحت وب بطور خودکار

ماکروهاي امکان استفاده ازiMacors در زبانهاي برنامه نویسی نظیر Java ،C# و ،PHP و

Python

انجام کارهاي تکراري در سیستمهاي تحت وب، بطور خودکار و بدون نیاز به دخالت کاربر

امکان ذخیره کلمات رمز بطور محرمانه و امن، براي انجام تعامالتی که به کلمه رمز کاربر نیاز

.نماید می بیت استفاده 256 با طول کلید AESالگوریتم رمز از iMacros. دارند

براي اندازه گیري زمان پاسخ سیستمهاي تحت وب و ارزیابی کارایی این سیستمها

قابلیت پشتیبانی از سایتهایی که ازFlash نمایند می یا جاوا اسکریپت استفاده .

iMacros آنها با هم مقایسه شـده اسـت امکانات سایت مربوطه ، داراي سه نسخه است که در. [imacro]

[imacro2]

و Eclipse ،JBuilderهاي جاوا نظیـر هاي توسعه برنامه ، با تعدادي از محیط JUnitالزم به ذکر است که

Intellij IDEA نیز یکپارچه شده است و امکان تبادل با ،JUnit افزارهـا بخـوبی فـراهم از درون ایـن نـرم

، که توجه )agile methods(افزار ه مقبولیت روزافزون متدهاي توسعه چابک نرمهمچنین با توجه ب. است

.، رو به افزایش استJUnitو تمرکز بیشتري بر مسأله تست دارند، اهمیت و رواج

Page 48: automated+software+testing+tools.pdf

٤٣

گیري انداز و نتیجه چشم- 5

و منـابع زمـان افـزاري نرم يها امروزه سازمان . هاي کاربردي روز به روز در حال افزایش است حجم برنامه

، بـه تـست يافزار نوشـتن کـدها از نظر مهندسان نرم. کنند ی صرف م افزار نرمل و تست ی را در تحل يادیز

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

بنابراین خودکارسازي . شود تست کردن دستی آنها کاري بسیار سنگین و طاقت فرسا و گاه غیر ممکن می

. نماید می حلی است که کارهاي سنگین و پرزحمت تست را ساده تست راه

د توجـه داشـت کـه یبا. افزار تحت تست مناسب باشد زمانی مؤثر است که شرایط نرم ي تست خودکارساز

بلکـه بـه . شود ی به صورت خودکار انجام م افزار نرم تستند یست که کل فرآ ین معنا ن ی خودکار به ا تست

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

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

. باشدی موجود متست

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

سـاختار . اسـت افتـه ی يادیـ ز اری بس تی جاوا مقبول يها تست واحد برنامه ار ابز نیتر امروزه بعنوان مهم که

عـضو دیگـر ایـن . اسـت برخـوردار یی بـاال یی و کارآتی از قابل،ی سادگنی ابزار، در عنیمورد استفاده در ا

ها بدون استفاده از ، براي تست وب سایتافزار نرم منبع باز تست چارچوبیک است که httpUnitخانواده

و جـاوا http و احراز هویـت دسترسـی سـاده httpهاي توان از ارسال فرم میhttpunitدر .مرورگر است

شته شده و که به زبان جاوا نواست یک مرورگر نیز HTMLUnitابزار . استفاده کرد...اسکریپت و کوکی و

هـاي ها و کلیک کردن ابرمتن و دسترسی به المـان طح باالي صفحات وب مثل تکمیل فرم کاري س دست

.سازد خاصی در صفحه را ممکن می

Page 49: automated+software+testing+tools.pdf

٤٤

ي وب را ها ي است از ابزارها که تست اتومات برنامها است که مجموعه Seleniumتست خودکار دیگر ابزار

روي یـک مرورگـر واقعـی اجـرا دقیقـاً seleniumهـاي تست. دکن هاي مختلف امکان پذیر می در پلتفرم

شـوند کند در حین برنامه در حال اجرا ایجاد می تولید می seleniumهاي جاوا اسکریپت که کد. شوند می

.کنند مثل کاربر با برنامه تعامل میو سپس دقیقاً

EMMA هاي نوشته شده به زبـان جـاوا یک ابزار متن باز براي انجام تست پوشش کد بر روي برنامه نیز

توان بررسی کرد که در حین اجـراي برنامـه، کـدام دسـتورات برنامـه اجـرا با استفاده از آن می . باشد می

.اند اند و چه مقداري از کدهاي برنامه پوشش داده شده شده

زي شـده سـا پیـاده #C که با استفاده از زبان NET Framework.ی براي تست خودکار بر مبناي چارچوب

اتومات شده ي کامالً افزار نرمتوسعه یک ابزار تست این چارچوب هدف .، نیز در این متن بررسی شد است

integration) ، تـست یکپـارچگی (unit testing) هـایی بـراي تـست واحـد test scriptاین ابـزار .است

testing) و regression testingندک ایجاد می.

iMacros انگیـزه . ري براي خودکارسازي تعامالت کاربران با سیـستمهاي تحـت وب اسـت نیز ابزاري تجا

دهنـد، بـا اسـتفاده از اصلی این بوده است که کارهایی را که کـاربران بطـور تکـراري و مکـرر انجـام مـی

iMacros و با مدل capture/replayبطور خودکار انجام شود .

Push to test بتوانند تـست و کنتـرل و هـدایت به منظورازي تست کد باز براي خودکار س چارچوب یک

push toهاي واحد به تست عملکـرد از برنامه نویسان براي تبدیل تست. باشد یستم هاي اطالعاتی میس

testمحیط زمان اجراي .کنند استفاده میpush to testهاي عملکـرد واحـد را بـه بصورت خودکار تست

.کند کارایی و تست رگراسیون و تست کنترل سرویس تبدیل میتست بار و تست مقیاس پذیري وتست

هـاي خـاص خـود را افزار بسیار متنوع هستند و هر یـک ویژگـی خودکار نرمتست ها و ابزارهاي چارچوب

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

اي از ابزارهاي خوب و کاراي موجود باشد خالی است و نیاز به چنین چـاچوبی خودکار جامع که مجموعه

Page 50: automated+software+testing+tools.pdf

٤٥

چارچوب پیشنهادي شامل تست محصول نهایی به روش جعبـه سـیاه اسـت و .به وضوح قابل درك است

عالوه براین در . هاي سیستم است تأکید اصلی آن برروي تست عملکرد نرم افزار و مقایسه آن با نیازمندي

ی، آزمونهاي جعبه سیاه دیگري همچون تست استرس، تست بار و تست امنیـت نیـز پـیش محصول نهای

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

و یا از ) UMLمانند مدل (پیش بینی شده است که از جمله آنها تولید موارد تست از روي مدل نرم افزار

امـا چـون . این کار به معناي استفاده از ابزارهـاي جعبـه سـفید مـی باشـد . کد منبع نرم افزار است روي

هاي اجرا شده بر روي سیستم تحت آزمون بصورت جعبه سیاه عمل می کنند، در مجموع می تـوان تست

چراکـه گرچـه نیـازي بـه داشـتن . گفت متدولوژي آزمون در این چارچوب، روش جعبه خاکستري است

طالعات دقیق از کد منبع نرم افزار و ارتباطات داخلی آن براي انجام آزمون نداریم، اما دسترسی به یـک ا

به ما در تهیـه مـوارد ) ویا دسترسی به خود کد منبع براي بدست آوردن یک مدل (مدل کلی از نرم افزار

.تر کمک می نماید تست جامع

Page 51: automated+software+testing+tools.pdf

٤٦

مراجع-6

[Ham04] Paul Hamill, Unit Test Frameworks, O'Reilly, 2004.[Kan01-1] Kaner, Cem; James Bach, Bret Pettichord (2001). Lessons Learned in Software

Testing: A Context-Driven Approach. Wiley, 4. ISBN 0-471-08112-4.[Chu05] Huey–Der Chu, John E Dobson and I–Chiang Liu, FAST: A Framework for

Automating Statistics–based Testing, 2005.[Cra02] Rick D. Craig, Stefan P. Jaskiel, Systematic Software Testing, Artech House

Publications, 2002.[Ngu01] Hung Q. Nguyen, Testing Applications on the Web: Test Planning for Internet-

Based Systems, Wiley, 2001.[Luc06] Giuseppe A. Di Lucca, Anna Rita Fasolino, Testing Web-based applications:

The State of the Art and Future Trends, Information and Software Technology 48 (2006) 1172-1186.

[Pre05] Pressman, R., Software Engineering: A practitioners guide, 6th edition, McGraw-Hill, 2005.

[Mak07] Mikko Mäkinen, Model Based Approach to SoftwareTesting, May 22, 2007[Spr07] Sara E. Sprenkle, STRATEGIES FOR AUTOMATICALLY EXPOSING

FAULTS IN WEB APPLICATIONS, summer 2007[Mas04] Vincent Massol, ted Husted, JUnit in Action, Manning, 2004.[imacro] http://www.iopus.com[emma] http://emma.sourceforge.net[sybex] Kanglin Li, Menqi Wu, Effective Software Test Automation: Developing an

Automated Software Testing Tool, Sybex, 2004.[sel] C. Titus. B, G. Gheorghio, J.Huggins, "An Introduction to testing web

application with twill and selenium" O'Reilly , June 11,2007[html] http://www.sourceforge.net/projects/htmlunit[imac2] "Imacro-manual",© 2001 - 2006 iOpus SoftwareGmbH