SSRN Id3633525

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

International Journal of Technical Research and Applications e-ISSN: 2320-8163,

www.ijtra.com Volume 6, Issue 4 (JULY-AUGUST 2018), PP. 34-36

THE ROLE OF AI IN SOFTWARE ENGINEERING


AND TESTING
Vaibhav Narayan
Department of Computer Science and Engineering,
MU, Mumbai, India

Abstract— Artificial Intelligence has major impact on the implementations. There are a lot of applications of AI
evolving technology of the world and now it is an option to techniques in software engineering that changed the ways of
transform the software engineering system into intelligence smart thinking of new world. AI can aid in achieving ever hard and
software. Software development through Artificial Intelligence is inflexible schedules for information technology and software
the hallmark of this era and it is going to shape the future of
engineering projects. Companies that established software
technology with more business opportunities and now more than
80% companies are working on Artificial Intelligence and those applications do so in an environment attributed by increased
who already have it are redefining their strategies. There is more pressure, limited resources to reduce cost and development
investment in this particular field because the cumulative role of schedules. It is a challenge to fulfill the demands of software
both software engineering and artificial Intelligence would bring applications [2]. One way to achieve this is to use software
major and unexpected changes in the world within no time. Not development tools operating automatically from the initial
only software development setup would be improved but it will stage of software design up to the software installation after
also have positive effects on automated testing software and agile testing. Taking in account software testing as a template,
test automation. This paper also focuses on the approaches of automated software systems can aid in most software testing
software engineering process along with the application of
stages.
Artificial Intelligence in improving the software quality systems
and reduction of time in the market. This paper also drives some On the hand data availability, privacy, security and integrity are
tasks and activities specified in standardizing the software very important problems and emerging issues in the success of
engineering process. The paper will also discuss the AI techniques a business operation. Data privacy and security policies in
needed by software engineer to highlight the open research issues business are controlled government regularities and business
specifically for the research community. requirements. AI can also assist in software reliability, security
and privacy. Implementing data privacy and security using data
Index Terms—Software Engineering and Testing, Intelligence decoding solutions remain at the top priorities for data security.
Smart Software, Artificial Intelligence. Many solutions to data translation at this level are intensive and
I. INTRODUCTION disruptive. Artificial intelligences also used to classify data. It
can help in identifying and decoding only the appropriate data
Artificial intelligence (AI) is wide-ranging branch of thereby saving processing power and time. Without
computer science that deals with building smart machines which classification of data, organizations using decoding process
are capable of performing smart tasks with assistance of human would simply translate everything and accordingly impact users
intelligence [1]. AI is an interlinked science with multiple more than needs. Data classification is crucial and can help
approaches, but advancements in machine learning and organizations with their data accessibility, security and privacy
comprehensive deep learning are creating a model shift in needs.
virtually every sector of the software industry. Software Software engineering is a comprehensive process, with a huge
engineering is a comprehensive and detailed study of amount of variabilities and uncertainties. During the phase of
engineering technology that deals with design, development and requirements engineering, stakeholders with different points of
maintenance of software. Basically, Software engineering was view should come together and strive to distinctly define goals,
introduced to solve the issues of all low-quality software often using terms that are alien to the other party. The
projects. Most of the problems arise when a software typically technologies that will be used to realize the clarified
exceeds budgets, timelines, and minimized levels of quality. It requirements must be chosen. Change plans must be drawn out,
ensures that the application is built correctly, precisely, on time often for a define time in the future. Deadlines and estimates for
and on low budget and within all requirements. The demand of the delivery of landmark features will be set. Lost time due to
software engineering also come out to serve the immense rate of unforeseen and obstructions delays must be taken into
change in user environment and requirement on which consideration. Continuous communication and feedbacks lines
application is expected to be working ideally. between multiple stakeholders will have to be invented. The
Artificial Intelligence (AI) techniques have been favorably absolute number of unknowns in all of the phases of software
applied in different areas of software engineering same as like development makes it comprehensive and extremely
cloud services [5]. The intricacy of software systems has challenging pledged. The rise of project management processes
restricted the application of AI techniques in many real world

34 | P a g e

Electronic copy available at: https://ssrn.com/abstract=3633525


International Journal of Technical Research and Applications e-ISSN: 2320-8163,
www.ijtra.com Volume 6, Issue 4 (JULY-AUGUST 2018), PP. 34-36

