Software testing is defined as any activity with the goal of evaluating the properties of a program or system. Testing is a measure of software quality. Now I will share with you a 2000-word software technology paper. Come and enjoy it with me. Software Technology Paper 2000 words Part 1
Research on Software Testing Technology
Abstract: Software testing is an important task in the field of software engineering and is closely related to software quality. This article discusses several aspects such as the concepts, classifications and methods of software testing.
Keywords: software testing; black box testing; white box testing
CLC number: TP311.52
Software testing is a key part of the software production process An important link develops with the emergence of software. It is not a patent for software that cannot run normally, but the process of executing programs in order to discover all software defects. Software testing runs through every process from software development to putting into use. The testing methods at different stages are different. Testing has become one of the important means of software product quality control and management. A large amount of data shows that the workload of software testing accounts for more than 40% of the total software development workload, and the testing cost also accounts for 30-50% of the total cost.
1 The goal and importance of software testing
1.1 Definition of software testing
Different perspectives on software testing have different definitions of software testing. Generally speaking, software testing is to use testing tools to conduct functional and performance testing of products according to preset plans and processes, and even rewrite the test code as needed to analyze and evaluate problems that may arise during the testing process. It is a software process that helps identify the correctness, completeness and quality of developed computer software and is an important part of ensuring software quality.
1.2 The goal of software testing
The correct definition of software testing is the process of executing a program in order to find errors in the program. The purpose of the test determines how to organize the test. What is the goal of testing? G.Myers once gave some rules about testing, which can be regarded as the goals of software testing:
(1) Software testing is not to verify the correctness of the software. , but the process of executing a program to detect errors. (2) A good test plan is a test plan that finds as many errors as possible that have not yet been discovered. (3) A successful and effective test is a test that discovers errors that have not yet been discovered. As can be seen from the above rules, testing is centered on finding errors, which is completely opposite to what people usually imagine: "Testing is to verify the correct function of the program", "Successful testing is a test that does not find errors", etc. Therefore, in recent years, the correct goals of software testing are as follows: (1) Software testing is not just to find software errors, but to further analyze the causes of errors and the development trends of errors to discover some problems that can be avoided through testing Development risks; (2) Testing can help testers design more effective testing methods suitable for the software, further improve testing efficiency, shorten testing practice, and reduce testing costs; (3) Testing with completely correct results is also valuable and is It is an evaluation of software quality, but it does not mean that the software is error-free if the test is correct. With the in-depth use and expansion of functions, more problems will gradually be exposed. Practice has proved that software without errors is difficult to find in the world.
1.3 Software testing mainly includes
(1) Correctness and accuracy testing: If the running results of the software are incorrect and inaccurate, it will cause a lot of trouble to the users. , and even cause immeasurable losses, so it is the most important factor in ensuring software quality. (2) Fault-tolerance testing: Fault-tolerance testing is a test conducted when an error is recognized. It checks whether the software is protective and can self-recovery when running under abnormal conditions. Fault tolerance testing can ensure that unexpected accidents do not occur in the system, thereby improving the safety and reliability of software.
(3) Performance and efficiency testing: Users hope that the software will run faster and take up fewer resources. Performance and efficiency testing is mainly to optimize the software's algorithm, data structure and code organization to improve the performance and efficiency of the software. . (4) Usability test: The usability test is to test the ease of use of the software. It is like a commonly used wrench tool. You can understand how to use it when you get it. Therefore, the usability test does not have a quantitative indicator and is more subjective. powerful. In daily use, when users cannot use a certain function in the software correctly, most people will first learn through various methods, ask for advice, or call the product support department, and some users will consult the user manual. It is generally believed that software that users can use without reading the user manual is more usable. (5) Document testing: Document testing mainly checks the correctness, completeness and understandability of the document.
1.4 Basic principles of software testing
(1) Test software as early as possible and continuously; (2) Programmers or programming agencies avoid testing their own software; (3) Test Reasonable test cases should be set up in advance, and the design of test cases must not only have legal test data, but also illegal test data; (4) Regression testing must be performed after modifying the program; (5) Properly retain the test plan and strictly follow it Plan the test, eliminate the arbitrariness of the test, all test cases, error statistics and final analysis report, and conduct a comprehensive inspection of each test result.
1.5 The status of software testing
The software development process includes four stages: demand analysis, design, implementation and testing. Software testing plays an important role in the software life cycle and is an important means to ensure software quality before it is delivered to users for use. Before the system is released, if problems are discovered as early as possible based on customer needs, the cost of modification will be lower and the less destructive. Once a problem is discovered after the system is put into production, its harm will be multiplied and even cause immeasurable losses to both parties.
2 Software testing methods
According to different classification methods, software testing can be divided into many types.
2.1 Classification from the perspective of whether the software under test needs to be executed
Static testing: refers to testing that does not require actual running of the software and mainly tests the programming format and program logic structure of the software. . Static testing is to find out defects and suspicious areas through syntax inspection, static structure analysis, code quality and other aspects of the source program, such as variable definition and life cycle inspection, correctness of module interface, whether recursion is allowed, program logic and structure review wait.
Dynamic testing: A test usually performed by running the software on a computer. This method is to make the program run in a controlled manner and observe the behavior of the program from multiple angles to find errors. In the software maintenance phase, when the software is modified, in addition to regular testing of the modified part of the software, regression testing should also be performed on other parts of the software. The so-called regression testing refers to repeating all or part of the tests that have been done. It mainly Check whether modifications to the software have introduced new bugs in unmodified parts of the software.
2.2 From the perspective of whether it targets software structure and algorithm, it is divided into
White box testing is mainly a test of the logical structure of the software. White-box testing requires testers to design and select test cases for the internal logical structure and related information of the program, and test the logical path of the program without testing the functions of the software product. The testing process is based on covering all code, branches, paths and conditions. White box testing refers to knowing the internal working process of the product and setting test cases to detect whether the internal actions of the product are performed correctly according to the specifications and whether the program can work correctly according to the predetermined requirements, regardless of its function. White box testing The main methods include logic coverage, basic path testing, etc.
Black box testing: refers to testing to detect whether each function can be used normally. Perform rigorous testing on the entire software or certain software functions, but without checking the source code of the program, you still have a very clear understanding of how the software's source code is specifically designed.
Understand how the software works by inputting test data and outputting the analyzed results to testers. In testing, the main functions are used to check whether the program is correct or missing functions, the user interface is correct, wrong data structures or external database access errors, performance is correct or not, whether the program has initialization and termination errors exist.
2.3 Classification from different stages of testing
Unit testing: refers to testing each work unit to understand whether its running results meet our expectations. It has relatively high requirements on testers and requires testers to be familiar with the program code. Generally, after the programmer has compiled a certain unit by himself, he will first pass the self-inspection and then hand the test code to the tester for review. If defects are found , the original developer should correct the program in time, so that errors in the program can be discovered as soon as possible and corrected in time to improve the efficiency of program development.
Integration testing: Based on unit testing, it tests whether the work of each part is achieved or realized during the process of assembling all software units into modules, subsystems or systems in accordance with the requirements of the outline design specifications. Activities corresponding to technical indicators and requirements. In other words, unit testing has been completed before integration testing, and the objects used in integration testing are already unit-tested software units.
System testing: It is to combine the confirmed computer software and hardware equipment, network and peripheral equipment and other elements together to test the integrated system to find out whether the developed system does not meet the user needs. or contradictions, so as to propose a more complete solution. Its task is to check out errors in the program as thoroughly as possible and improve the reliability of the software system.
Acceptance testing: Also called delivery testing, it is the testing activity performed after completing functional and system testing and before product release. It is the last stage of technical testing.
In short, with the continuous development of software development and testing technology, testing methods are becoming more and more diverse and more targeted; choosing the appropriate software testing method can help us get twice the result with half the effort.
References:
[1] Zhang Yongmei. Research on Software Testing Technology [J]. Journal of Testing Technology, 2002, 6.
[2] Liu Jihua. Research progress of software testing technology [J]. Microcomputer Information, 2012, 10.
[3] Qu Lili. A brief analysis of software testing technology [J]. Silicon Valley, 2010, 4.
Click on the next page and there are more gt; gt; gt; Software technology paper 2000 words