LNEE 121 - Cloud Computing Based Software Testing ... - Springer Link

12 downloads 56850 Views 4MB Size Report
existing framework of cloud computing, we analyze the advantages and disadvantages of existing methods of software testing, then designs a cloud computing ...
Cloud Computing Based Software Testing Framework Design and Implementation Weiwei Wang1, Xiaosong Zhang1, Ting Chen1, Xueyang Wu2, and Xiaoshan Li3 1

Dept. of Computer Science & Engineering, University of Electronic Science and Technology of China, Chengdu 611731, China 2 Unit 78046 of PLA, 610081, China 3 Unit 95879 of PLA, 610015, China [email protected], [email protected], [email protected]

Abstract. Cloud computing is profound changing the whole IT industry, and lead traditional software testing to a new direction. In this paper, aiming at the existing framework of cloud computing, we analyze the advantages and disadvantages of existing methods of software testing, then designs a cloud computing based software Testing framework, and have implemented a prototype. The experiments prove that the efficiency of the cloud computing based software testing is greatly improved. Keywords: cloud computing, software testing, testing framework.

1

Introduction

Software testing, as an important means to ensure software quality and reliability, has been widely used in IT industry .Now the scale of software is increasing, which inevitably exist various software vulnerabilities. These vulnerabilities may not only lead to wrong output, but also may be the exploited to invade computer system, or to steal information, no matter what the situation will result in incalculable losses, so software testing in the software life cycle are essential. Nowadays, the automated software testing has become the mainstream of software testing. The time, Automated software testing need, is proportional to the scale .The larger the scale of the software, the more time you need to test. But the traditional software testing is in the local machine, and has been unable to meet the increasingly large and complex software testing requirements. Cloud computing provide users with on-demand computing resources, it integrate a variety of computing devices to achieve this goal. Users can access on-demand scalable service at any time, pay per use, it can meet the requirement that the future software testing needs, and the virtualization of cloud computing environments can provide a variety of software testing virtualized scenarios for users. It can be predicted that cloud computing-based software testing will be popular.

Y. Wu (Ed.): Advances in Computer, Communication, Control & Automation, LNEE 121, pp. 785–790. © Springer-Verlag Berlin Heidelberg 2011 springerlink.com

786

2 2.1

W. Wang et al.

Software Testing Common Software Testing

Software testing techniques are usually divided into static and dynamic testing. Static testing can find code defects without excuting program. The static tests include code inspectation, code walkthrough, code examination and automated static analysis[1]. Dynamic testing find code defeats by detecting dynamic behavior and result of the running program, which input is test data sample. Dynamic testing include generating test cases, running program and verify the results , as well as documentation, data management, operating application procedures and tools application. The strategy is important to generate test cases, it is the key to make dynamic testing effective and efficient. Test case include input data and expected results. 2.2

Automated Software Testing

Typically, there are many repetitive, non-intellectual and non-creative operation in software testing, the computer can complete these tasks for people. Therefore the programmer will be emancipated from the complicated and repeating operation, do further test work. Automated software testing is based on the manual testing, mainly through the corresponding software testing tools, scripts, etc. It has well maneuverability, repeatability and high efficiency. Automated testing can be both static testing and dynamic testing. Automated static testing mainly include source code inspectation, static symbolic execution [2,3], etc. Automated dynamic testing now mainly include dynamic fuzz testing, dynamic taint analysis, dynamic symbolic execution [2]. No matter what kind of automated testing, has a significant amount of computation, especially the symbolic execution technique, which now attract more and more attention, since the test tool need traverse the excuting tree of program to cover all execution path, in this process, The solver will solve every constraint ,generated by test tools, to guide the operation of the program. It is a big challenge for computing ability of computer.

3

Cloud Computing

Cloud computing is an large-scale distributed computing model drived by economy of scale . Through this computing model, Cloud computing achieve abstract, virtual, dynamically extensible, manageable computing. The resources including storage, platforms and services is provided to external users on demand from the Internet[4]. Cloud computing has the following characteristics: a.

b.

large-scale: Cloud computing is a distributed and economies of scale drived computing model. Therefore, the most important features of cloud computing is large-scale, only large-scale cloud computing can realize the advantage of cloud service, especially the ability and the economies of scale of the service. Virtualization: Cloud computing can package all functions at every level as abstract entity, to supply users with all cloud services at every level, which is

Cloud Computing Based Software Testing Framework Design and Implementation

c.

d.

e. f.

787

realized through virtualization technology. Users can access to services from cloud by all kinds of terminal in any location, and don't need to know how it is realize and where it is. Reliability: The development of cloud computing depends on the market of cloud service, and the development of cloud service depends on the reliability, so cloud computing must take means to protect its service. The reliability is essential for cloud computing. Scalability: The scale of cloud computing can dynamic expand to meet the need of application and the growth of scale of users. Meanwhile, the cloud services also support the scalability of user application in cloud. Dynamic configuration: Cloud services can be customized and supplied on-demand. Economization: Cloud computing rely on economies of scale, which is low cost. Economization is an important feature of cloud computing.

From the above, the large-scale computing and virtualization, supplied by cloud computing, are required for software testing[5].

4 4.1

