Improve Software Quality in cloud computing

Source: Internet
Author: User


Gavlin pather grew up in KZN, Russia, where he learned information technology and started his career as a developer. Later, he became a Black Box Tester in the testing field, then we switched to white box testing, and finally automated testing. He has been testing in the testing field for nearly six years and has been testing in the testing lab. Naturally, he gradually began to become interested in the cloud.


Computers and software are increasingly common in our daily lives. In modern society, as we become increasingly reliant on technologies, we inevitably need them to become faster and better. Higher speed and higher requirements require higher quality software. To achieve this, we can't just rely on manual testing. We need to enter an automated testing era.
By combining automated and manual testing, we can reach a set of quality standards in a short period of time. However, as we move towards a more technical (requiring that the software we develop operate not only on our PCs, but also on mobile devices) modern society, more cloud computing is needed. With more advanced software, people in hardware and hosting platforms need more complex and sophisticated testing methods to maintain the quality standards that have been met in traditional software testing.
Cloud computing has changed the way we provide and manage computing resources (such as CPUs, databases, and customer storage systems.
We test the way software runs on the cloud to better demonstrate how the software works in the real world. As Jerry Gao and others said, "cloud computing is the next stage of Internet development. A typical cloud must have several different attributes: elasticity and scalability, multi-tenant, self-management, service charging and metering, and connection interfaces and technologies ". In addition, the cloud allows a large number of users to access the Internet from all over the world. It provides customers with On-demand application services and virtual and/or physical devices at any time. Therefore, software testing in the cloud may be more complex and takes longer than expected, resulting in a single manual test.
Adding automated tests to cloud computing enables you to run regression testing scripts on multiple platforms. This expands the scope of ongoing tests and eliminates human factors that may cause errors, it also reduces the time required to complete the regression test. Due to the complexity of various software, the vast breadth of the cloud, and the defects that may be detected during the testing process and lead to the combination of the two testing methods, manual testing cannot completely disappear. In addition, developers can use unit tests to minimize the impact of changes on the system on a software, and detect defects before deployment.
By combining these methods and applying them to cloud computing (we also need to consider the complexity of the cloud, the flexibility of automated testing, and the ability to solve manual testing problems ), in a short period of time, we need to constantly change, adapt and develop software engineering and development to complete higher quality software.

  Cloud computing
Cloud computing is a common, convenient, and on-demand network access model that can be configured as a computing sharing pool (the sharing pool can be quickly configured and its release requires only a small amount of management or service provider interaction. Users can  systems. A user or customer can execute a task using a service provided by cloud-based computer resources in the browser and a service that executes the required functions and/or outputs, for example, prepare an inventory report or execute text processing. Some minor differences between traditional software testing and cloud testing observed by Jerry and others 2011 are shown in table 1. Note that these differences are important because they help you better understand the differences between the two test platforms and how these differences affect the methods that the test software may take. Cloud testing of any function, such as integration testing, includes identifying a set of predefined policies to design test cases to cover the needs of the largest range of users.

  Cloud Testing
BecauseCloud TestingIt is relatively new, so we cannot determine what software testing technologies, suggestions, methods, and tools should be used in cloud system testing practices. Therefore, we do not have a clear and universally accepted understanding of cloud testing. Traditional software testing methods are primarily based on best practices of testers and standards rather than theories. It was developed by kitchenham and others in their (which neither has known theories about how software engineers find defects and/or introduce it into software systems, nor has it provided any theory about how testers can identify these defects or bugs. In any existing cloud service test, end users are more active and direct. These end users can be individual or enterprise users. They have become a strong and indispensable part of the cloud testing team of cloud applications and cloud service providers. Due to hardware and software restrictions for non-cloud-based applications, most software applications need to exist on hosts or minicomputers. When evaluating the software to be tested, there are three main considerations: unit testing, automated testing, and manual testing.

Table 1. Differences between traditional software testing and cloud Testing

  Unit Test
To ensure higher quality of the cloud applications under development, developers who are conducting tests have created application-ready unit tests. Unit Tests provide some benefits, such as the ability to perform tests without waiting for other available units, and the ability to detect and delete software faults at a lower cost (compared to later stages ). One effective way to perform unit tests on cloud applications is to use various desktop-based cloud environment simulators, such as Microsoft Azure compute and storage emulators, they enable developers to run and test their cloud applications locally, instead of testing after deployment. These unit tests can then be used for regression testing. If the software changes, they can take effect early and minimize adverse effects on the system. Generally, it is not feasible to test a unit for all input values, because the input space is too large to be infinite. Therefore, we need a standard to determine what test inputs to use and when to stop the test.

  Automated Testing
To reduce manual work, testers or developers can use the function to automatically generate test input to achieve high structure coverage.Automated TestingGenerate a tool. Because cloud applications actually rely on applications in the cloud environment, the Unit to be tested in a cloud application depends on the unit input and cloud environment status. The use of the stub cloud model can alleviate these problems. With this model, you can use the false/stub cloud environment to simulate the real cloud environment (which can provide some default or user-defined return values for cloud API method calls. Automated Testing of a graphical user interface (GUI) represents a significant difficulty not found on the character-based interface; a lot of command line interfaces or programming interfaces (APIS) are missing ). Graphical User interfaces are often composed of complex components and are constantly re-designed during the development process. The release of a testing tool that can identify and operate the graphic user interface has been significantly successful. Selenium and Sahi are instances. This GUI automated testing can be written by developers or testers with the appropriate skills. The deep development of these test cases aims at user experience and correctness. These test cases only indicate the objects to be operated in the test case. With these tools, you can create test cases by recording and replaying or writing test code. If accurate, these tests can be integrated with unit tests created and run in a continuous integration (CI) environment. The write test can manipulate a browser like the end user. However, not all test cases are acceptable because the cloud status and environment are different. Reading data from a source (such as a database or file) allows the test to run in several different ways to render the GUI, which allows verification of different input and results of text fields, in this way, you can click the button and drop-down menu, and verify the text and the location of the objects on the screen. If you notice any difference, it will be able to write the problem into the log file (which can be used to verify that the problem has been mined. It is diverse and can be run in Web tests on multiple browsers, which enables you to block defects and easily replicate them. The two automated testing methods will be able to run more test cases faster than manual testing, and cover a wider range of test environments and States. Defects mined during the running of these test cases can also be repaired and deployed before end user interaction, so as to gain a better user experience and reduce human errors.

  Manual test
The software testing method can be based on the Program form and implementation, or both. The required form-based test guides the selection of test cases and provides a means to evaluate the test adequacy. In addition, implementation-based testing focuses on the exercise of tested procedures, so adequacy usually refers to covering program structure elements. You can perform component testing, integration testing, and system testing at multiple levels of granularity. A more extensive and rapidly growing manual testing method is exploratory testing. In some cases, it can be more efficient than script testing. All testers use some form of exploratory testing. This attitude is changing as enterprises seek more flexible and cost-effective methods to develop software. Its highly situational structure makes it appear to have no structure in casual observation.

"So to make an adventure possible, you must be credible, have difficulties and risks, and have new discoveries. Just like cricket, it is difficult to explain it to the outside world. However, there is an element that is absolutely important. In fact, from the early stages of exploration, the term "Exploration" was strictly adopted in the exploration phase. It is very simple. This is a reverence for science ." -- Select the permanent book of discovery from John Keay

James Bach and others mentioned that exploratory testing, to some extent, allows testers to take the initiative to control any test in the test design, because all tests are executed and information obtained from new and better tests that pass the test design is used. Manual testing is still a highly relevant part of most software development work. These people, such as the characteristics of testers (including creativity, intelligence, domain knowledge, and ability to effectively identify various problems) make manual testing an important part of software testing.

In short, software testing, as a cloud computing service, is quite novel. It still needs to be changed to adapt to the traditional or conventional methods of testing. Different types of testing methods, such as automated testing, manual testing, and unit testing, have been used for testing in the cloud to achieve the best results. Combining these methods and based on the cloud will leave many vulnerabilities that can be improved. There are still many vulnerabilities because "cloud test best practices guide" is required ". As more and more applications are migrated to the cloud, how do we test and test them in such an environment, you will have a better understanding of how to test anything. What automation tool should I use (if it must be automated)? Should it be a unit test, or should it be a pure manual test, these problems are the business decisions that companies need to make and have value-added benefits.
To improve the quality of software in cloud computing, a new way of thinking about how to test software is required, including the steps to get the best results. The traditional method of testing has taught testers and developers a lot of lessons, and as we enter an era where most applications are available everywhere, it is their responsibility to ensure that the obtained knowledge is adaptive and suitable for cloud computing. Of course, this is also the responsibility of stakeholders and business management.

Copyright: This article from spasvo zezhong Software Testing Network:

For original works, you must use hyperlinks to indicate the original source, author information, and statement of this Article. Otherwise, you will be held legally liable.


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.