such as nimble has partially assisted for these unknowns, and Bayesian models have been used in order to make more accurate
has assimilated them in the software development process using estimates in a speedier fashion, instead of solely depending on
repeated approaches. the experience of project managers. Another application of these
There are number of examples that describes that how AI is models in the field of requirements engineering is by using them
already being applied in SE, because of the similarities of the to test the quality of requirements specifications [6].
problem sets that artificial intelligence and software engineering
are interacted in both AI and SE deal with complicated real III. TESTING AND DEPLOYMENT
world issues, where a great deal of secretes, ill-defined date and A quiet time-consuming portion of the development process
variables are often the initiating point. Another commonality is goes to testing and verification of the produced software.
the practice of idealization over the course of time. In the field Although techniques such as Test Driven Design (TDD) have
of AI, algorithms and techniques such as neural networks and facilitated this by taking up a test-first approach, integration
probabilistic reasoning are aimed at learning and evolving so testing and testing scenarios where certain resources become
they can modify the output over the course of time. In a very unavailable at unpredictable times are still time-consuming and
similar manner, software architects and the experience of project difficult to define and generate, especially for modern cloud-
managers and developer teams regarding the estimations of based distributed applications [7]. Similar to using AI for code
deadlines, the use of planning patterns, feasible sprint sizes are generation, SBSE can be applied to the generation of
determining factors of the potential accuracy of those evaluate increasingly optimal test cases. AI algorithms can be used to
and the quality of the outcome. take down certain services during certain test scenarios, or
introduce high loads to several parts of the infrastructure to test
II. INFLUENCE ON THE DEVELOPMENT PROCESS the integrity of the architecture. An additional contribution of AI
Several parts of the software development process have been in this regard is the possibility of continuously making small
benefiting significantly from automation of software adjustments to configurations in order to optimize performance.
intelligence. The particular areas that are most affected have
been designed, deployment, quality assurance and testing. IV. USE OF AI TO ASSIST THE PROCESS OF PROGRAMMING
Numerous developments and studies have shown the An expert system must be created in order for software
probabilities of AI being successfully utilized in earlier phases development in order to assist software engineers and this
of the software engineering process as well, such as actual project is called as Programmer’s Apprentice Project and it
developments of software and requirements engineering. By should be capable of replacing human assistants as human
considering a lot of work off the developer’s hands using AI programmers and thus it would increase the human productivity.
techniques, the process of self-automation could be automated This Apprentice would help in most of programming routine
to some extent. Research shows that implementing AI to the parts and with the passage of time as like cloud computing [11];
software development procedure can also sustainably the Apprentice would also be able to deal the complicated tasks.
minimized work as well as threats in various parts of the process.
In that preview, AI presents itself as a vital tool for increasing AREAS WHERE SOFTWARE ENGINEERING - AI TRANSFORM:
quality and efficiency in many stages.
For example, requirements elicitation, architectural A. Software Design
design and code refactoring can be facilitated using several AI Designers need experience and specialized learning when
techniques such as Search Based Software Engineering (SBSE) they have to find alternative solutions in designing and project
[4]. In SBSE, search techniques such as genetic algorithms are planning before presenting any definite solutions for it. For
applied by redefining SE problems as optimization problems. reaching the desired solution, a designer must have visionary
An example of the application of SBSE is the use of genetic solution and should forward the investigating plan. The stage of
algorithms for code generation. The obtained code samples can correct plan choices is mistake prone and tedious for them. So
then be considered as the population, which are then evolved and for that purpose, some of the AI developments would enhance
tested for survivability and optimization. the traditional methods. Just like in AIDA (platform for website
Using natural-language requirements (NLR) documents building) which creates website through AI which help them in
such as user stories and use cases, several attempts have been understanding the desires and needs of users through knowledge
made translate these documents into formal specifications[3]. [7]. They use combinations in millions to create website image,
However, much work is still to be done in this area, and the style and focus for the customized user just in 120 seconds. It
produced result should still only be seen as a guideline, yet to be design the first copy and then from that point, they drop and drag
approved by stakeholders with the relevant domain knowledge. operation.
Estimation in SE is performed to plan deadlines, anticipate B. Software Testing
obstacles, and prepare for changes in architecture, requirements,
There are countless APIs which interact with applications
technologies and the very business domain itself. These
and then they grow in complexity and leverage the legacy
estimates are often made using incomplete and blurry data,
systems every day. The challenges are minimized by machine-
gathered from sources that may not always be as trustworthy as
based intelligence while the tools of AI are used for examining
we would like. In this context, statistical methods such as

35 | P a g e

Electronic copy available at: https://ssrn.com/abstract=3633525


International Journal of Technical Research and Applications e-ISSN: 2320-8163,
www.ijtra.com Volume 6, Issue 4 (JULY-AUGUST 2018), PP. 34-36

