Artificial Intelligence in Software Testing

Slides:



Advertisements
Similar presentations
1.Data categorization 2.Information 3.Knowledge 4.Wisdom 5.Social understanding Which of the following requires a firm to expend resources to organize.
Advertisements

Web Applications Development Using Coldbox Platform Eddie Johnston.
Marakas: Decision Support Systems, 2nd Edition © 2003, Prentice-Hall Chapter Chapter 7: Expert Systems and Artificial Intelligence Decision Support.
Chapter 12: Intelligent Systems in Business
Russell Taylor Lecturer in Computing & Business Studies.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
31 st October, 2012 CSE-435 Tashwin Kaur Khurana.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
11 C H A P T E R Artificial Intelligence and Expert Systems.
EMI INFSO-RI SA2 - Quality Assurance Alberto Aimar (CERN) SA2 Leader EMI First EC Review 22 June 2011, Brussels.
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
IT Job Roles & Responsibilities Shannon Ciriaco Unit 2:
I Robot.
TM Copyright © 2009 NMQA Ltd. Behaviour Driven Testing with.
 System Requirement Specification and System Planning.
Decision Support and Business Intelligence Systems (9 th Ed., Prentice Hall) Chapter 12: Artificial Intelligence and Expert Systems.
Snip2Code: Search, Share and Collect Code Snippets Faster, Easier, Efficiently with Power of Microsoft Azure Platform MICROSOFT AZURE ISV PROFILE: SNIP2CODE.
Genie Pal A Versatile Intelligent Assistant To Help Both Work And Personal life.
Planning Engagement Kickoff
M&CML: A Monitoring & Control Specification Modeling Language
Advanced Higher Computing Science
Overview of E-Learning Authoring Software
Software Engineering “Practical Approach”
Appium Studio Appium testing made easy at any scale.
IT Service Transition – purpose and processes
Presenters: Wei-Chih Hsu Professor: Ming-Puu Chen Date: 12/18/2007
Effective Performance Testing in Agile and DevOps
Data Collection with Forms For Special Education
Office 365 FastTrack Planning Engagement Kickoff
Digital Transformation Services
Fundamentals of Information Systems, Sixth Edition
Infrastructure Orchestration to Optimize Testing
CHAPTER 1 Introduction BIC 3337 EXPERT SYSTEM.
Introduction Characteristics Advantages Limitations
Cisco Data Virtualization
Data Virtualization Tutorial… CORS and CIS
Parrot Solutions Pte. Ltd
Objectives State the reasons for the complexity involved in the development of software Define the following terms Objects Classes Messages Methods Explain.
CS101 Introduction to Computing Lecture 19 Programming Languages
Manual testing of Windows Metro style apps built using HTML
DEFECT PREDICTION : USING MACHINE LEARNING
SKILL ASSESSMENT OF SOFTWARE TESTERS Case Study
Major themes Abstraction Design tradeoffs Recursion Leverage existing components without understanding details Create components that can be.
Best Optimal time to commute? Google maps Predictive Analysis.
Effective way to build test Automation strategy in Agile
Galen - Automated testing of look and feel
AI emerging trend in QA Sanjeev Kumar Jha, Senior Consultant
A solution for automating desktop applications with Java skill set
Effective Automation project development using Eclipse Che
Quality Strategies In AGILE
How to Learn Your Client
Advantages OF BDD Testing
Developing Applications
ARTIFICIAL INTELLIGENCE.
Continuous Automated Chatbot Testing
Teaching slides Chapter 1.
MANAGING KNOWLEDGE FOR THE DIGITAL FIRM
ARTIFICIAL INTELLIGENCE IN SOFTWARE TESTING
Course Instructor: knza ch
Seamless E2E Automation on Interdependent Systems
FOUNDATIONAL CONCEPTS
Transforming Automation through Artificial Intelligence
Model Based Testing Venkata Ramana Bandari, Expert Software Engineer
Automated Testing and Integration with CI Tool
What-If Testing Framework
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Teaching slides Chapter 6.
Agile testing for web API with Postman
OU BATTLECARD: Oracle Utilities Learning Subscription
Presentation transcript:

Artificial Intelligence in Software Testing Pradeepa Lingarajashetty - Senior Software Engineer - Testing Arpan Bandyopadhyay - Software Engineer – Testing Pratap Mysore Narasimharaju – Test Automation Architect CenturyLink India Private Ltd.

Abstract Artificial intelligence (AI), defined as intelligence exhibited by machines and  is creeping into our everyday lives through technology. It might seem like the realm of science fiction, but we are already using it like in online customer support, virtual personal assistants, video games, smart cars etc.., Today AI has several applications and let us see if AI can be adapted in software test automation. Software test automation, is the act of conducting specific tests via automation as opposed to conducting them manually. Test scripts are developed in a tool-specific language, which non-technical users and business stakeholders do not understand. This paper mainly focuses on embedding Artificial intelligence concepts like problem solving capabilities by implementing find the flow in IntelliJ, proactive code quality check by having SonarLint and speech recognition by building a capability to trigger the scripts through speech in software test automation for an effective non technical stakeholders engagement.

Artificial Intelligence Artificial Intelligence is a way of making a computer, a computer-controlled robot, or a software think intelligently, in the similar manner the intelligent humans think. The goal of the Artificial intelligence is to create expert systems which exhibit intelligent behavior, learn, demonstrate and show problem solving capabilities. Artificial Intelligence is dominant in various fields and they are referred as applications of AI which are listed below, Speech recognition Learning Planning Problem solving Expert System – a Knowledge Engineer