Cloud Computing Based Software Testing Framework Design Chart

Through analyzing software testing and cloud computing, we design the Cloud Computing Based Software Testing Framework shown in figure 1.

Fig. 1. Cloud Computing Based Software Testing Framework

4.2

Test Control

Test control is the central control module in software testing, on the one hand it coordinate information transmission between customers and cloud computing platform, on the other coordinate their work of each module.

788

4.3

W. Wang et al.

Virtualization Configuration

In the Cloud Computing Based Software Testing Framework, Virtualization configuration virtulize environments, which can be even virtual hardware environments, such as embedded environments, for software testing through the virtualization of hardware of cloud computing. 4.4

Computing Interface

Now since the introduction of new technologies,such as symbolic execution and solver,which need a lot of computing, software testing may spend more time. In this case, cloud computing supply common computing interface. The enormous computing power of cloud computing can greatly improve the efficiency of software testing. 4.5

Network Configuration

Some softwares, such as large Internet service softwares, need to concurrent test network access. In this case, it is more easy to use huge network of cloud computing.

5 5.1

Experiments and Evaluation Experiment Environment

5.1.1 Hardware Environment Stand-alone environment: a computer with one Intel E5200 cpu, 1G RAM and 320GB 7200rpm hard disk. Cloud computing environment: 10 computers, each one with one Intel E5200 cpu, 1G RAM and 320GB 7200rpm hard disk. This 10 computers connected through a 100M Ethernet switch, which model is TP-LINK TL-SF1024S. 5.1.2 Software Environment Stand-alone environment: The operating system of computer is windows xp with sp3. Cloud computing environment: These 10 computers, installed ubuntu9.04 operating system,are installed open source software Eucalyptus to build single cluster cloud computing platform ,and one of them is installed Cloud Controller (CLC),Cluster Controller (CC),Walrus (W),Storage Controller (SC) of Eucalyptus as control centre, the others are installed Node Controller (NC) of Eucalyptus as cluster computer. The virtualized operating system on cloud computing platform is windows xp with sp3. In order to verify the efficiency of software testing on cloud computing platform, we implemented a symbolic execution based binary file format vulnerability analysis system, and did an experiment with two groups of computers. 5.2

Experiments

The first group of experiment is for testing WMF format file vulnerability(CVE: CAN-2005-0611)[8],which is due to the way core module gdi32.dll of windows to deal with WMF format files. We use a system using sound file grid_ (cm). wmf of windows

Cloud Computing Based Software Testing Framework Design and Implementation

789

as the initial test case, size of 2.85KB.It taked 50 minutes to generate first test case, which could crash system, in stand-alone environment, and taked 9 minitus in cloud computing environment. It generated 38 test cases when system was crashed. The second group of experiment is for testing Mp3 format file vulnerability (CVE-2006-0476).We use a system using sound file mqyrf.mp3 of windows as the initial test case. It taked 92 minutes to generate first test case,which could crash system, in stand-alone environment, and taked 14 minitus in cloud computing environment. It generated 110 test cases when system was crashed. Table 1. Experiments Result File format

Test cases

WMF MP3

5.3

38 110

Time-consuming in stand-alone environment(min) 50 92

Time-consuming in cloud computing environment(min) 9 14

Evaluation

As can be seen from Table 1, the performance of the vulnerability-discovery system is much better on cloud computing platform, and the time-consuming to find bugs significantly reduced. We have reason to believe that the system will have greatly improved performance on cloud computing platform with more large data processing capability.

6

Conclusions

Based on the analysis of advantages and disadvantages of existing all kinds of software testing, our research explored the characteristics of cloud computing architecture. Cloud computing means a kind of service oriented architecture system, it can provide customers with the mass of data processing services on demand. Therefore, software testing with cloud computing will be more efficient, and ensure reliability of software effectively. Acknowledgment. This work was supported in part by Science Supporting Plan of Sichuan 2011GZ0207.

References 1. Chess, B., West, J.: Secure Programming with Static Analysis. Gary McGraw (2007) 2. Schwartz, E.J., Avgerinos, T., Brumley, D.: All you ever wanted to know about dynamic taint analysis and forward symbolic execution (but might have been afraid to ask). In: Proceedings of IEEE Symposium on Security and Privacy, pp. 317–331 (2010)

790

W. Wang et al.

3. Godefroid, P., Levin, M., Molnar, D.: Automated whitebox fuzz testing. In: Proceedings of the Network and Distributed System Security Symposium (2008) 4. Foster, I., Yong, Z.: Cloud Computing and Grid Computing 360-Degree Compared. In: Greid Computing Environments Workshop. IEEE, Austin (2008) 5. Godefroid, P., Molnar, D.: Fuzzing in The Cloud (Position Statement). Technique report MSR-TR-2010-29 (2010) 6. Godefroid, P., Lahiri, S.K., González, C.R.: Incremental Compositional Dynamic Test Generation. Technique report MSR-TR-2010-11 (2010) 7. Eucalyptus software, http://open.eucalyptus.com/ 8. Wei, Y., Zhang, Y.: MP3 Vulnerability Exploiting Technique Based on Fuzzing. Computer Engineering 33(24), 158–167 (2007)