functional testing

Announce Upload video
functional testing
Collection
zero Useful+1
zero
functional testing It is to verify the functions of the product test case Test item by item to check whether the product meets the functions required by the user.
Chinese name
functional testing
Foreign name
functional test
Purpose
Verify the functions of the product
Applied discipline
Communication technology; function Maintenance and management

functional testing

Announce
edit

definition

Functional testing (Function test ), also known as behavioral testing, tests a product's characteristics and operable behaviors according to product characteristics, operation descriptions, and user scenarios to ensure that they meet design requirements. localization Software Function test of for verification application program Or the website works correctly for the target users. Using the right platform browser and Test script To ensure that the experience of the target user will be good enough, like application program It is specially developed for this market. Functional testing is the testing of software according to functional requirements in order to ensure that the program runs in the expected way. All features and functions of a system are tested to ensure compliance with requirements and specifications.
Function test is also called Black box Test or Data driven testing , only the functions to be tested need to be considered, and the internal structure and code of the whole software need not be considered framework Starting from the requirements test case The input data will be evaluated between the expected results and the actual results, so as to make the product meet the user's requirements.

application

Printed circuit board, also known as printed circuit board, Printed circuit board PCB (printed circuit board) is an important electronic component, the support of electronic components, and the provider of circuit connection of electronic components. Because it is made by electronic printing technology, it is called "printed" circuit board.
Before the appearance of printed circuit board, the interconnection between electronic components depended on the direct connection of wires to form a complete circuit. Circuit breadboard only exists as an effective experimental tool, while printed circuit board has become an absolute dominant position in the electronic industry.
At the beginning of the 20th century, in order to simplify the production of electronic machines, reduce wiring between electronic parts, reduce production costs and other advantages, people began to study the method of replacing wiring with printing. Over the past three decades, engineers have constantly proposed to add metal conductors to insulated substrates for wiring. The most successful was that in 1925, Charles Ducas of the United States printed a line pattern on an insulated substrate, and then successfully established conductors for wiring by electroplating. [1]
Until 1936, Paul Eisler, an Austrian, published the foil technology in Britain. He used printed circuit boards in a radio device; In Japan, Yoshisuke Miyamoto successfully applied for a patent by using the spray wiring method, "メリコンコンンㄗンㄗンンㄗンㄗ𞦽ヺӥӥӥ. Paul Eisler's method is the most similar to today's printed circuit boards. This kind of method is called subtraction method, which is to remove unnecessary metal; Charles Ducas and Yoshisuke Miyamoto only added the necessary wiring, which is called the addition method. However, due to the high heat generated by the electronic parts at that time, it was difficult to use the substrates of the two together [1], so there was no formal practical use, but it also made the printed circuit technology further.

development

