In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-03-28 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >
Share
Shulou(Shulou.com)06/02 Report--
This article mainly explains "what are the basics of software testing". Interested friends may wish to take a look. The method introduced in this paper is simple, fast and practical. Let's let the editor take you to learn the basics of software testing.
1. What is software testing?
In a broad sense, software testing is all the inspection, review and confirmation work in the software life cycle, including the review and confirmation of all kinds of documents and codes in the analysis, design stage and post-development confirmation phase. In a narrow sense, it is the process of identifying software defects, that is, the actual results are inconsistent with the expected results.
2. What is the goal of software testing?
The ultimate goal is to ensure that the software functions meet the needs of users and to find and correct as many defects as possible before the product is released or delivered.
3. The principles of software testing?
Good-enough principle. A principle of weighing the input / output ratio. Ensure test coverage, but exhaustive testing is impossible. All tests should be traced back to user requirements. The sooner you test, the better. The testing process and the development process should be combined. The scale of testing ranges from small to large, from unit testing to system testing. In order to find errors as much as possible, testing should be carried out by an independent third party. Do not modify the program for testing purposes. You should test both what the software should do and what the software should not do. The test just shows the defect. Testing can only show that there are defects, but can not prove that there are no defects. Testing can reduce the probability of remaining unfound defects, but can not prove that the software is absolutely correct. Exhaustive testing is impossible. Testing all combinations of inputs and conditions is impossible and can be replaced by tests based on risk and priority. There are clusters of defects. It is necessary to put more tests into modules with a high incidence of defects. A small number of modules tend to hide most of the defects. Modules with high incidence of defects are often associated with unclear requirements, improper design and high coding complexity, so they must be higher from a risk point of view. Pesticide paradox. After repeating the same test many times, the defect can no longer be found. If test cases are constantly reviewed and modified, and new and different tests are constantly added, it is possible to find more defects. The test is context-related. Tests are performed differently in different contexts. There is no wrong fallacy. Even if most of the defects in the system are modified, it is not helpful to find and fix the defects if the system itself deviates from the user's requirements.
4. The measurement of software testing?
Test coverage: how many requirements and code have been tested.
Defect detection rate: when the defect was discovered, and how many defects have been found, defects can be classified according to severity, the data to be recorded are: the number of defects, the severity of defects and so on.
Test success rate: how many test cases have passed and how many are running normally? the data to be recorded are: the number of passed test cases, the number of failed test cases, the number of test cases that have been executed, and so on.
5. How many tests will be enough?
It depends on the degree of risk (commercial risk and technical risk) and project constraints (time and funding).
6. What is the difference between debugging and testing?
The debugging for developer finds the cause of the defect, fixes the code, and confirms that the defect has been fixed; the test for tester identifies the defect.
7. what are the main steps of the test?
Planning and control; analysis and design; implementation and implementation; evaluation of export guidelines and reports; test termination activities.
8. What is regression testing?
Regression testing refers to retesting after modifying the old code to make sure that the modification does not introduce new errors or cause errors in other code.
9. What is the standard of the test?
The standard of testing is the needs of the user.
10. Why avoid testing your own programs?
When testing your own program, it is easy to test along the way you write the code, and rarely think about it from other angles. based on this mindset, it is difficult to find potential errors.
Due to psychological factors, people subconsciously do not want to find their own mistakes. Based on this mindset, it is difficult for people to find their own mistakes. A certain degree of independent testing can find software defects and software failures more efficiently.
11. What are the elements of software testing?
Quality. Software quality is the goal of software testing and the center of software testing work. Everything starts from quality, that is, everything starts from the needs of customers. Anything that violates quality is a problem, and testing is to find out.
Personnel. People are the decisive factor, and the attitude, quality and ability of testers determine the effect of testing, and also have a great impact on the quality of testing products. Tester factors include the definition of test organizational structure, roles, and responsibilities.
Technical. Software testing technology, including methods and tools.
Resources. It mainly refers to the hardware equipment, network environment, and even test data needed in the test environment. Another important factor is test time, which is also a test resource.
Process. Set the entry and exit criteria for each stage from the creation and review of test plans and test cases to the execution and reporting of tests.
12. What is software quality?
The sum of the features of the software, the ability of the software to meet the requirements of specified or potential users.
13. The difference between software testing and software quality assurance?
Software testing is only a link in the assurance work. Software quality assurance and software testing are two different aspects of software quality engineering.
In terms of nature, software testing belongs to technical work, while software quality assurance belongs to management work; from the object point of view, the object of software testing is the software product, and the object of quality assurance is the whole software process, covering all areas at the company level; in terms of means, software testing is dominated by ex post testing, while software quality assurance emphasizes the prevention of defects.
14. What are the basic responsibilities of the test team?
Find all problems in software programs, systems or products, and find problems as soon as possible. Supervise and assist developers to solve defects in the program as soon as possible, and help project managers to make reasonable development plans. Track, analyze, classify and summarize defects so that project managers and relevant responsible personnel can have a timely and clear understanding of the current quality status of the product.
Help improve the development process and improve the efficiency of product development. Promote the standardization, readability and maintainability of the program.
What is the defect detection rate (DDP)?
DDP=Bugs (tester) / (Bugs (tester) + Bugs (customer))
Bug/ discovered by testers (bug discovered by bug+ users)
What is a unit test?
Definition: also known as module testing, is the testing work for checking the correctness of the smallest unit program module designed by the software; test cases can be designed from the internal structure of the program, and multiple module tests can be tested independently in parallel.
Objective: to find all kinds of errors that may exist in the module.
Content: module interface test (data inflow and outflow), local data structure test, path test, error handling test, boundary test.
Steps: use the design document to design the test case; create the pile module or driver module of the tested module; use the tested module, driver module and pile module to establish the test environment and test.
17. What is integration testing?
Definition: also known as assembly testing or joint testing, all modules are assembled according to outline design and detailed design on the basis of unit testing.
Objective: to find all kinds of errors that may exist in the interface in the module connection.
Content: whether the data between traversing modules will be lost; whether one module will have an impact on another module or other modules after assembly; whether each sub-function will achieve the expected parent function; whether there is a problem with the global data structure.
Assembly method: one-time assembly, multiplication assembly.
Completion flag: all test cases specified in the test plan have been successfully executed; errors found have been corrected; test results have been reviewed by the special team.
18. What is system testing?
Objective: to verify and confirm whether the system achieves its original goal, and to test the integrated hardware and software system.
Test content: in the real or simulated system operating environment, check whether the complete program system can be correctly configured and connected with the system (hardware, network, software) to meet the needs of users.
19. What is acceptance testing?
Objective: to test in the user environment to determine whether the system and products can meet the requirements specified by the contract or the user.
Content: test and review the whole system according to the task book or contract and the acceptance agreed by both suppliers and demanders, and confirm whether to accept or reject the system.
20. What is static testing?
Also known as static analysis technology, do not execute the software under test, and find out the errors of the software, such as requirements analysis specification, software design specification, source program structure inspection, flow diagram analysis, symbol execution and so on.
21. What is dynamic testing?
The process of finding program errors is achieved by inputting a set of instance data constructed in advance according to certain test criteria to run the program dynamically.
22. What is automated testing?
Automated testing is a process of transforming human-driven testing behavior into machine execution.
23. What are the design principles of test cases?
A single use case covers the principle of minimization. Each test case should be as simple as possible, verifying only what you want to verify.
Test cases replace the functional principles of product documentation.
The principle of single input cost and multiple input cost.
The principle of minimizing test result analysis and debugging (for the extension and continuation of automated test cases).
What is an Alpha test?
It is a kind of acceptance testing, which is conducted by the user in the developer's place, while Alpha testing is carried out in a controlled environment.
What is the Beta test?
Is a kind of acceptance testing, conducted by the end user of the software in one or more user sites, the developer is usually not on site, and the user records the problems encountered during the test and reports them to the developer.
26. How to conduct unit testing?
The contents include: interface test, internal data structure, global data structure, boundary test, path test, error handling test.
27. What are the advantages and disadvantages of manual testing and automated testing?
Manual testing: the disadvantage is that the testing workload is heavy, there are many repetitions, and the regression testing is difficult to implement.
Automated testing: use software testing tools to automatically achieve all or part of the testing work, manage, design, execute and report, save a lot of testing overhead, and be able to complete some tests that can not be achieved by manual testing.
The whole process of completing the test by hand can not guarantee the science and rigor of the test: the more defects are modified, the more difficult the regression test is; no one can provide accurate data to the decision-makers to measure the current work progress and work efficiency; the burnout and other human factors caused by repeated testing make the test standards inconsistent; the longer the test takes, the lower the rigor of the test. Automated testing frees testers from repeated and cumbersome test execution, and spends more time on test design and result analysis: software testing cannot be completely automated; it cannot complete all manual testing tasks; it is uncreative and inflexible and cannot improve the effectiveness of testing; many unexpected problems may be encountered in the process, especially when the software is unstable; the maintenance cost of test scripts is high.
What are the methods of test case design?
Equivalent class division method; boundary value analysis method; scene method; orthogonal test method; causality diagram; decision table; error inference method.
29. What is a test plan?
The documents developed according to the relevant documents of the project to guide the whole testing process need to define the test scope, test strategy, personnel allocation, software and hardware configuration, schedule and goals to be achieved at each stage of the testing process.
30. What are the key contents of the test case?
There are 6 key contents: use case number, use case description, prerequisites, input data, test steps and expected results.
31. What are the ways to find the missing problems?
Instructions are the basis and standard; relevant change emails, discussion notes; irregularly read other people's defects; communicate more with developers; selectively revalidate previous defects; pay attention to change; simple way of thinking, focus on the main line, reduce major omissions.
32. The concept of agile development? ? A human-centered, iterative, step-by-step development approach. Individuals and interactions are better than processes and tools; software that works is better than comprehensive documentation; customer cooperation is better than contract negotiation; responding to changes is better than following plans.
33. What are the principles of agile development?
Customer satisfaction through early and continuous delivery of valuable software; even in the later stages of development, changes in requirements are welcome, and agile processes take advantage of change to create a competitive advantage for customers; regular delivery of working software, delivery intervals can range from a few weeks to a few months, the shorter the delivery interval, the better Throughout the development of the project, business people and developers must work together every day; build the project around motivated individuals, provide them with the environment and support they need, and trust them to get the job done
Within the team, the most effective and efficient way to convey information is face-to-face conversation; working software is the primary measure of progress; agile processes promote sustainable development speed. Responsible people, developers and users should be able to maintain a long-term and constant development speed; constant attention to good skills and good design will enhance agile capabilities
Simplicity is the most fundamental; the best architecture, requirements, and design come from the organizational team; at regular intervals, the team reflects on how to work more effectively, and then adjusts its behavior accordingly.
34. What is agile testing?
Agile testing is a new testing process, method and practice adapted to agile development methods. To put it simply, agile testing is continuous and timely feedback on software quality issues.
What is a software defect (bug)?
Software defects refer to the defects in the system or system components that cause the system or components to fail to achieve their due functions. Such as:
The software does not realize the function required by the product specification.
There is an error in the software that the product specification indicates that it should not occur.
The software realizes the functions that are not described in the product specification.
The software did not achieve the goal that the product specification did not explicitly mention but should achieve.
The software is difficult to understand, difficult to use, slow to run, or software testers think the end user will think it is not good.
36. Requirements for submitting defects (bug)?
The basic requirements of Bug description are: accurate classification, concise description, clear steps, clear description of actual results, and evidence for complex problems.
Problem description: module or function-test steps-expected results-actual results-other information.
Abstract words are not allowed for singleness, conciseness, reproduction, complex problems and reports.
37. White box testing?
White-box testing is also called structural testing, logic-driven testing, or program-based testing. It is generally used to analyze the internal structure of the program. White-box testing requires a certain degree of coverage of the structural characteristics of the program under test.
Control flow test:
Statement coverage criteria: statement coverage testing is one of the simplest structural testing methods, requiring that every statement in the program be run during the test. In a control flow diagram, all statements are required to be run if and only if all nodes in the graph are covered.
Branch coverage criteria: branch testing requires that each branch gets a "true" value and a "false" value at least once in software testing. Branch coverage test contains statement coverage test
Predicate test: the condition of a branch is composed of predicates, a single predicate is called atomic predicate, and atomic predicate can form a compound predicate through logical operators (or, and, not).
Atomic predicate coverage criterion: in software testing, every atomic predicate contained in each compound predicate is required to obtain at least one true value and one false value. There is no inclusion relationship between the atomic predicate coverage criterion and the sentence coverage criterion, and there is no inclusion relationship between the atomic predicate coverage criterion and the branch coverage criterion.
Branch-predicate coverage criterion: in software testing, not only every atomic predicate contained in each compound predicate obtains at least one true value and one false value, but also each compound predicate itself obtains at least one true value and one false value. The branch-predicate coverage criterion includes sentence coverage criterion, branch coverage criterion and atomic predicate coverage criterion.
Compound predicate coverage criterion: requires that the various possibilities of predicates in each condition appear at least once in software testing. The compound predicate coverage criterion includes sentence coverage criterion, branch coverage criterion, atomic predicate coverage criterion and branch-predicate coverage criterion.
Path coverage criteria: the entire path of the program is required to be observed, and the operation of the program is required to cover all complete paths. The path coverage criterion contains the branch coverage criterion, but it has no inclusion relationship with the predicate test.
38. TDD (Test-Driven Development Test-driven Development)?
TDD requires that before writing the code of a function, write the test code, and then only write the function code that makes the test pass, through the test to promote the whole development. This helps to write concise, available and high-quality code and speed up the development process.
39. What are the steps of designing test cases by causality diagram?
① analyzes requirements, extracts causality, and assigns identifiers; ② analyzes requirements, extracts inputs and outputs, and represents them as causality diagrams; ③ marks the constraints on causality diagrams; ④ converts causality diagrams into decision tables; ⑤ designs test cases according to the conditions shown in each column in the decision table.
40. What are the steps of designing test cases by decision table method?
① lists all conditional posts and action posts; ② determines the number of rules; ③ fills in conditional items; ④ fills in action items; ⑤ simplifies decision tables and merges similar rules or actions.
41. What are the automated testing frameworks?
Modular framework, function library framework, data-driven framework, keyword-driven framework.
42. What are the statistical methods of test coverage? What are the differences?
Code coverage, functional module coverage, requirements coverage, database coverage.
At this point, I believe you have a deeper understanding of "what are the basic knowledge of software testing?" you might as well do it in practice. Here is the website, more related content can enter the relevant channels to inquire, follow us, continue to learn!
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.