Software Test Automation and Different levels of Testing Software test automation is the act of conducting specific tests via automation as opposed to conducting them manually. There are four main stages of testing that need to be completed before a program can be cleared for use. While automated test cases can be made use in all the level of test phases, acceptance testing pose a technical challenge, as the stakeholders involved in this phase are non-technical.

Speech triggers script Applications of Artificial Intelligence and Software test automation Speech triggers script Speech Recognition AI Expert System SonarLint Problem Solving IntelliJ

Expert System and SonarLint An expert system (ES) is a knowledge-based system that employs knowledge about its application domain and uses an inferencing (reason) procedure to solve problems that would otherwise require human competence or expertise. SonarLint is an IDE plugin that acts as a expert system which does proactive code quality checks and it provides on-the-fly feedback to developers/testers on new bugs and quality issues injected into Java, JavaScript, Python and PHP code. It supports several IDEs and languages like below, IDE Languages Visual Studio 2015 and Up C#, VB.NET, JavaScript Visual Studio Code JavaScript, PHP, Python Eclipse Java, JavaScript, PHP IntelliJ IDEA

Functionality of SonarLint Once SonarLint is installed in the IDE, it can triggered by clicking on analyse option on a Java code. Here we have taken Java example and the IDE used is Eclipse. SonarLint scans code for bugs, vulnerabilities and quality issues and reports to the user as shown below, so user can take appropriate action. Below is the sample report of Sonar Lint,

SonarLint Report Interpretation and Benefits It indicates a minor warning It indicates a major warning It indicates a critical warning It indicates a blocker Benefits Provides Immediate feedback and solutions Improves code maintainability Code Duplication Naming conventions Complexity Improves security

Problem Solving Capabilities and IntelliJ In the part of artificial intelligence that deals with problem solving, encompasses a number of techniques known as algorithms, heuristics, root cause analysis, etc. once of the best of way doing the root cause analysis is by modeling the problem itself. May be by having a flow of events in a process to narrow down to the issue. Similarly in software testing, it is important to know the flow of events when running automated scripts, especially for novice user. having an automated flow building tool helps the user to understand the different attributes involved in the flow and the failure part for debugging purpose. This can be achieved by having flow plug in intelliJ. It has below advantages, Run application with flow Record executions Visualize the flow

Find the Flow with intelliJ We can have a simple java project with flow plug-in installed in intelliJ to understand how it works. Below is the structure of Java project, Clicking on ‘Run with flow’ ( )option to trigger the run which gives an URL to visualize the flow after successful test run.

Visualize the test flow The test flow can be visualized by using the URL in the test results. The flow gives information at different levels like package, class and methods. User can explore each of it to get more details.

Speech Recognition and Triggering Automation Script through speech Speech recognition means understanding voice by the computer and performing any required task. It is the inter-disciplinary sub-field of computational linguistics that develops methodologies and technologies that enables the recognition and translation of spoken language into text by computers. The same concept can be applied in software test automation, where user who wants to execute scripts can trigger through voice commands. It has below benefits, Business user would become a new stakeholder and acceptance testing can be effectively conducted. For any other user, it demands zero set ups in the system to execute scripts. It can be effectively used in unit/functional/intersystem/end to end testing

Implementation The idea is to have a dedicated mail box to monitor automation requests. Microsoft provides exchange web services APIs, which can be used to interact with the mailbox. User or whoever wants to execute scripts, has to send an email in predefined format to a mail box which triggers the script. We can use readEmails() and sendEmails() methods for interaction with the user.

Implementation Continued… After collecting the call in number from the user, we provide options to the user to choose what needs to be executed. This can be done using JTAPIs. Further interaction collects required details to execute scripts of the application. We use the same mail box to respond test results to the user. Below the flow for better understanding.

Conclusion In this Paper we proposed an idea of embedding Artificial Intelligence in software test automation, there by helping a novice automation tester to incorporate effective coding standards, security methods by using an expert system called SonarLint. Our focus was also more towards engaging non-stakeholders and business users with software test automation, to help out their day to day activities. By adapting flow plug in and speech recognition approached, job of these stake holders made very much easy. In addition to acceptance testing, Triggering scripts through speech has several benefits in end to end testing of a scenario which spans over multiple applications there by increasing the stakeholder base.

References & Appendix https://www.techopedia.com/definition/190/artificial-intelligence-ai https://www.tutorialspoint.com/artificial_intelligence/artificial_intelligence_research_areas.htm http://www.sonarlint.org/eclipse/ http://findtheflow.io/docs/doc_intellij.html#_how_to_run_an_application_with_flow_from_intellij http://www.oracle.com/technetwork/java/jtapi-136088.html#

Author1 Biography Author2 Biography Co-Author Biography Pradeep is a senior software engineer with CenturyLink India Private Ltd. He has an affinity towards the Analytical and problem solving skill and believes in continuous practice, improvement in process, learning emerging testing concepts. challenges of non technical stakeholders and business users in engaging themselves in software test automation lead him to come up with this paper. Author2 Biography Arpan is an enthusiastic Software Engineer-Testing who believes in providing comprehensive software testing solutions that could help in overall quality assurance. Working in an agile environment and having experience of 3 yrs. Interested in learning emerging concepts in testing. Co-Author Biography Pratap Mysore Narasimha Raju working in CenturyLink in the capacity of Test Automation Architect and handling a team of 15 members. A forward thinking, innovative, capable and committed test Project lead with a proven ability to build self sustaining high skill eco system, co-ordinate and work to define testing methodologies within a structured environment. Has been following and participating in STC since 2010.

Thank You!