تست بهتر به معنای نرم افزار بهتر است. استفاده از NLP، تولید داده های آزمایشی و آزمایش بهینه شده می تواند به سرعت برنامه ها را بهبود بخشد.
فقط ۱۰ سال پیش، بیشتر استراتژیهای آزمایش توسعه برنامه بر روی آزمایش واحد برای اعتبارسنجی منطق تجاری، موارد آزمایش دستی برای تأیید تجربیات کاربر، و اسکریپتهای آزمایش بار جداگانه برای تأیید عملکرد و مقیاسپذیری تمرکز داشتند. توسعه و انتشار ویژگیها در مقایسه با قابلیتهای توسعه امروزی که بر روی زیرساختهای ابری، معماریهای میکروسرویس، اتوماسیونهای یکپارچهسازی و تحویل مداوم (CI/CD) و قابلیتهای آزمایش مداوم ساخته شدهاند، نسبتاً کند بود.
بهعلاوه، امروزه بسیاری از برنامهها با پیکربندی نرمافزار بهعنوان یک سرویس (SaaS) یا ساختن برنامههای کمکد و بدون کد توسعه مییابند که همچنین نیازمند آزمایش جریانها و فرآیندهای تجاری اساسی هستند.
>
هدف
تیمهای توسعه چابک در سازمانهای توسعهدهنده کاهش زمان چرخه ویژگیها، افزایش فرکانسهای تحویل و تضمین تجربههای کاربری با کیفیت بالا است. سوال این است که چگونه میتوانند خطرات و تست تغییر به چپ را بدون ایجاد پیچیدگیهای آزمایشی جدید، گلوگاههای استقرار، شکافهای امنیتی یا افزایش قابل توجه هزینه کاهش دهند؟
Esko Hannula، مدیر خط تولید در Copado، در مورد خرید اخیر Qentinel و چالشهای آزمایشی با من صحبت کرد. سازمان ها را توسعه می دهد. او معتقد است یادگیری ماشینی کلیدی برای مدیریت افزایش حجم تست است. «کیفیت تجارت دیجیتال کیفیت کد و آزمایشی است که آن را اجرا می کند. هرچه کد بیشتری برای تست وجود داشته باشد، ازدواج یادگیری ماشین با اتوماسیون تست اهمیت بیشتری پیدا می کند. افراد QA و هوش ماشینی میتوانند از یکدیگر در تصمیمگیری عاقلانه بر اساس دادهها حمایت کنند و نه یک احساس واقعی.»
من اخیراً در مورد استفاده از مجازیسازی سرویس برای توسعه تستهای سرویس وب قویتر هنگام ساخت میکروسرویسها یا واسط با بسیاری از APIهای شخص ثالث نوشتم. سپس یک قدم فراتر رفتم و قابلیتهای آزمایشی مبتنی بر دادهها، تجزیه و تحلیل و یادگیری ماشینی را بررسی کردم که تیمهای توسعه و مهندسین اتوماسیون تست QA میتوانند از آن برای توسعه و پشتیبانی از تست قویتر استفاده کنند.
این قابلیتها در حال ظهور هستند، با برخی از پلتفرمهای آزمایشی که امروزه عملکرد قوی ارائه میکنند در حالی که برخی دیگر در مراحل اولیه پذیرش هستند. تیم های توسعه باید برای این عملکردهای آزمایشی تحقیق و برنامه ریزی کنند زیرا همه آنها به قابلیت های اصلی تبدیل می شوند.
تولید تست با استفاده از پردازش زبان طبیعی
کیفیت تست در دهه گذشته به طور قابل توجهی بهبود یافته است زیرا پلتفرمهای QA مدل شی سند صفحه وب (DOM) را تجزیه و تحلیل میکنند، از دید رایانه برای تشخیص تغییرات رابط کاربر استفاده میکنند و از تشخیص نویسه نوری برای استخراج عناصر متنی استفاده میکنند. اما آزمایشهای در حال توسعه اغلب به مهندسان آزمایش نیاز دارد که روی رابطهای کاربر به صورت دستی کلیک کنند، دادهها را در فرمها وارد کنند، و در حالی که پلتفرمهای QA پرونده آزمایشی را ضبط میکنند، گردشهای کاری را هدایت کنند.
یک رویکرد نوظهور استفاده از پردازش زبان طبیعی (NLP) برای مستندسازی موارد آزمایش است. Sauce Labs اخیراً AutonomIQ را خریداری کرده است. ابزاری که به کاربران امکان میدهد مراحل تست را به زبان طبیعی توصیف کنند و سپس نرمافزار آنها به طور خودکار موارد آزمایش را ایجاد میکند.
جان کلی، مدیر ارشد فناوری Sauce Labs، توضیح میدهد که چرا این قابلیت مهم است زیرا سازمانهای بیشتری سفارشیسازی مدیریت ارتباط با مشتری، گردشهای کاری مدیریت فرآیند کسبوکار، و برنامه های کم کد. او این تجربه را از دیدگاه کسبوکار توصیف میکند: «من فرآیندهای کسبوکار داخلی دارم که کارشناسان موضوعی میتوانند آنها را به زبان طبیعی توصیف کنند، که یادگیری ماشینی NLP میتواند آنها را به موارد آزمایشی تبدیل کند که میتواند هر چند وقت یکبار اجرا شود. سپس می توانم به حسابرسان خارجی نشان دهم که کنترل ها به درستی دنبال می شوند. بنابراین، یک رویکرد بدون کد برای ایجاد موارد آزمایشی، روشی نوظهور برای مستندسازی و تأیید فرآیندهای تجاری است.”
تستها در حال گسترش با تولید دادههای آزمایش مصنوعی
وقتی مهندسان QA موارد آزمایشی را ضبط کردند، وظیفه بعدی تولید دادههای آزمایشی کافی برای تأیید قوانین اساسی تجاری و شرایط مرزی است. تولید دادههای آزمایشی میتواند بهویژه برای تجربههای باز مانند موتورهای جستجو، فرمهای پیچیده چند رشتهای، آپلود اسناد، و آزمایش با اطلاعات قابل شناسایی شخصی یا سایر دادههای حساس چالشبرانگیز باشد.
ابزارهای نرمافزار کنجکاوی، Datprof، Delphix، GenRocket، تورانا (iCEDQ)، K2View و سایرین قابلیتهای اتوماسیون دادههای آزمایشی را برای برنامههای مختلف و جریانهای داده، از جمله آزمایش عملکردی، تست API، dataops، دریاچه های داده، و هوش تجاری.
بهینه سازی روش های آزمایش مداوم
چندین پلتفرم به دنبال کمک به تیمهای توسعه چابک و مهندسین اتوماسیون QA هستند تا روشهای آزمایشی خود را بهینه کنند.
تجزیه و تحلیل شکست به تیمهای توسعه کمک میکند تا در صورت شکست آزمایشها در مورد علل ریشه تحقیق کنند. کلی این چالش را توضیح می دهد: “شما هزاران آزمایش سلنیوم دارید، همه آنها را اجرا می کنید و ۳۰۰ شکست می گیرید. تیم نمیداند که آیا API خراب است یا چیز دیگری و آیا مشکل در تولید اتفاق میافتد، دانستن اینکه محیط آزمایش به طور کامل آن را منعکس نمیکند. آنها به دلایل اصلی شکست تست ها علاقه مند هستند. مدلهای ما تستهای ناموفق را همگروهی میکنند و گزارش میدهند که کدام تستها به همان مشکل مرتبط هستند.”
چالش دیگر بهینه سازی مجموعه آزمایشی و تعیین اینکه کدام آزمایش بر اساس تغییرات کد نسخه اجرا شود است. تیمهای آزمایش میتوانند به صورت اکتشافی یک «تست دود»، یک تست رگرسیون در اطراف عملکردها و جریانهای ضروری برنامه طراحی کنند. اما برای تیمهای توسعهدهنده که آزمایشهای مداوم را اجرا میکنند، فرصتی وجود دارد که دادهها را بین آزمایشها، تغییرات کد و سیستمهای تولید به هم متصل کرده و از یادگیری ماشین برای انتخاب آزمایشهایی که باید اجرا شوند، استفاده کنند. بهینهسازی تستها در یک ساخت، یک قابلیت بسیار مورد نیاز برای تیمهای توسعهدهنده است که اغلب کد را در برنامههای کاربردی حیاتی منتشر میکنند.
یکی از راهحلهایی که این چالش را هدف قرار میدهد YourBase است که یک نمودار وابستگی ایجاد میکند که موارد آزمایشی را با مسیرهای کد آنها وقتی توسعهدهندگان کد را تغییر میدهند، ابزار از نمودار وابستگی برای بهینهسازی موارد آزمایشی استفاده میکند. ایو جونکیرا، مدیرعامل YourBase، به من گفت: «ما شرکتهایی را میبینیم که دهها یا حتی صدها هزار آزمایش دارند. آنها میخواهند زمان هدایت خود را برای دریافت کد به تولید و بهبود بهرهوری توسعهدهنده بهبود بخشند. این تیمها باید تصمیمهای هوشمندانهای در مورد اینکه کدام آزمونها برای تغییراتشان واقعاً ضروری هستند، بگیرند و میخواهند درک بهتری از شکستهای آزمایشی داشته باشند.”
رویکرد سوم خارج از محیط آزمایش عمل میکند و به مهندسان دستگاه و توسعهدهندگان نرمافزار کمک میکند تا خطاهای تولید، استثناها و رویدادهای مهم را ردیابی کنند. Backtrace این قابلیت را فراهم میکند. تیمهای توسعه از گزارشدهی خطای انبوه و تجزیه و تحلیل حذف تکراری آن برای یافتن و حل سریع مشکلات در بازی، تلفن همراه یا سایر برنامههای تعبیهشده استفاده میکنند.
نکته کلیدی برای سازمانهای توسعهدهنده این است که تشخیص داده شود که انتشار مکرر در برنامههای کاربردی حیاتیتر به تلاشی موازی برای افزایش اتوماسیون، استحکام و هوشمندی در آزمایش نیاز دارد. پلتفرمهای AIops به تیمهای مدیریت خدمات فناوری اطلاعات کمک میکنند تا از میکروسرویسها و مجتمعها پشتیبانی کنند. وابستگی برنامه ها با متمرکز کردن داده های عملیاتی و فعال کردن قابلیت های یادگیری ماشین. به روشی مشابه، پلتفرمهای QA قصد دارند برای تیمهای توسعه چابک قابلیتهای اتوماسیون، تجزیه و تحلیل، NLP و یادگیری ماشینی را برای بهبود تست فراهم کنند.
پست های مرتبط
۳ روش برای استفاده از داده، تجزیه و تحلیل و یادگیری ماشین در اتوماسیون تست
۳ روش برای استفاده از داده، تجزیه و تحلیل و یادگیری ماشین در اتوماسیون تست
۳ روش برای استفاده از داده، تجزیه و تحلیل و یادگیری ماشین در اتوماسیون تست