In 1941, the United States painted the talc with copper paste as wiring to make proximity Information management
In 1943, Americans used this technology in a large number of military radios.
In 1947, epoxy resin was used as a base plate. At the same time, NBS began to study manufacturing technologies such as forming coils, capacitors and resistors with printed circuit technology.
In 1948, the United States officially recognized the invention for commercial use.
Since the 1950s, transistors with low heating capacity have largely replaced vacuum tubes, and printed circuit board technology has been widely adopted. At that time, etching foil film technology was the mainstream [1].
In 1950, Japan used silver paint on glass substrate for wiring; And paper phenolic substrate (CCL) made of phenolic resin with copper foil as wiring. [1]
In 1951, with the appearance of polyimide, the heat resistance of the resin was further improved, and the polyimide substrate was also manufactured. [1]
In 1953, Motorola developed a double-sided plate with electroplated through hole method. This method is also applied to the later Multilayer circuit board On. [1]
In the 1960s, after 10 years of extensive use of printed circuit boards, their technology has become increasingly mature. Since Motorola's double-sided board came out, multi-layer printed circuit boards began to appear, which made the area ratio of wiring and substrate even higher.
In 1960, V. Dahlgreen used a metal foil film with printed circuits to stick it in a thermoplastic plastic to create a flexible printed circuit board. [1]
In 1961, Hazeltine Corporation of the United States referred to the electroplating through hole method to produce multilayer boards. [1]
In 1967, "Plated up Technology", one of the layer adding methods, was published. [1][3]
In 1969, FD-R manufactured flexible printed circuit boards with polyimide. [1]
In 1979, Pactel published "Pactel Method", one of the layer adding methods. [1]
In 1984, NTT developed the "Copper Polyimide Method" for thin film circuits. [1]
In 1988, Siemens Developed the layering PCB of Microwiring Substrate. [1]
In 1990, IBM developed the layer added printed circuit board of the Surface Laminar Circuit (SLC). [1]
In 1995, Panasonic developed the AL Ⅳ H multilayer printed circuit board. [1]
In 1996, Toshiba developed the B2it multilayer printed circuit board. [1]
At the end of the 1990s, when many schemes for adding layers of printed circuit boards were proposed, a large number of additional layers of printed circuit boards were formally applied.
It is important to develop a robust test strategy for large, high-density printed circuit board assembly (PCBA) to ensure compliance with the design and function. In addition to the establishment and testing of these complex assemblies, the money invested in electronic parts alone may be very high - when a unit reaches the final test, it may reach 25000 dollars. Because of this high cost, finding and repairing assembly problems is an important step. Today's more complex assembly is about 18 square inches, 18 layers; There are more than 2900 elements on the top and bottom surfaces; It contains 6000 circuit nodes; More than 20000 welds need to be tested.
In Lucent Acceleration's manufacturing plant (N. Andover, MA), we manufacture and test art PCBA and complete transmission system. Assemblies with more than 5000 nodes are a concern for us because they are close to the resource limit of our existing ICT (in circuit test) equipment (Figure 1). We manufacture about 800 different PCBA or“ node ”。 Among the 800 types of nodes, about 20 are in the range of 5000~6000 nodes. However, this number is growing rapidly.
New development projects require more complex, larger PCBA and tighter packaging. These requirements challenge our ability to build and test these units. Further, larger boards with smaller components and a higher number of nodes may continue. For example, a design that is drawing a circuit board diagram has about 116000 nodes, more than 5100 components, and more than 37800 solder joints that require testing or validation. This unit also has BGA on the top and bottom, and BGA is next to each other. Use traditional Needle bed It is impossible to test this size and complexity board by ICT.
stay manufacturing process Especially in testing, the increasing complexity and density of PCBA is not a new problem. Aware that increasing the number of test pins in the ICT test fixture is not the direction to go, we began to observe alternative circuit confirmation methods. Seeing the number of probes that are untouched per million, we found that when there are 5000 nodes, many errors found (less than 31) may be due to probe contact problems rather than actual manufacturing defect (Table 1). Therefore, we set about reducing the number of test pins, rather than increasing them. Nevertheless, the quality of our manufacturing process is evaluated to the whole PCBA. We decided that the combination of traditional ICT and X-ray layering is a feasible solution.

Black box test

Announce
edit

summary

Black box test Black-box Testing , also known as functional testing or Data driven testing )Think of the test object as a black box. Using black box test method dynamic test It is necessary to test the function of the software product without testing the internal structure and processing process of the software product.
For example, black box technology design test case The methods of Cause and effect diagram And integrated strategy.
Black box testing focuses on testing the functional requirements of software, that is, black box testing software engineer Derive the input conditions of all functional requirements of the executive program. Black box testing is not White box test It is used to assist white box testing to find other types of errors.
The black box test attempts to find the following types of errors:
(1) Function error or omission
(2) Interface error
(3) data structure Or external database access error
(4) Performance error
(5) initialization And termination errors

Use Case Design

