به عنوان یک فناوری نسبتا جدید و در حال رشد، تعریف “هوش مصنوعی”(AI) نیز به طور مداوم در حال تکامل است.
در حالی که تحلیلگران و متخصصان مختلف در سراسر جهان تفسیرهای خود را در این رابطه مطرح میکنند، تعریف عمومی هوش مصنوعی این است که هوش مصنوعی با از استفاده از دادهها، و تواناییهای شبه انسانی برای درک محیطها و زمینههای مختلف، قادر به یادگیریست.
اگر چه هوش مصنوعی در حال حاضر در بخشهای مختلف از تحلیل حالات چهره تا پردازش زبان طبیعی(Natural Language) استفاده میشود، اما باید گفت که AI در خلال سالهای اخیر به چیزی بیشتر از “شعار” تبدیل شده است. یکی از نگرانیهایی که این روزها عمومیت یافته، این است که روباتها برای انجام کارها جای ما را بگیرند، و این موضوع بویژه در صنایعی که کارهای دستی و تکرارپذیر جز اصلیترین مولفههای آنهاست، پررنگتر است.
علیرغم وجود نگرانی در این زمینه، مهندسان نرمافزار و تست همواره تمایل داشتهاند همه چیز را خودکارسازی نموده و از مزایای واقعی این تکنولوژی بهرهمند شوند.
بنابراین، Businessها چگونه میتوانند توانایی هوش مصنوعی را در تست نرمافزار استفاده کنند، و سوال مهمتر اینکه در چنین شرایطی جایگاه انسان در این فرآیند کجاست؟
“تست هوشمندانهتر، نه سخت تر” برای مقابله با چالشها
در دنیای نرمافزار، فاز تست یک پروسه مهم است. با این حال، انجام تست مناسب در بسیاری از اوقات سخت، وقتگیر و گران است، و البته مساله نگهداشت هم یکی از بزرگترین هزینههای پنهان در تست محسوب میشود. اما در این میان، این اتوماسیون تست است که به غلبه بر این مساله کمک کرده و تسترها را قادر میسازد تا بهترین کار خود را انجام داده و به لطف پیشرفتهای امروز در فنآوری، اکنون این امکان وجود دارد که در بیشتر موارد، بخش طراحی تست(Test Design) و اعتبارسنجی(Validation) را به هوش مصنوعی بسپارید.
یک رویکرد در هوش مصنوعی بررسی در پیشرفت کیفیت چیزهاییست که که اگر بخواهیم به صورت دستی انجام دهیم، چیزی جز سردرد برای ما نخواهند داشت. با ترکیب یادگیری ماشین(ورودی و خروجی) و علم تجزیه و تحلیل یا Analytics(رفتار) برای تسهیل تصمیمگیری، شما توانایی گشودن الگوها در این دادهها، راهاندازی کردن اتوماسیون و همچنین بهبود بهرهوری در تست را خواذهید یافت.
استفاده از هوش مصنوعی در QA
با کمک هوش مصنوعی، تیمهای QA میتوانند سیستمها را از طریق Log Fileهای مربوط به اپلیکیشن آموزش داده و نقاط مهم را شناسایی نمایند. بعلاوه پیادهسازی این تکنولوژی در تست نرمافزار به بهبود Test Planning و Test Coverage سیستم کمک میکند.
قسمتهای دیگری که میتوان هوش مصنوعی را در تست نرمافزار استفاده کرد، عبارتند از شناسایی الگوی رفتاری در تست اپلیکیشن، تحلیل دادهها از رسانههای اجتماعی، تحلیل نقص(Defect Analysis)، تحلیل بهرهوری و برآورد، Non-Functional Analytic و برنامههای تست آموزش ماشین برای تولید دادههای تست.
در حالی که هنوز علائم سوال زیادی در استفاده از هوش مصنوعی در اپلیکیشنهای گستردهتر وجود دارد، اما این تکنولوژی میتواند در صنعت تست نرمافزار، فرآیندهای دستی و وقتگیر را اتومات کرده و به منظور توانمندسازی تسترها برای تمرکز بر آنچه بهتر انجام میدهند(و در نتیجه نرمافزار بهتر)، فعالیتها را برای صرفه جویی در وقت، پول و منابع خودکار کند.