Source:
Http://www.giltworld.com/
------------------------------------------
Software Quality refers to the degree to which the functions and performance of the software meet user needs and expectations. With the extensive and in-depth application of IT technology in various industries, software quality has become a factor of widespread importance. How to effectively improve the software quality and enhance the competitiveness of software products is a common problem faced by software enterprise management and technical personnel.
Software quality is more important than Taishan
Software quality is more important than Taishan, and software quality is one of the core competitiveness. The competitiveness of current and future software enterprises is not only reflected in the diversity of product types, but also the advancement of product functions, but also in the stability and reliability of product quality. Software applications continue to deepen the field, the complexity of the design is gradually expanded, the development cycle is constantly shortened, the quality requirements rise, and software enterprises are facing huge challenges.
The requirement on software product quality is constantly improved, prompting software enterprises to improve software quality as a strategy to enhance competitiveness. Where are the factors for improving software quality? Software design technologies can be used to enhance software process management and implement software testing. The most significant method to ensure software quality is to carry out effective software testing and improve the efficiency of software testing by comparing the improvement of software quality, ROI and feasibility.
Software testing is a professional technique used to detect Software Documents, intermediate software products, and final products through technologies, procedures, tools, personnel, and management techniques, and to find and report Software defects, errors, and risks. By tracking the Rectification Process of defects, errors and risks, ensure that software products, intermediate products and documents meet the requirements of software engineering processes and users' final needs.
Innovation in software testing
Software testing is still in its infancy in China, and various software testing methods, technologies, and standards are still in the exploratory stage. The domestic software industry is generally small in size, lacks experience in large-scale software products, and the development process is not standardized. This determines the domestic software quality and testing industry, which must be based on the current situation of the domestic industry, determine the software quality objectives and testing strategies, rather than copying the testing methods of foreign mature software enterprises.
1. conceptual innovation
The determining factor for improving software quality is not software testing technology, but the idea of software quality and testing. Only by increasing the quality of software to the strategic development level of the enterprise can the problem be solved fundamentally. For a long time, the software industry in China has not paid enough attention to software quality and has insufficient understanding of the role of software testing. As a result, the project may delay or even fail due to quality problems.
To completely change this passive phenomenon, senior management personnel must provide full support to software quality and testing departments in terms of management ideas and resource support. The software project manager must adhere to the parallel processing of software development and software testing and coordinate with each other. Software developers attach importance to and cooperate with software testers.
Conceptual innovation should not only be put on the verbal side, but should be carried out in specific actions, promoted through effective software quality and testing processes, and improved through process improvement. Through effective organization and management, we are proud of the importance of software quality and the shame of software quality.
2. Process Innovation
The test process determines the software quality. Like software development, software testing involves collecting test requirements, determining test policies, designing tests, executing tests, and analyzing tests. Software testing is not the final stage of software development, but the entire life cycle of software projects. The key to determining the success or failure of software testing is whether the software testing requirements are complete and accurate, whether the testing policies are effective and practical, and whether the testing design covers the testing requirements.
The software testing process is neither rigid nor random. The quality management department and project development team of a software enterprise need to ensure the software quality, project progress, and test costs based on the company's technology and resource status, and in view of the project's characteristics and customer needs, optimize the design and constantly improve process management. Strict testing procedures must be developed and followed for software with long project cycles, wide application fields, and high quality requirements.
The purpose of test process innovation is to develop and implement a complete project quality management system within the company. Optimize the project production mode, track and measure the production process and products, and make the production process and products in various stages controllable and measurable, to ensure that the product meets the customer's functional and Progress requirements.
3. Technological Innovation
Software testing is a professional technology in the software engineering field, rather than simply thinking that you can find a person to run the software several times to discover all the software problems. As mentioned above, software testing requirements and testing design are the key factors that determine the effectiveness of software testing. Therefore, the emphasis of strengthening testing technology innovation is on testing requirements and design innovation.
In terms of software testing technology innovation, it is necessary to avoid mistakes in the transitional pursuit of automated testing technology. Automated Testing can indeed significantly improve test efficiency and accuracy in some aspects, but it is only suitable for testing the quality of some aspects of the software (such as performance testing, regression testing, etc ), about 80% of Software defects were discovered through manual testing by testers.
For software features that require automated testing in particular, it is necessary to enhance the development of software testing tools, rather than relying entirely on existing testing tools on the market. This is because of the wide variety of commercial tools, high prices, long training and learning cycles, improper selection will cause a huge waste.
4. Management Innovation
The purpose of software test management is to achieve the optimal balance between software quality, progress, and cost. Effective test management requires the cooperation of enterprise management, software development team, quality assurance and testing team, and the establishment of efficient teams by planning, organizing, leading and controlling measures to develop a complete test process, do a good job in test design, effectively execute tests, and strengthen process tracking so as to successfully complete quality assurance and testing tasks.
The core of test management innovation is software quality and testing team building. Software Quality and testing are technology-intensive activities, the knowledge structure, creativity and cohesion of the team are the basis for ensuring the full implementation of the testing process and testing technology. The focus of quality and testing team building is to set up and cultivate various technical and management talents for effective communication and form a sound evaluation and promotion mechanism.
Another focus of test management innovation is the construction of the test management platform. This includes building an integrated system for testing project management to effectively manage and control the company's product and project data information in sequence, so that project data is transparent and technical knowledge can be effectively inherited, data-based and graphical project quality and progress. You can purchase commercial software testing management tools or develop software testing management tools based on the company's current situation.
Technical roadmap for Software Testing
If we call the software testing method a testing strategy, to make full use of the practical significance of the testing strategy, we need to transform the testing strategy into testing tactics. Seamless integration of the tested "channels" and "techniques" can significantly, continuously, and gradually improve the quality of software products. The tactics for implementing software testing are a combination of a series of processes, involving testing team building, process design, testing platform, and test management.
1. Test team building
The test team can be the test department or test group. The company size determines the size and organization of the test team. The construction of a test team should follow two principles: first, the test team must be independent of the development team, rather than the development team, to achieve the independence and impartiality of the test; second, the testing team must have a clear working goal, that is, to identify and report Software defects, to promote and confirm defect fixes, to assist in software development process improvement and improve the overall quality of software.
The software testing team can set multiple positions based on their scale. Each position has clear responsibilities, for example, test Department Manager, test project manager, test team lead, test architect, Senior Test Engineer, test engineer, etc. For a newly established testing team, one person can hold multiple positions and complete multiple testing tasks. The total number of testers should be compatible with those of developers, preferably between and.
2. Process Design
The test process design must correspond to the software design process. The basic test procedures include test requirement analysis, test plan design, test case design, test execution, test evaluation, and test summary.
Test requirements are analyzed based on the software requirements and software design specifications. The purpose of the test requirement analysis is to clarify the objects, features, scopes, and methods to be tested, so as to develop a test plan and determine the test strategy.
The test plan is designed to effectively configure the test process, personnel and tools, make full use of existing resources, and organize effective tests according to the project schedule. The output of the test plan design is the test plan document, which is a programmatic document that guides software testing activities.
Test Case design is the key content to guide the specific test content and methods. If you need to perform an automated test, you also need to rely on the test case design to generate the corresponding test script. The output results of the test case design are different types of test cases. These test cases must be designed, reviewed, stored, and updated in a standard and consistent manner.
Test execution is the phase of release and reporting of Software defects. Test content is allocated based on the progress of the software plan to build a test environment and run the test program and program documentation based on test cases. The output result of the test execution is the defect report and Test Progress Report.
Test evaluation is the process of measuring the efficiency and effectiveness of software test execution. The input of test evaluation is the execution of test cases and the report data of Software defects. The output of test evaluation includes effectiveness analysis of test cases, type and Effectiveness Analysis of Software defects, test progress and effectiveness analysis.
The test summary includes the daily or weekly test process summary, and the test project summary after the test project is completed. The output of the Test summary is the test summary report, which provides an overall evaluation of the software quality, points out the existing problems in the test, puts forward improved methods and processes, and provides a total of effective testing experience.
3. Test Platform Design
The test platform design includes the design of the test technical platform and the design of the test management platform. The testing technical platform includes designing a testing environment, designing or setting up testing tools. The test management platform design includes testing document system design, test version configuration management, defect database design, testing progress and quality analysis system design.
The design of the testing technology platform should organize software, hardware, databases and networks according to the testing content and environment requirements of the test plan. This is often a time-consuming task, at the same time, it affects the correctness of the test and must be completed as soon as possible at the start of the test. It is best to back up and save the established test environment in an effective way so that it can be quickly restored and reused in the future.
The design of the Test Management Platform affects the complexity of test management. A good test management platform allows test management personnel to conveniently track, query, and analyze the test progress and evaluate the testing performance, evaluate the overall quality of the test. Test technicians can easily search for test objects and documents, report and output test results, share test data, and improve test efficiency.
4. Test Management
Test Management focuses on interactions and changes of personnel, processes, and products. Test Management includes project plan and organizational structure management, test phase management, and time, resources, and quality management, document management and team management. The test department manager, test project manager, and test team lead are the main executors of test management. They must work closely with test team members, developers, and company management personnel.
To enhance test management, we need to ensure that the test data information flow is smooth, so that the test team, Development Team, and quality assurance team can communicate effectively. Other content of test management includes participation of team members in various trainings, objective and positive performance evaluation, identification of project test risks, implementation of human resources, information sharing, controllable progress, risk avoidance, and cost reduction, improve quality.
Conclusion
Improving Software quality is an important factor in improving product competitiveness. Strengthening software testing innovation is a practical method to significantly improve software quality. Software testing innovation is a step-by-step process. Starting from the establishment of a complete quality management system, through team building, optimization process, and technical innovation, we will strengthen management to achieve harmonious unity of personnel, processes, and technologies, improve the testability and controllability of software quality.