the scope and test management, advancement, exploring the from source codes [12]. This application follows the method
information authenticity and creating the test information. called neural sketch learning to train artificial neural network in
Artificial Intelligence ensure that the tests performed are error order to recognize the high-level patterns of Java programs and
free and those are testing are free from repeating the manual tests it does this just be creating each program sketch and then
and thus there is more availability to work on new automated associating it with intent lying behind the program.
software testing. Repeating the tests is not only a time
consuming process but it is also costly. With the automated V. CONCLUSION
testing, we can increase the overall tests scope so as to improve Software Engineering with the assistance of Artificial
the software quality [8]. There is also AI enabled cloud testing Intelligence is now considered as a massive transformation and
facility to test and release faster. The user’s only need to type both have derived such tools which make the software
their plan in English and it will automatically convert to development more reliable and easier. Still the cumulative
functional test case. There are also other tools like SapFix and effects are not as much exposed but in near future, it will
Self-healing tests to fix the specific bugs and then it is approved dominate in every field so engineers are advised to adopt this
by engineers. skill as early as possible because without it, they would be of no
use in coming years.
C. GUI Testing
This is also called as a Graphical User Interface and it is very REFERENCES
important to use when interacting with software of today. Their [1] Harman, M. (2012, June). The role of artificial intelligence in
use is increased critical systems and they are necessary in testing software engineering. In 2012 First International Workshop on
systems to avert failures and with very few techniques and tools, Realizing AI Synergies in Software Engineering (RAISE) (pp. 1-
it is difficult to utilize. One of the most important testing 6). IEEE.
methods of GUI is ad hoc and they require test designers for [2] Raza, F. N. (2009, March). Artificial intelligence techniques in
performing the humongous tasks like identification of test software engineering (AITSE). In International MultiConference
execution conditions and to evaluate the test adequately [9]. AI of Engineers and Computer Scientists (IMECS 2009) (Vol. 1).
is used in one of GUI tester, application tools which are used to [3] Kaiser, G. E., & Feller, P. H. (1986). Intelligent assistance
test the functioning of visual code. It helps the user to take the without artificial intelligence (No. CMU/SEI-86-TM-14).
expected look of their application and how it looks like in CARNEGIE-MELLON UNIV PITTSBURGH PA SOFTWARE
multiple screen layouts if they are fitting in the design or not. ENGINEERING INST.
[4] Barstow, D. (1988). Artificial intelligence and software
D. Strategic Decision making engineering. In Exploring artificial intelligence (pp. 641-670).
The featuring is very important when developing a product Morgan Kaufmann.
and it is a very long process for developers but now AI solution [5] Tadapaneni, N. R. (2017). Different Types of Cloud Service
based on machine learning can analyze the existing performance Models. Available at SSRN 3614630.
applications to help both business stakeholders and engineers to [6] Jackson, P. C. (2019). Introduction to artificial intelligence.
find out the solution and cut the maximized risks. Significant Courier Dover Publications.
timeline for planning is required when transforming the business [7] Rich, C., & Waters, R. C. (Eds.). (2014). Readings in artificial
requirements into technology specifics [10]. Software intelligence and software engineering. Morgan Kaufmann.
Development companies thus use machine learning to increase [8] Tadapaneni, N. R. (2017). Artificial Intelligence In Software
revenue fast, delivering the product quickly and speeding up the Engineering. Available at SSRN:
whole process. One of the examples of AI influenced tool is AL https://ssrn.com/abstract=3591807 or
Canvas and it helps in strategic decision making to identify the http://dx.doi.org/10.2139/ssrn.3591807
feasibility and key questions associated with deploying and [9] Jain, P. (2011). Interaction between software engineering and
building the machine learning models of enterprise. It is a very artificial intelligence-a review. International Journal on Computer
Science and Engineering, 3(12), 3774.
simple tool used in seven different categories e.g. feedback,
training, input, outcome, action, judgment and prediction. All [10] Kaiser, G. E., & Feiler, P. H. (1987, March). An architecture for
intelligent assistance in software development. In Proceedings of
of these seven categorizes are helpful in identifying the
the 9th international conference on Software Engineering (pp.
opportunities to enhance the performance or to reduce the costs. 180-188). IEEE Computer Society Press.
E. Intelligent Programming Assistants. [11] Tadapaneni, N. R. (2018). Cloud Computing: Opportunities and
Coding is a time consuming and labor intensive project so Challenges. SSRN Electronic Journal.10.2139/ssrn.3563342.
AI has also assisted in this field by enabling the AI programming [12] Li, B. H., Hou, B. C., Yu, W. T., Lu, X. B., & Yang, C. W. (2017).
assistant to reduce the workload. Here we can take an example Applications of artificial intelligence in intelligent
manufacturing: a review. Frontiers of Information Technology &
of AI based application called as Bayou which is intelligent
Electronic Engineering, 18(1), 86-96.
programming assistant and it aims at extraction of knowledge

36 | P a g e

Electronic copy available at: https://ssrn.com/abstract=3633525

You might also like