My opinion on the quality assurance of software testing

Source: Internet
Author: User
Tags writing test scripts knowledge base

As the internet enters the era of open source. The market on the various products on the competition into a more serious challenge era. Each product concept like a miracle constantly flooded the market, divided the market. People are more selective and more demanding. As data continues to grow, there are challenges to the overall structure of software processing these huge data. Faced with the huge data and complex structure, how to guarantee the quality of products, reduce the risk in the market becomes a thorny issue. The problem of product quality is the reason that people and technology produce.


For the people themselves, people's thoughts, opinions, thoughts, activities, learning, cognition and so on will change with the increase of time and environment change, people experience each minute every second may affect the initiative and enthusiasm of the work. The older the more experienced, but the age itself is a problem-prone factor. As the age increases, the person's initiative will be updated with the update, or will become lazy with precipitation, it depends on the individual's own requirements. All these hidden factors permeate the daily routine of people.


Technology is supposed to be achieved by people. Software development is originally a high-tech work, the need for technical personnel at all times to maintain a sober mind, careful thinking and high thinking. Unfortunately, these potential problems have a little impact on the quality of the software. If there is such a flaw in the product, it is better to say that the human is inherently flawed. Technically speaking, each person's age, experience, IQ, and so on are obviously different. There is coding good, there is poor coding. There are a variety of things to make up. In addition to different architectures, different languages and so on are creating infinite flaws.


Because of the defect, there is quality assurance. Products before entering the market, this is a level. is also the most important part. But is it only a threshold? I think it can be a bridge with a level. Because it can do to the front market personnel supply, to provide support to the rear developers.


If we take a closer look at the software development approach, we will find that software development is evolving from a heavyweight to a lightweight evolution. With the shortening of development time and rapid release, the quality of software is difficult to be guaranteed in a short period. And because the lightweight development process does not require too much formal documentation, it can be an invisible boost to potentially huge risks later in the software.


Through the past testing work, we will find that as the software requirements are constantly being rapidly updated, and the document is not sufficient conditions. New developers will be unable to get started, as there are no guidelines for old documents, plus the lack of training due to the shortened development time. I believe that from the point of view of the basic design of the developers, this moment of thought produced the foundation for the birth of defects. In the original time limited premise, in addition to the document is not sound, the bug will be easy to show the growth of geometric numbers.


If under such conditions, quality assurance is just a level. The cost of development is greatly increased, because it takes time and money to change a bug, and when a product is still being manufactured, new products are already on the market. Whether the time of the growth of development time or the increase of developers, is undoubtedly to increase the cost of D and the market quickly competitive risk. Especially in this era of open source.


Lightweight development, although a certain problem, but it can make only the level of quality assurance more flexible to become a bridge with the level. Allows for lightweight optimization of test work. The famous lightweight development approach to extreme Programming (XP). Because its inner process is a test-driven development (testdrivendevelopment) cycle, processes such as planning and design are carried out around these layers. Each development cycle has a number of corresponding unit tests (unittest). At first, because nothing was achieved, all unit tests failed, and with the completion of a small demand module, more and more unit tests were carried out. In this way, both the customer and the developer are easily tested and fulfilled their commitment to the customer. XP advocates for simple design (simpledesign), which is in the simplest way, so that programs written for each simple requirement can pass all relevant unit tests. XP emphasizes abandoning that package of detailed design (Bigdesignupfront) because there is a lot of content in this design that you don't need now or recently. XP also strongly advocates design walk-through (Review), code walk-through and refactoring (Refectory), all of which are in fact the process of optimizing the design process, the continuous operation of unit testing and functional testing, to ensure that the re-engineered and optimized system still meet all requirements.


And the benefit of this test-driven development is the ability to check the quality of the code while driving development. Because XP advocates writing unit tests before you start writing programs. Developers should often integrate the developed modules together (continuousintegration), run unit tests after each integration, run unit tests for any code walk-through and modification, and find bugs, It is necessary to add the appropriate tests (so the XP method does not require a bug database).


In addition to test-driven development, there is a demand-driven development (BDD) that is implemented through cucumber. Behavior-driven development is the evolution of test-driven development, but the core of attention is design. The main work is to define the behavior of the system, and the description of the system behavior becomes the test standard. In behavior-driven development, a common language is used to define system behavior. The common language, in fact, is a minimized glossary. We use these words to write stories. Words that are selected into a glossary must have accurate expression and consistent meaning. Turn requirements into stories, generate test points, and then develop further through these test points.


