research paper and ppt on on 5 conference papers-cloud computing in software development

profilebeststudent143
paper5-TowardaCloudbasedFrameworkforFacilitatingSoftwareDevelopmentandTestingTasks.pdf

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