چکیده :

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

کلمات کلیدی :تست خودکار، روش چابک((Agile، اسکرام (Scrum) ، الگوی توسعه نرم افزار، ابزار تست.

۱٫ مقدمه

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

هزینه است و تست کردن کامل عملا امکان پذیر نیست. بسیاری از سازمان های نرم افزاری حداکثر ۴۰ درصد منابع خود را صرف تست کردن می کنند. بنابراین راه دیگری را باید برای کاهش کار تست کردن بدون تاثیر بر روی سطح کیفیت نرم افزار نهایی در نظر گرفت.در اینجا، تست خودکار نرم افزار می تواند فعالیت های تست کردن را حفظ کند و متدولوژی چابک مربوط به توسعه نرم افزار می تواند برنامه کاربردی توسعه یافته نسبی را در زمان کمتری ایجاد کند. تست خودکار یک چارچوب نرم افزاری است که به تست محصول نرم افزار کمک می کند. جنبه های مختلفی از تست کردن ماننند تست عملکردی و غیر عملکردی نرم افزار ، تست واحد و غیره وجود دارد. یک نیازمندی ۱۰۰ درصد از ویژگی ها برای تست کردن می تواند وجود داشته باشد و حتی اگر درصد کمی از کد تغییر پیدا کند. به همین دلیل تست دستی نمی تواند ادامه داشته باشد. مگر اینکه منابع تست کردن و زمان چرخه افزایش یابد.اصلاح نقص ها منجر به یک حرکت مارپیچی تست کردن و تست مجدد می شود که تحویل محصول را به تاخیر می اندازد. خودکار سازی می تواند به این مسئله کمک کند به این صورت که امکان جمع آوری موارد تست کردن را در طول عمر برنامه کاربردی برایتان فراهم می کند به همین خاطر هر دو ویژگی های موجود و جدید را می توان همواره تست کرد. برخی از نیازمندی های اساسی در مورد توسعه تست خودکار نرم افزار عبارتند از :

الف) تعداد بیشتر تولید کنندگان(توسعه دهندگان) در مرحله اولیه ؛

ب) اعضای بسیار ماهر تیم ؛

ج) غیر قابل استفاده برای تست کد باقی مانده ؛

د) قابل استفاده تنها برای تست واحد (Unit Testing) ؛

روش های چابک بر روی جنبه های مختلف چرخه عمر توسعه نرم افزار مانند فعالیتها یا مدیریت پروژه های نرم افزاری متمرکز می شوند.در این مقاله، بخش مدیریت در نظر گرفته خواهد شد. همانطور که برای اسکرام در نظر گرفته می شود فرآیندهای چابک معمولا فرآیند مدیریتی منضبط و کار تیمی را بهبود و ارتقا می دهند که به بازرسی متداول و تطبیق کمک می کند تا سازمان ها بتوانند محصول نرم افزار را مدیریت کنند، محصولی که نیازمندی هایش غالبا تغییر می کند. اسکرام بطور چشم گیری بهره وری را افزایش و زمان را نسبت به مزایای مربوط به فرآیندهای کلاسیک کاهش می دهد.۱۲ اصل وجود دارد که متدولوژی چابک به آنها متکی است.برخی ازقسمت های مهم آن عبارتنداز: مشتری به عنوان یک اولویت، تطبیق تغییر نیازمندی در هر مرحله، تحویل معمولی نرم افزار در حال اجرا، تجارت و توسعه اعضای تیم که با هم کار می کنند، کار برای زمان مشخصی تعیین می شود.