(1) Equivalence class division method
(2) Boundary value analysis method
(3) Error conjecture method
(4) Cause and effect diagram method
(5) Judgment Table driven Analytical method
(6) Orthogonal experimental design method
(7) Function diagram analysis method
Equivalence class division
It is to divide all possible input data, that is, the input field of the program into several parts (subsets), and then select a few representative data from each subset as the test Use Case This method is an important and commonly used black box test case design method.
Divide equivalence classes
An equivalence class is a subset of an input field. In this subset, each input data is equivalent to exposing errors in the program. It is reasonable to assume that testing the representative value of an equivalence class is equivalent to testing other values of this class. Therefore, all input data can be reasonably divided into several equivalence classes, Taking one data from each equivalence class as the input condition of the test, you can use a small amount of representative test data to obtain better test results. There are two different cases of equivalence class division: effective equivalence class and invalid equivalence class.
Effective equivalence class: refers to the set of input data that is reasonable and meaningful for the specification of the program. The effective equivalence class can be used to verify whether the program has achieved the functions and performance specified in the specification.
Invalid equivalence class: It is the opposite of the definition of valid equivalence class.
When designing test cases, the two equivalence classes should be considered at the same time. Because software should not only be able to receive reasonable data, but also be able to withstand unexpected tests. Such tests can ensure that software has higher reliability.
method
Here are six principles for determining equivalence classes.
① If the input condition specifies the value range or the number of values, one valid equivalence class and two invalid equivalence classes can be established.
② When the input condition specifies the set of input values or the "must do" condition, a valid equivalence class and an invalid equivalence class can be established.
③ When the input condition is a Boolean quantity In the case of, a valid equivalence class and an invalid equivalence class can be determined.
④ Under the condition that a set of values of input data is specified (assuming n values), and the program needs to process each input value separately, n effective equivalence classes and an invalid equivalence class can be established.
⑤ When the rules that input data must follow are specified, one valid equivalence class (conforming to the rules) and several invalid equivalence classes (violating the rules from different angles) can be established.
⑥ When it is confirmed that the elements in the divided equivalence class have different ways of processing in the program, the equivalence class should be further divided into smaller equivalence classes.
Design Case
After the equivalence class is established, the equivalence class table can be established to list all the divided equivalence classes:
Valid equivalence class of input condition Invalid equivalence class
... ... ...
... ... ...
Then design test cases from the divided equivalence classes according to the following three principles:
① Specify a unique number for each equivalent class
② Design a new test case to cover as many effective equivalence classes as possible, and repeat this step until all effective equivalence classes are covered
③ Design a new test case to cover only one invalid equivalence class that has not been covered. Repeat this step until all invalid equivalence classes are covered
Boundary value analysis
The boundary value analysis method is a supplement to the equivalence class division method
⑴ Consideration of boundary value analysis method:
Long term testing experience tells us that a large number of errors occur at the boundaries of the input or output range, rather than within the input/output range. Therefore, more errors can be found by designing test cases for various boundary conditions
When using boundary value analysis method to design test cases, the boundary conditions should be determined first. Generally, the boundary conditions of input and output equivalence classes are the boundary conditions that should be tested emphatically. Values that are exactly equal to, just greater than or just less than the boundary should be selected as test data, rather than typical values or arbitrary values in equivalence classes
⑵ The principle of selecting test cases based on boundary value analysis method:
1) If the input conditions specify a range of values, the values just reaching the boundary of the range and the values just exceeding the boundary of the range shall be taken as the test input data
2) If the number of values is specified in the input conditions, the maximum number, the minimum number, one less than the minimum number, and one more than the maximum number shall be used as the test data
3) Use the previous principle 1) according to each output condition specified in the specification
4) Apply the previous principle 2) according to each output condition specified in the specification
5) If the input field or output field given in the specification of the program is an ordered set, the first element and the last element of the set should be selected as test cases
6) If an internal data structure is used in the program, the value on the boundary of the internal data structure should be selected as the test case
7) Analyze the specification to find out other possible boundary conditions
Error conjecture
Error conjecture: a method to infer all possible errors in the program based on experience and intuition, so as to design test cases pertinently
The basic idea of error inference method: list all possible errors and special cases prone to errors in the program, and select test cases according to them For example, in unit testing Many common errors in modules are listed in the Errors found in previous product tests are the summary of experience Also, the input data and output data are 0 The input table is blank or has only one row These are error prone situations Examples of these cases can be selected as test cases
Cause and effect diagram method
The equivalence class division method and boundary value analysis method introduced above focus on the input conditions, but do not consider the connection and combination of input conditions Considering the combination of input conditions, some new situations may arise But it is not easy to check the combination of input conditions. Even if all input conditions are divided into equivalent classes, there are quite a lot of combinations between them Therefore, we must consider designing test cases in a form that is suitable for describing the combination of multiple conditions and generating multiple actions accordingly This requires the use of Cause and effect diagram (logical model)
The cause and effect diagram method ultimately generates Decision table . It is suitable for inspection program Various combinations of input conditions
Generate with Cause and Effect Diagram test case Basic steps of:
⑴ In the analysis software specification description, those are causes (i.e. input conditions or equivalent classes of input conditions) and those are results (i.e. output conditions), and each cause and result is given an identifier
⑵ Analyze the semantics in the software specification description, and find out the corresponding relationship between causes and results, and between causes and reasons Draw a cause and effect diagram according to these relationships
⑶ Due to grammar or environmental constraints, some combinations between causes and between causes and results are impossible In order to indicate these special circumstances, some marks are used on the cause and effect diagram to indicate constraints or restrictions
⑷ Convert the cause and effect diagram into a decision table
(5) Take each column of the decision table as a basis to design test cases
The test cases generated from the cause and effect diagram (local, under the combination relationship) include the case of selecting TRUE and FALSE for all input data. The number of test cases formed reaches the minimum, and the number of test cases increases linearly with the increase of the number of input data
The decision table has been used in the previous cause and effect diagram method. The decision table is a tool for analyzing and expressing different operations under multiple logic conditions. In the early development of program design, the decision table has been used as a tool for writing programs Auxiliary tools Because it can express the complicated logical relationship and the combination of various conditions concretely and clearly
Decision table
It usually consists of four parts
Condition stub: lists all the conditions of the problem. It is generally considered that the order of the listed conditions is irrelevant
Action Stub: lists the possible actions of the problem specification. The order of these actions is unconstrained
Condition Entry: lists the values of the conditions in the left column. True and false values in all possible cases
Action Entry: lists the actions that should be taken under various values of condition items
Rule: the specific value of any condition combination and the corresponding operation to be performed. A rule is a column that runs through condition items and action items in the decision table. Obviously, judging how many groups of condition values are listed in the table means how many rules exist, that is, how many columns there are for condition items and action items
Establishment steps
(according to the software specification)
① Determine the number of rules. If there are n conditions and each condition has two values (0,1), there are five rules:
② Lists all condition piles and action piles.
③ Fill in condition items.
④ Fill in the action item. Wait until the initial Decision table
⑤ Simplify. Merge similar rules (same action).
B. Beizer pointed out the conditions suitable for using the decision table to design test cases:
① The specifications are given in the form of a decision table, or can be easily converted into a decision table.
② The order of the conditions does not and does not affect what operations are performed.
③ The order in which rules are arranged does not and does not affect what operations are performed.
④ Once the conditions of a rule have been met and the operation to be performed is determined, it is not necessary to verify other rules.
⑤ If a rule is satisfied, multiple operations need to be executed, and the execution order of these operations does not matter. [1]

