تست در دنیای تحویل پیوستهی DevOps
آنچه که در مورد آن بحث خواهد شد:
آیا نیازی به تغییر روشهای تست سنتی میباشد؟
DevOps چیست؟ آیا متفاوت با روش چابک میباشد؟
چگونه به سازمان کمک میکند؟
تاثیر بر روی تست در یک سناریوی DevOps
افراد
فرایند
نظارت
تکنولوژی
روش تست سنتی در راستای تحویل متوالی (sequential delivery) تجهیز شده است
این امر منجر به یک ساختار سازماندهی مجزا می شود
که خود چالشهای ارتباطی را به همراه می آورد. همچنین منجر به تمرکز برروی مجموعه مهارتهای مجزا میشود که باعث به حداقل رساندن عملکردهای چند وظیفهای میگردد.
نتیجه آن، پیامدهای ناخواسته می باشد.
روش تحویل متوالی منجر به زمان تحویل بیشتر و ریسک بالاتر میشود
امروزه کسی و کار چه می خواهد؟
چگونه میتوان این کار را انجام داد؟
چابک-مسیر تحویل پیوسته
مسئله مایل آخر (مدت زمان طولانی میان تست و استقرار) هنوز وجود دارد
مدت زمان طولانیِ میان تست و استقرار
آزمونگرها هنوز مجموعه مهارتهای مدیر سیستم را ندارند
سرعت تحویلِ بیشتر، به سردرگمی میافزاید
DevOps قصد دارد راهحلی برای این چالش یکپارچهسازی باشد
آیا DevOps متفاوت با چابک میباشد؟
"بالاترین اولویت ما این است که مشتری را از طریق تحویل پیوسته و سریع نرمافزار ارزشمند خشنود سازیم"
در حال حاضر چه کسی این کار را انجام میدهد؟
شرکتهای وب 2.0 که وابستگی شدیدی به تجارت الکترونیک دارند، پیشگامان انجام این کار هستند.
تغییرات سریع، اجباری است-یکپارچهسازی بهتر منجر به زمان پاسخ بهتر میشود. یعنی DevOps.
تاثیر برروی تست
تغییر به محیط DevOps باید به صورت تدریجی باشد چراکه چندین نقطه را تحت تاثیر قرار میدهد.
تاثیر برروی تست-افراد
تمرکز برروی مدیریت دانش
دسترسی به اطلاعات برای افزایش قابلیت استفاده مجدد
آزمونگرها نیاز به یادگیری زبانهای تولید دارند-ظهور ابزارهای کاربر پسند مانند پایتون و کیوکامبر
آزمونگرها نیاز به یادگیری فرایند استقرار و ابزارها دارند
آموزش توسعهدهندگان و مدیر سیستم در زمینه فرایندها، روشهای طراحی و ابزارهای تست
افزایش وابستگی به توسعهدهندگان برای تست shift-left
تاثیر برروی تست-فرآیند
یکپارچهسازی پیوسته اجباری میشود
توسعه مبتنی بر تست
مخزن منفرد سورس کد
خودکارسازی فرایند ساخت
ساخت سریع- رسیدن به بهترین زمان انتشار
شفافیت - همه باید بدانند که چه اتفاقی میافتد
تمرکز زیاد برروی روشهای خودکارسازی جدید که در مراحل اولیه چرخه حیات تعبیه شده است
"تست هوشمند" حد مرزی تست های یکپارچهسازی و سیستم در روش تست سنتی را از بین میبرد
توانایی ترکیب بهینه خودکارسازی در سراسر چرخه حیات
نیاز به "صنعتیسازی"- تمرکز برروی آمادهسازی برنامه کاربردی به صورت کاربردی و عملیاتی
تاثیر برروی تست-نظارت
تیم ها به بهترین نحو با هم کار میکنند
تغییرات افزایشی صورت گرفته توسط کسب و کار-واسط پیوسته و دِموها
تمرکز بر روی مهارتهای اصلی
نیاز بیشتر به متخصصان – آنها بر روی فعالیت های چالش برانگیز تمرکز میکنند
شناسایی وظایف تکراری – خودکارسازی شده و اجرا شده
ممکن است در سازمانهای بزرگ کار نکند
تاثیر برروی تست-تکنولوژی
نیاز به ابزارهای کاربرپسند که میتواند توسط توسعهدهندگان، آزمونگرها و مدیر سیستم مورد استفاده قرار گیرد
تمرکز بیشتر برروی خودکارسازی و قابلیت استفاده مجدد
آگاهی از هزینه یا تمایل به داشتن دانش فنی!
و مهمتر از همه اینکه گفتگو و مذاکره نباید فراموش شود.
خلاصه
رویکردهای تست سنتی به واسطه جدول زمانی تحویل طولانی محدود میشوند.
روش چابک بهتر عمل میکند، اما با چالشهایی در "مایل آخر (مدت زمان طولانی میان تست و استقرار)" مواجه میشود
DevOps یک روش یکپارچه برای تحویل ارائه میکند
روی یکپارچهسازی پیوسته و تحویل پیوسته تمرکز دارد
نیاز به خودکارسازی و قابلیت استفاده مجدد گسترده دارد
تیمها هر نوع کاری انجام میدهند اما به متخصصان بیشتری نیاز است
انتقال به DevOps با ظهور نسل جدیدی از ابزارهای کاربر پسند تسهیل میگردد
برقراری ارتباط موثر و مدیریت تغییر که برای یک سازمان، شروع این سفر حیاتی است
شرکت مهندس پیشگان آزمون افزار یاس، خدمات زیر را در حوزه تست چابک و DevOps ارائه می دهد:
ارائه مشاوره در حوزه تست چابک و DevOps
تهیه و آموزش ابزارهای تست چابک و DevOps
ارائه راهکارهای مبتنی بر DevOps برای بهبود کیفیت نرم افزار
نویسنده : شرکت مهندس پیشگان آزمون افزار یاس
مراجع
[1] “Testing in the DevOps World of Continuous Delivery”, Manoj Narayanan, 2012
[2] “Leading the Transformation: Applying Agile and DevOps Principles at Scale”, Gruver, Gary; Mouser, Tommy , 2015
[3] “DevOps- Not a Market, but a Tool-Centric Philosophy That Supports a Continuous Delivery Value Chain”, Laurie F. Wurster, Ronni J. Colville, Jim Duggan , 2015
[4] “Practices for DevOps and Continuous Delivery”, Ben Linders, 2015
[5] “Reducing wasted development time via continuous testing. 14th International Symposium on Software Reliability Engineering”, Saff, D.; Ernst, M.D. , 2003
[6] “ Testing in a Continuous Delivery World”, Rob Marvin, 2003