research paper and ppt on on 5 conference papers-cloud computing in software development
Toward a Cloud based Framework for Facilitating Software Development and Testing Tasks
Chia Hung Kao Cloud System Software Institute
Institute for Information Industry
Taipei, Taiwan
Email: [email protected]
Shin Tze Liu Cloud System Software Institute
Institute for Information Industry
Taipei, Taiwan
Email: [email protected]
Chun Cheng Lin Cloud System Software Institute
Institute for Information Industry
Taipei, Taiwan
Email: [email protected]
Abstract—The cloud computing model enables efficient access to dynamic computing resources. As the growing of cloud computing related technologies, more and more software organi- zations and companies are considering the benefits to the software development and testing tasks. In this paper, a cloud based development and testing framework is introduced. Based on the advantages of different cloud computing models and technologies, the framework aims to integrate and provide corresponding tools to facilitate software development and testing tasks.
I. INTRODUCTION
The cloud computing model enables efficient access to
dynamic computing resources. As the growing of cloud com-
puting related technologies, more and more software orga-
nizations and companies are considering the benefits to the
software development and testing tasks. Generally, IaaS model
provides fundamental computing resources, including process-
ing, storage, networks, and so on [1]. Software developers can
control the computing resources and perform related develop-
ment, deployment and testing tasks. For software development
and testing tasks, IaaS brings the benefits of avoiding extra
capital expenditure on hardware resources. However, envi-
ronment configuration, application deployment, and resource
management still bring certain burdens on software developers.
PaaS provides software developers with the capability to
develop software applications based on specific environment
supported by the underlying cloud infrastructure. The envi-
ronment comprises specific programming language runtime,
framework, library, database, and so on for the implementation
and deployment tasks [2]. However, several development and
testing tasks, including project management, software artifacts
management, verification and validation are not considered in
current PaaS model. SaaS provides users with the capability
to use particular software applications running on particular
cloud infrastructure [3]. It helps to mask the underlying
complexities and provides users with simple access method
(e.g., browsers) to use services. Nowadays, more and more
software companies and organizations offer SaaS as a new
software delivering and business model. Meanwhile, software
development and testing services (e.g., cloud based IDE)
are emerging recently [4]. However, if services are not well
integrated and aligned with the software development process,
it could cause additional management efforts.
In this paper, a cloud based development and testing frame-
work is introduced. Based on the advantages of different cloud
computing models and technologies, the framework aims to
integrate and provide corresponding tools to facilitate software
development and testing tasks. A case study which describes
the usage scenario of the framework is also introduced in this
paper.
II. DESIGN OF THE FRAMEWORK
The development and testing framework is built based
on several cloud technologies to support particular software
activities. Cloud technologies include scalable and reliable
storage, virtualization, and big data infrastructure and analyt-
ics. Firstly, storage is used to preserve all the software artifacts
acquired, generated and used throughout the development and
testing tasks. Secondly, virtualization technology is used for
the construction, deployment, monitoring and maintenance of
virtualized resources. Finally, big data infrastructure and ana-
lytics are used to gather and analyze all the quantitative data,
which can be insightful reference for strategy and decision
making. As shown in Fig 1, the framework comprises several
components, including Resource Manager, Process Manager,
Artifact Manager, CASE Tools, Automation Engine, Evalua-
tion Module and Platform Portal. Descriptions of components
are stated as the following.
• Resource Manager: According to resource requirement of task, Resource Manager cooperates with the underlying
Fig. 1. Architecture of the cloud based software development and testing framework
2014 IEEE/ACM 7th International Conference on Utility and Cloud Computing
978-1-4799-7881-6/14 $31.00 © 2014 IEEE
DOI
491
virtualization technology to create, deploy and manage
necessary resources for specific development and testing
tasks. When task is finished, related resources can be
released for other tasks. It facilitates the efficiency of
resource usage throughout the software development life
cycle.
• Process Manager: Process Manager maintains process of development and testing tasks. Steps, associated resources
and related software artifacts are described in process
document and managed by Process Manager. It provides
corresponding process information for Automation En-
gine to perform specific development and testing tasks.
• Artifact Manager: Artifact Manager helps to preserve and manage all the software artifacts. It cooperates with
the underlying storage to handle various artifacts in
different formats and generated in different tasks. In
addition, because the development and testing tasks are
performed through the framework, the traceability of
software artifacts can be strongly maintained by Artifact
Manager.
• CASE Tools: More and more CASE Tools are used in the software development projects. For instance, project man-
agement system, issue tracking system, static/dynamic
analysis tools, continuous integration system, test case
management system and so on can be used to facilitate the
development and testing tasks. In the framework, CASE
Tools are packaged as virtualized resources. Based on
the requirement of particular task, CASE Tools can be
constructed, deployed and operated efficiently.
• Automation Engine: Automation is one of the key factor for facilitating development and testing tasks. Based on
the descriptions of process steps, associated resources and
related artifacts, Automation Engine is responsible for
execution of particular development and testing tasks.
• Evaluation Module: Evaluation Module cooperates with the underlying big data technologies to gather, analyze
and evaluate all the software activities happened in the
framework. Continuous data gathering, analysis and eval-
uation can generate insightful information for software
Fig. 2. Automatic web testing based on cloud environment
development projects.
• Platform Portal: Platform Portal is the interface for software developers to perform development and testing
tasks based on the cloud based framework.
III. CASE STUDY: AUTOMATIC WEB TESTING
Automatic web testing is used as a scenario to elaborate
the feasibility of the cloud based development and testing
framework. As shown in Fig 2, the automatic web testing
task is achieved by test case management system, continuous
integration system (Jenkins) [5], web browser automation
(Selenium) [6] and test target. In the beginning, Jenkins (as Automation Engine) retrieves
test case from test case management system (as Process Man-
ager). Test steps, necessary test environment and related test
scripts are described in the test case. Based on the requirement
of test environment, Jenkins requests virtualization platform
(as Resource Manager) to define, create and configure virtual
machines to different roles (e.g., Selenium Hub, Selenium
Node or Test Target) in the automatic web testing task. When
the test environment construction and deployment are finished,
Jenkins can launch the testing tasks performed by Selenium (as
CASE Tool). After the completion of test execution, summary
and statistics of test run will be generated and preserved (by
Artifact Manager). Further analysis and evaluation can be
performed to generate more insightful reference for software
development projects. Meanwhile, resources (virtual machines
for Selenium Hub, Selenium Node and Test Target) can be
released for other tasks.
IV. CONCLUSION
In this paper, a cloud based development and testing frame-
work is introduced. Based on the advantages of different
cloud computing models and technologies, the framework
aims to integrate and provide corresponding tools to facilitate
software development and testing tasks. In the future work,
the framework prototype will be designed and implemented.
More scenarios can be practiced to examine the feasibility
and the benefits of the cloud based development and testing
framework.
ACKNOWLEDGMENT
This study is conducted under the “Cloud computing sys-
tems and software development project (3/3)” of the Institute
for Information Industry which is subsidized by the Ministry
of Economy Affairs of the Republic of China.
REFERENCES
[1] S. S. Yau and H. G. An, “Software Engineering Meets Services and Cloud Computing,” IEEE Computer, vol. 44, no. 10, pp. 47–53, Oct. 2011.
[2] G. Lawton, “Developing Software Online With Platform-as-a-Service Technology,” IEEE Computer, vol. 41, no. 6, pp. 13–15, June 2008.
[3] M. Cusumano, “Cloud Computing and SaaS as New Computing Plat- forms,” Communications of the ACM, vol. 53, no. 4, pp. 27–29, Apr. 2010.
[4] K. Tang, J. M. Zhang, and C. H. Feng, “Application Centric Lifecycle Framework in Cloud,” Proceedings of the 2011 IEEE Eighth International Conference on e-Business Engineering, pp. 329–334, Oct. 2011.
[5] Jenkins, URL http://jenkins-ci.org. [6] Selenium, URL http://www.seleniumhq.org.
492