The Application and Development of Software Testing in
Cloud Computing Environment
Peng Zhenlong Ou Yang Zhonghui
School of Business and Information Technology, QuanzhouNormal University, Fujian, China Email: jxndpzl@163.com
Abstract--Software testing is an important part of software engineering and it’s very important to enhance software quality. In the cloud computing environment, it is an unchangeable trend that the traditional software testing turns to "cloud testing". The article discusses the advantagesˈprocesses and procedures of software testing and cloud computing . Based on those procedures discussed, the intersection between software testing and cloud computing is pointed out. At last, the advantages and development trend of cloud testing is analyzed. Keywords: cloud computing; software test; cloud testing; virtualization
I SUMMARY OF CLOUD COMPUTING
A. What is Cloud Computing
When we talk about the origin of cloud computing, we’ll first discuss the three evolution stages of the IT and data center[1]. The first stage is the time when the computer was born. Because the chips and other hardware resources were relatively expensive, the data and the data processing were concentrated in one computer, and the use terminals were only simple input and output terminals which did not have a computing power. The second stage is that with the development of large scale and very large scale integrated circuit technology, the hardware became popular. At this time, the single computer’s computing power and storage capacity became so powerful that the transaction processing and storage were finished over a single computer. Then it comes to the third stage. In order to meet the needs of supercomputing power and also for the purpose of convenient management and saving energy, data storage and computing power are concentrated and rented out in the form of business. This period is called "cloud computing" stage. Specific evolution
Huang Youlan
School of foreign language, Quanzhou Normal University , Fujian, China
B. Cloud Computing Concept.
Cloud computing is the aggregation of grid computing, distributed computing, parallel computing, utility computing, network storage technologies, virtualization, load balance and so on. In the narrow sense, cloud computing refers to the delivery and using model of the IT infrastructure; it means the users have access to the required resources in an on-demand and easy-expanding way through network. However, in the broad sense, cloud computing refers to the service delivery and using mode. This service can be IT, internet software and other services. It means that computing power can also serve as a kind of commodity through the Internet. [2-3 ].
II CLOUD COMPUTING ARCHITECTURE Cloud computing is divided into three layers of framework. The first layer is IaaS (Infrastructure-as-a-Service) in which users can obtain the computer infrastructure through the Internet. The second layer is PaaS (Platform-as-a-Service). In PaaSˈsoftware development platform is submitted to the users as a service . The third layer is SaaS (Software-as-a-Service): the users don’t need to buy the software. They can manage the business activities of enterprises by renting the software based on web from Internet [4].See Figure 2.
dispersion
1960s-1970s 1980s-1990s 21st century
Fig.1 Evolution of Data Storage and Computing Ability cloud age concentration concentration
III ADVANTAGES OF CLOUD COMPUTING A. Obtaining Large Computing Power.
For a single machine, the computing power and storage space is very limited. Just like the urban water supply, it is impossible that every household dug a well. In fact, all the water is coordinated and scheduled by tap water factory, and then each user can get water he needs. Thus, the maximum degree of balance is achieved. Cloud computing is based on this idea: a professional cloud computing company supplies super computing power, super storage, and makes them assemble, decompose and coordinate freely through virtualization technology. The terminal users just "release task and wait for result" by network.
B. Professional Management, Security and Reliability. Cloud computing services providers have a professional management team in data security, virus protection, data sharing, hardware and software update and so on. They can rapidly respond and provide a safe and reliable service for users. See Figure 3.
C. Common Applications of Cloud Computing
The typical application of cloud computing in daily life is email service. The user registers an email address, and then they can send and receive emails and need not to know where the email server is, what the principle is and so on. At the
same time, based on cloud computing the mailbox capacity can get a big promotion. Other applications include such as search engine, online transactions, online videos and so on [5].
It is predicted that global cloud computing market scale will reach $40.7 billion in 2011, and by 2020 the data will have reached $241 billion. There will be a more than 5 times growth. According to Cisco's latest research results, the cloud computing services flow in the world market will grow to an amount 12 times in 2015 than that in 2010, with a compound growth rate 66% [6]. Google, Amazon, Oracle, Microsoft and SAP have or will have access to cloud computing by purchasing. Out of question, the cost and complexity of using cloud computing will be gradually reduced.
THE APPLICATION OF SOFTWARE TESTING IN CLOUD COMPUTING ENVIRONMENT A. What is Software Testing
Software testing is a key step to guarantee software quality. It is a process to test the function and performance of software product according to testing plan and flow by using test tools. Tester can design different test cases, make or use different test tools, and then do some destructive verification and validation. At last, the tester analyzes and evaluates the test results, track defects, and gradually optimizes to make sure that the software products meet users' needs [7-8]. B. Software Testing Steps
Firstly, draw up the test plan. Software testing should start with software development. Therefore, the software testing team or the engineer should get well acquaintance with the requirement specifications, analysis, design plan and other materials together with software developers, and thus draw up the software test plan. Test plan include the performance and function target clearly.
Secondly, construct the test environment. The testing team should construct the same test environment with actual environment based on the requirement specifications or systems instructions. This time two aspects should be considered: on the one hand, the hardware environment, such as the server, the client, the network bandwidth; on the other hand, software environment, such as the operating system, the database and so on.
Thirdly, execute the test. Test execution process must be determined according to the test plan target, such as the number of concurrent users, disaster recovery ability and so on. Manual or automatic test method are applied in the test Infrastructure-as-a-Service˄IaaS˅
˄Virtual servers, storage and network˅
Software as a service˄SaaS˅ ˄Profession applications, industrial
application˅ Users
Fig.2 Frame Diagram of Cloud Computing Platform as a service˄PaaS˅
environment, the testers survey the server's response time, the server’s memory, CPU occupancy rate, etc, and determine the performance of the server and software .
Fourthly, analyze the test result and optimize. The testers find and track software bugs, and analyze them, trying to find the problems which may hide in the modules, codes or the system configuration and then clear them. At last testers do some optimization to systems, modules or system configuration.
THE DEFICIENCY OF THE TRADITIONAL TESTING
A. It's Difficult to Obtain Large Scale Computing Power. Sometimes, millions of virtual users should be generated in performance test, which needs large hardware. It's almost impossible to finish the test especially for small and medium enterprise or individual,
B. It's Unaffordable to Purchase the Needed Test Software and Hardware to Create Test environment.
Some professional test software such as Microsoft Test Manager, Loadrunner, QTP, professional database, operating system, etc, are very expensive and update quickly. It's a waste to purchase the software and hardware for a certain Test.
C. It's Complex to Configure Test Environment. Now most of the software system adopts B/S structure. network configuration, enterprise firewall configuration, registry settings, the relationship with other applications and so on. The combination of configuration grows by geometric parameters. Configurations are extremely difficult.
D. It's Difficult to Construct the Test Cases.
Because of the lack of accumulation, traditional testing has to build different test cases for every test, especially in the field of fuzzy testing, safety testing, performance testing which need expert experience.
ADVANTAGES OF CLOUD TESTING Cloud testing [9] is a new type of test method based on cloud computing technology. Cloud testing provider prepares various test platform (software and hardware, operating system, database) and a variety of browser. The user can get the test results by merely presenting test goal and testing environment requirement. Cloud testing has the following advantages:
A. Rapid Response
Cloud testing provider can finish much work such as
hardware and software installation, environment configuration and maintenance, tools configuration, middleware
configuration and so on, It's quick and economical. Generally, through virtualization technology, the cloud testing providers can create a new test environment just in several hours. And if the environment the user required already exists, the user can immediately get it.
B. Saving Money
Users need not to buy expensive test software, operating system and database, etc. They only need to pay a little lease fee.
C. Easier Expansion
Through the virtualization technology, the cloud testing provider can integrate or disassemble the hardware resources and software resources very conveniently in order to adapt to the needs of users.
D. Improving Efficiency
Cloud testing can significantly reduce the time of creating test environment, and when some problems arise in test, the users can obtain the professional and quick services from the cloud testing provider. On the other hand, the accumulation of test cases in the cloud testing center can be easily reused, these greatly improve the efficiency of the cloud testing.
Advantages and disadvantages of the traditional test and cloud test, please see table 1.
Test method Traditional test Cloud test
Large computing power can’t easy
Efficiency low high
Cost(software and hardware) high low Environment configuration difficult low
Extensibility low high
Security and reliability high high
Table.1 Advantages and Disadvantages of the Traditional Test and Cloud test
WHAT TESTS ARE SUITABLE FOR CLOUD TESTING
According to the characteristics of cloud testing, we can see "cloud testing" is good at the following items:
A. Hardware environment test: test the performance of software system in different hardware environment conditions;
B. Automated function test: construct test cases for automatic testing by automated software test tools; C. Software environment test: test the performance of
software system in different operating system, database, different browsers, and their various versions;
D. The performance test: under a certain pressure, test the performance of software system (including the response time, error rate , memory and CPU consumption rate, etc.);
E. Adaptability test: test the performance of software system in different firewall and anti-virus software, test the reliability and disaster recovery capacity when disaster occurs.
Đ CLOUD TESTING SOFTWARE At present, cloud testing service providers are mainly foreign companies [10]. For example, cloud Testing is a cloud testing platform which can provide a variety of platform and different browsers according to user's demand; Developed by SOASTA company cloud testing features a typical B/S structure, which is able to test any Web applications, covering performance test, function test, regression test, etc.; the kite tools developed by Keynote company provides visual analysis report of server's performance. HP's load runner cloud test software can provide comprehensive test scheme. It can test the efficiency, strength and reliability. In China, some cloud testing service providers also appear in many provinces, such as the professional third party Test service provider----Banmo cloud which launched Allday Test platform for web software test.
THE DEVELOPMENT OF SOFTWARE TEST IN THE CLOUD COMPUTING ENVIRONMENT A. Professional.
"Let professional people do professional thing" is the inevitable trend of the society. Cloud testing platform can not only provide convenience in hardware and software but also provide expert services, including test cases, test data, test automation etc. For example, to test reading the disk data, one program reading different data in many places or many programs reading the same data in one place are easily realized in cloud testing. And the changes of hard disk, RAM, stack are recorded. And after a time, cloud testing center can report the whole test process to test workers without any personnel job.
B. Low Cost.
In cloud testing, users do not need to buy or to prepare many hardware resources, do not need to buy or install various types of test software, also do not need to make complex deployment for test system. What they need to do is submit the basic information of testing purpose, software and
hardware environmental requirements, the number of virtual machine and so on to the cloud testing organizations, and then pay for the rent. The upgrade and maintenance work is completely done by cloud testing providers.
C. Software and Hardware Platform Support
When all people consistently consider there is good prospect of the development of the cloud computing, a problem comes out, i.e. there are public cloud, private cloud, industry cloud, comprehensive cloud… How to select, construct and use cloud computing power effectively? The fast construction and support of soft and hardware is the natural advantage of cloud computing. Cloud testing provider must provide mature, secure renting solutions for clients. A report points out most of the cloud testing potential users are the medium and small enterprises and individual users. Some big companies often build their private cloud because they worry about cloud's elusiveness and security. But for small and medium-sized enterprises, using cloud testing can indeed leave out the construction of software and hardware platform, thus reduce information cost.
D. Bandwidth Promotion
Cloud testing’s success greatly depends on the network environment. So the deep development of cloud testing is restricted by the network bandwidth. Cloud testing center must have enough bandwidth to respond to more service, and to meet the demand of a strict time delay. With the development of society, the network bandwidth will become more and more powerful and its restrictive effect over the cloud testing development will also reduce gradually.
E. The Innovation and Diversification of Paying Method Cloud testing must enable the customers to pay for the needed test service in a flexible, convenient and measurable way. In IaaS, PaaS, SaaS structure, every layer can provide services by the virtualization technology, so the payment mode of the cloud testing must be various. Common payment mode include "according to the bandwidth, according to flow, according to the number of rent hardware, etc". In the future, for the test which only rent the hardware, software or test cases of the cloud testing, payment may be "according to the content of the quantity and difficulty". For the fully outsourcing cloud testing, the payment mode "according to the function point, testing time length, the number of bugs, bandwidth requirements, analysis reports, etc" can be added. Of course, the combination of a variety of payment mode is feasible.
Ē SUMMARY
Cloud computing is the next key point of information technology in the cloud environment and the applications of information technology will be changed greatly. The effective combination of the software testing and cloud computing technology is not only the innovation of software testing model, but also extension of the cloud computing in the application field. This paper introduces some knowledge of the cloud computing and software testing , expounds the advantages and developing trend of software testing in the cloud computing environment, and provides certain reference for diversifying the software testing method and developing the cloud computing applications.
ACKNOWLEDGMENT This research was supported by the funds from:
Foundation item1˖Construction Funds of Master Degree Awarded Unit of Quanzhou Normal University;
Foundation item2: Fujian university key project construction service routines "The port logistics information platform construction, Haixi prefecture”, Project Number: A103.
Fundation item3: Quanzhou Science and Technology Bureau item fund "The application and research of software testing in quanzhou software industry structure adjustment and upgrade" (item Numbers: 2011 G12);
Fundjation item4: 2011 annual scientific research item of Quanzhou normal university: "data mining of e-government based on data warehouse " (item Numbers: 2011 KJ12);
REFERENCES
[1] Peng Zhenlong, The Top-Level Design Research of E-government Data Center, Journal of Quanzhou Normal University (Natural Science Edition ) 2011, (7), pp. 15-19. [2] Cloud Computing [EB/OL]. [6th Mar,2012].
http://baike.baidu.com/view/1316082.htm
[3] YanGe, A Network Architecture of Laboratory Based on Cloud Computing. Journal of Zhangzhou Normal University (Natural Science Edition), 2011, (3), PP. 25-29. [4] ZhangMiao, Cloud Computing Thrusting a New
Generation Construction of Data Center, Financial Computer of Huanan 2009, (6) : 1.
[5] The Interpretation of Common Seven "Cloud Computing" Application [EB/OL]. [Apr 4th,2010].
http://labs.chinamobile.com/groups/10312_56829 [6] The Global Market Scale of Cloud Computing in 2020
will increases to $241 billion [EB/OL]. [7th Dec,2011]. http://www.askci.com/news/201112/07/163012_24.shtml [7] ZhaoBin. Use only for senior software test
engineer--classic tutorial of software testing technology [M] science press, 2007, (5), 29-46
[8] Mladen A Vouk. Cloud computing-issues, research and implementations [J]. Journal of computing and Information Technology-CIT 16, 2008, (4) : 235-246. [9] cloud test [EB/OL].
[2011-12-23].http://baike.baidu.com/view/2810525.htm [10] Lian YU, Wei-Tek Tsai1, Xiang-ji CHEN, Lin-qing LIU,
Yan ZHAO, Liang-jie TANG, Wei ZHAO. Testing as a Serviceover Cloud [C]. Proceedings of Fifth IEEE International Symposium on Service Oriented System Engineering, 2010:181-188