advantage

1. Basically, no one is in charge. If program When it stops running, it is usually Test procedure Crash
2. After designing the test case, the next task is to be happy. Of course, it is more frustrating to determine the cause of the crash

shortcoming

1. The result depends on the design of the test case. The design part of the test case comes from experience. The OUSPG is worth learning from
2. There is no concept of state transition. Some successful examples are basically done for PDU, but not for the state transition of the tested program
3. As for the test without state concept, it is troublesome to find and determine the test cases that cause the program crash, and the surrounding possible test cases must be confirmed separately. For stateful testing, it is more troublesome, especially not caused by a single testcase. These are more prominent in the heap problem.

Selection of tools

So, how to efficiently complete functional testing Select an appropriate function test tool and train a high-quality Tool use The team is undoubtedly crucial. Although at this stage there are a few software service enterprises that do not use any functional testing tools and are engaged in functional testing outsourcing projects. In the short term, the profitability of such enterprises is fair, but in the long run, they are very likely to be replaced by software service enterprises with a high degree of automation.
For functional testing Tool software There are many, and tools for software with different architectures are constantly innovating. This article focuses on one of the more typical automated testing tools, namely, WinRunner of Mercury.
WinRunner is an enterprise class tool used to verify that applications can run as scheduled Software functional testing Tools. WinRunner can identify most software functions by automatically capturing, detecting and simulating user interaction defect To ensure that those across multiple function points and data base Of application program Try not to have functional failure when publishing.
WinRunner is characterized by: Manual test In contrast, it can quickly and batch complete function point testing; It can execute the same action for the same test script, thus eliminating the understanding error caused by manual testing; In addition, it can repeat the same action, and the most boring part of the test work can be completed by the machine; It supports program Style test script, with which a high-quality test engineer can complete tests with extremely complex processes, and reuse test scripts well by using wildcards, macros, conditional statements, circular statements, etc; It provides a better integration and support environment for most programming languages and Windows technology, which brings great convenience to the implementation of functional testing of applications based on Windows platform.