From the test to guide the development, this way not only can keep track of the status of the code, but also at any time to grasp the development progress and function coverage. Compared to the development of the finished product in the function of a coverage check to be more efficient. It also allows development to keep a clear mind at work, anytime, anywhere.

Unit testing is either the front-end page or the logical processing behind it. Each layer has a corresponding unit test tool. For example: JS unit test software can have PHANTOMJS to test, HTML has HTML unit and so on. If each layer can do a good job of unit testing, at least the robustness of the code, post-code refactoring and so on will play a certain effect. But this requires testers to have a high level of coding skills, at least more than 5-10 years of development experience, but also familiar with the basic theory of software testing. Testing if you can help with development to do some work, this can greatly support the work of development and time savings. This achieves the value and significance of the fundamental test-driven development. A certain amount of savings can also be made in the cost.


Although unit testing is important, we also need to further examine the molded product through integration testing, performance testing, safety testing, and functional testing. Integration testing, performance testing, and security testing all require testers to have a solid theoretical foundation and a broad knowledge base.


Functional testing is the most basic and commonly used test method in testing. Functional testing of the UI is usually divided into two types: manual and Automatic. Manual is a test method that is closest to the user's real-life software. Automation, however, is a simulation of manual testing of the UI. Whichever of these two Tests is used, the problem is that return on Investment,roi is too low.


Especially for agile development processes. Because it takes time to prepare the document before the manual test is ready, the documentation takes time, the time to execute the document is sufficient, but as the functionality continues to complicate, each round of regression testing increases as time goes on. This is good for manual testing, and if it's automated, it's going to crash. Because the software in the initial time stability is very poor. It is not possible to spend a lot of time writing test scripts. However, there is no workaround, you can record the script by Badboy, and the side Test side to record the script. These scripts can also be combined with JMeter for performance testing. During the alpha test phase, when the company was testing internally. The manual test of the function can be tested together, and a group of people will simulate the real user scene and test the team through different platforms. Efficiency can be greatly improved, problems can be discussed with each other, common progress.


Beta testing is done by end users for general software that is provided for internal use by the enterprise. But if it is e-commerce, instant messaging products, it is difficult to ask users to test. Game products can be measured. This time we need a new concept of testing.


In my work, I have summed up a test method called "promotional testing". Through the promotion of products, interaction with users to find out the important potential defects of the product, very accurate knowledge of the market users of the real use of the scene, the first time to get feedback, can quickly locate the software serious errors and users are dissatisfied with the needs of the place, can also be a good embodiment of the company's service quality, Do not let users feel that the product has a problem no one to accept the feeling.


This way can effectively help the company's products through the market running-in period of the risk period, greatly enhance the enterprise's products in the market in the late demand for improved precision. This test method will promote the product, so effectively control the product in the market competitiveness. In particular, to reduce the new product concept on the market after the customer approval of the process of risk and resistance. Also very good to promote product design and development work. Through this test we can find that when the software has some flaws, but not in a short period of time through the technology to compensate, you can find the use of other media to compensate for these shortcomings. For example: Baidu Quiz, blog use manual and so on.


in this test process, a little bit of the function can be written in detailed instructions. With this manual, the scattered needs are sorted out, and this specification is not only available to developers for the development of new employees or for themselves, but also to sales, to keep abreast of the latest developments in the product, and to achieve the sales replenishment ahead.


Before the functional test, there is a big problem, that is the need to document the collation. In the fast, complex, no clue to the needs of the document before we how to effectively follow up, but also to improve work efficiency, not to try Xmind mind map. Sweep all the Troubles, can achieve accurate, fast, timely needs update, screening, planning. The existing trained modules are then organized into test cases as permanent saves. Significantly improve the efficiency of testers day.


When you want to know how much coverage is in a functional test, but don't want to write too many complex content, you can use a feature-based coverage table. The bugs that appear in each function point can be effectively sorted out, and the situation of each function is visually visible.


The above is I read a large number of books, access to a large number of information, learning, practice, sorting out. Some things may not look very accurate, understanding is not very thorough. But it is not groundless, not according to casually speaking. Time is money, cornucopia. One second of your loss is someone else's gain. Bill Gates is right. "This is a fantastic time to join the business world,because business would change in the next ten years more than I t have changed for the last fifity years. "


https://www.linkedin.com/pulse/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E8%B4%A8%E9%87%8F%E4%BF%9D%E8%AF%81%E4%B9% 8b%e6%88%91%e8%a7%81-jin-song?trk=hp-feed-article-title-publish

My opinion on the quality assurance of software testing

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: info-contact@alibabacloud.com 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.