Research on software testing and reliability evaluation method
source:
51CMM.COM Author:
He Yun
Abstract: With the rapid development of science and technology, the software's functions are getting stronger, and the complexity of software is also increasing, which greatly increases the difficulty of software testing and reliability assessment. In order to ensure the quality of a software system, it is necessary to conduct specialized research on software testing and reliability assessment methods. This article is some research on this area. Keywords: Software Test Reliability Software Evaluation 1. Software Test is an important phase in the Software Life Cycle, which is a key step in software quality assurance. Popularly, software testing is the event analysis, design specifications and coding of software requirements before software investment. In 1983 IEEE, the definition of software testing in software testing is: "Use manual or automatic means to run or determine a software system process, the purpose is to test whether it meets the prescribed needs or find out the expected results. Differences between actual results ". This definition clearly states that the purpose of software test is to verify that the software system meets the needs. From a user's point of view, it is generally hoped that the errors and defects hidden in the software through the software test, so the software test should be "the process of executing the program in order to find errors." Or, software testing should carefully design a batch of test cases (ie input data and its expected output results) according to the software development of specifications and procedures of the program, and use these test cases to run the program to discover the program Errors or defects. II. Software test lifecycle test mainly based on the development task book and technical specifications of the subject system, is a comprehensive test and evaluation of software overall function and performance. The test principle is the theoretical basis of software testing activities, and the test method is the practical application of test principles and the means of obtaining test data. Based on the commonality of the software, the test principle and method of the general software is subject to the test of the software. At the same time, for the features of the software, appropriate test methods must be found. The rationality of test cases has a key role in the test and evaluation of software, and how to make the design of the design, reasonable, and is not easy. Therefore, it should be intended to study the actual operating environment and describe the actual operational environment and describe it, form a reasonable test case. On the other hand, the complexity of the software operating environment is important to software assessments, so you should have tried to run as much as possible for easy research. The period of the software test is shown in Figure 1. Practice has proved that although people use many methods and techniques that guarantee software quality during development software, many errors and defects are hidden in the developed software. This is even more such for software that is large and highly complex. Therefore, strict software testing is important for ensuring software quality. Figure 1 Software Test Lifecycle Software Tests across two phases in the software survival period. In the software coding phase, after a module is written, it is usually necessary to perform the necessary tests (called unit test), and the test and encoding belong to the same stage. After the coding phase is completed, various comprehensive tests (integrated test and system testing) on the software system (integrated testing and system testing) are also a separate phase, that is, software testing phases. There are two different nature of the test stage in this test: Integrated testing and system testing inside the development unit, the acceptance testing of the user (or third party). In the software test life cycle, errors may be brought in every stage of software development. In software testing, some errors are discovered, classified, isolated, and finally corrected. Since the software is constantly being modified, this process is a repeated process. III. Test methods and process software test methods mainly have black box test methods and white boxes to test two categories. Black box test is also known as functional test, data-driven test, or specifications based testing, whether the relationship between the input and output meets the requirements when the internal structure and internal characteristics are not considered at all.
White box test is also known as structural test, logical drive test, or program-based test, is a test method for designing test cases in the case of the inside of known programs. Obviously, the white box test is suitable for use in unit testing, while in the independent test phase, black box test methods are used. Test case is actually a description of the goals, motion, action, environment, and results of the software operation, is an abstraction of the objective world. Design test examples are designed for specific functions or combined functions, and write as documents. Test cases should reflect the ideas and principles of software engineering. The choice of test cases must be in general, and there should be limit conditions and maximum and minimum boundary values. Because the purpose of the test is to expose the defects hidden in the application, consider the test cases and data that are easy to discover defects when designing test cases and data, combining complex operating environment, in all possible input conditions and output conditions. Determine the test data to check if the application can produce the correct output. After the data obtained by the software test is processed, it can be used as a basis for evaluating whether the software system meets user needs. The information flow of the software test phase is shown in Figure 2: Figure 2 Software test information flow. Software evaluation theory and its development status software assessment theory is the theoretical basis for evaluation, the evaluation method is the actual application and processing of test data. Methods. For different indicators in the evaluation index system, the corresponding evaluation theory and methods should be selected depending on the test data. Software Assessment is the metric and evaluation of software quality. Our definition of software quality assessment is: "In order to determine if a specific software module, the package, or software product is received or published, the specific evaluation criterion is applied to the activity of the software module, package or software product." It can be seen that the object of software assessment is "software module, software package or software product", and the purpose of software assessment is to "determine if the subject is checked or received." The assessment criteria mentioned in the definition is "Determine whether the product is determined whether the product has been accepted or published". In a broad sense, the assessment criteria have included the assessment methods and indicator systems, ie how to deal with the test data and how to apply the evaluation criteria to the evaluation software. The complete meaning of software reliability assessment is: based on the software system reliability structure (unit and system reliability relationship), life type and reliability test information of each unit, utilize probability statistics, evaluating system Reliability feature. At present, software reliability projects are generally admitted, but they are still in immature development establishment stages. From the late 1960s, the research work in strengthening software reliability has launched a variety of reliability models and predictive methods for 20 years, and has formed a more systematic software reliability engineering system before and after 1990. At the same time, from the mid-1980s, all major industrial powers in the West have established specialized research programs and topics, such as the British Aivey (Software Reliability and Metrics) Program, European ESPRIT (European Information Technology Research and Development Strategy) Plan , SPMMS (software production and maintenance management) topics, Eureka plans, etc. Every year, there are a large amount of human material investment in software reliability research projects and have achieved certain results. Domestic research work for software reliability is getting late, in software reliability quantization theory, metrics (indicator systems), modeling technology, design methods, test technology, etc., and foreign gaps. Most of the domestic software is still in the early stage of the computer era. The shortcomings are obvious, mainly in: 1, transparency; 2, only self-test before the software delivery system is jointly, quality is not guaranteed; 3. User Delivery software reliability lacks confidence.
Most so-called "software tests" only perform performances for several pre-designated use cases. There is currently no perfect inspection system as hardware, and the quality of delivery software is not high. Typical statistics show that there are 50-60 defects per thousand lines of code during the development stage, and 15-18 defects per kilogram of code will be left after delivery, and there is sometimes a serious hidden danger. At present, software reliability management has not yet established authoritative management systems and specifications. For example, how to describe software reliability, how to test, how to assess, how to design, how to improve, etc. Due to the current research phase of software reliability model at home and abroad, there are few reliability models involving test and evaluation stages, so software reliability testing and evaluation research is a theoretical value and practical meaning. And there is a certain problem with a certain difficulty. With the standardization of computer software, it is inevitable to include software reliability assessment into the scientific and specific tracks. Specific performance in: 1, in the software system development task, the software system is developed, making the software assessment have a clear standard; 2. Establish a complete software test, reliability information collection system, so that through science in computer software development Software test continues to reduce defects; 3. Through the research software reliability assessment method, the corresponding software assessment procedures, standards; 4, develop software reliability assessment software, making software identification more convenient. 5. The definition of software reliability assessment is the ability of the product to complete the predetermined function under the specified conditions and the specified time, and its probability metrics are referred to as reliability. Software reliability is one of the natural features of the software system, which shows a software system to perform the correctness of its function according to the target and design of the user. Software reliability is related to software defects and is also related to system input and system use. In theory, reliable software systems should be correct, complete, consistent and robust. But actually any software is not possible to reach the right one, and it is not accurate. In general, it is only possible to measure its reliability by testing the software system. In this way, the following definitions are given: "Software reliability is the ability to complete the predetermined function under the predetermined time and predetermined environmental conditions." According to this definition, the software reliability includes the following three elements: 1. The specified time software reliability is only reflected in its running phase, so "Run Time" as a "specified time" metric. "Run Time" includes the accumulated time for work and suspend (open but idle) after running. Due to the randomness of the environment and the randomness of the software run, the fairness of the software is a random event, so the runtime belongs to a random variable. 2. The specified environmental condition environment refers to the operating environment of the software. It involves various support elements required for software system runtime, such as support hardware, operating systems, other support software, input data format, and scope, and operating procedures. The reliability of software under different environmental conditions is different. Specifically, the predetermined environmental conditions are mainly to describe the configuration of computer operations and the requirements for input data, and assume that all other factors are ideal. With a clear environmental conditions, it is also possible to effectively determine the responsibility of software failure in the user or the development side. 3. The provisions of the functional software reliability are also related to the prescribed tasks and functions. Due to the different tasks to be completed, the software's run profile will be different, then the sub-module that is called is different (ie, the program path is selected), and its reliability may be different. So the reliability of the software system must first clarify its tasks and functions first. When we talk about software reliability assessment, we have to mention the software reliability model. Software Reliability Model refers to a reliability block diagram and mathematical model established as an estimated or estimated software reliability. The establishment of a reliability model is to decompose the reliability of complex systems into a simple system reliability, in order to quantify the reliability of complex systems.
6. The defects and failure defects of the software (Defect / Fault) refers to the intrinsic defect of the software. At all stages of the software lifecycle, especially in early design and coding stages, designers and programmers (such as demand, understanding, understanding, no need for demand or potential demand, algorithm logic, programming, etc.) Will make the software cannot or will not complete the predetermined function under certain conditions, so it is inevitably existing "defects". Once the software has a defect, it will latenate in the software until it is discovered and correctly modified. Conversely, in a certain environment, once the software is operating correctly, it will continue to maintain this correctness unless the environment changes. In addition, the defects in the software will not "loss" due to use. Therefore, the defect is "no loss" to the software. If the software does not use a defective part when running, the software can run and correctly work properly; if a part of the defective part is used, the software calculation or judgment will make the software lose the implementation of the requirements. Ability. Software cannot complete the specified function, "failure" or "fault". For unable tolerant designed software, local failure is invalidated throughout the software. For software that takes fault tolerance, local faults or failure does not necessarily lead to failure of the entire software. Judging whether the software is invalid, the system crashes, the system cannot start, cannot enter the output display record, the calculated data incorrectly, the decision is unreasonable, and the event or status that weakens or causes the software function. 7. The complete test process of the software reliability testing process includes inspections before testing, design test cases, test implementation, reliability data collection and writing test reports 5 steps, and this 5 steps will be described one by one. 1. Check before testing is necessary to check if the application software needs to check if the software needs is consistent, check the delivery procedures and data, and the corresponding software support environment, and check the consistency of documentation and procedures. , Check whether the documentation formed in the software development process is complete, the accuracy and integrity of the document, and whether the review is passed. According to the relevant standards in the software industry, we know that there are 16 documents formed in the software development process: "System and Section Design Documents", "Software Development Plan", "Software Demand Specifications", "Interface Demand Specifications", "Interface Design Document", Software Design Document, Software Product Specifications, "Software Test Plan", Software Test Description, Software Test Report, Computer System Operator Manual , Software User Manual, "Software Programmer Manual", "Firmware Guide", "Computer Resources Comprehensive Protection Manual". It should be noted that the "Software Test Program", "Software Test Description" and "Software Test Report" here refer to the test document formed by the developer to test during the development process. In principle, if the software is not too large, some documents can be merged. Although these examinations increase the workload, it is necessary for the early detection of errors and improving software in early test. 2. Design test case design test use is a designed test scheme for a specific function or a combined function, and write a document. The choice of test cases must be in general, and there should be limit conditions and maximum and minimum boundary values. Because the purpose of the test is to expose the defects hidden in the application, consider the test cases and data that are easy to discover defects when designing test cases and data, combining complex operating environment, in all possible input conditions and output conditions. Determine the test data to check if the application can produce the correct output. A typical test case should include the following details: a. Test goals; b. Function to be tested; C. Test environment and conditions; d. Test date; e. Test input; f. Test step; g. Expected output Guidelines for evaluating output results. All test cases should be approved by an expert review. The first step in the design and selection test case is to describe the test case. This description is authoritative, complete, understandable and standardized, determines whether or not the test case can be operated or how to be operator, software development personnel And the acceptance of the test appraiser is understood.