Hnust Hunan University of Science and Technology 2023 Software Testing Technology Midterm Exam Review Materials

foreword

  1. Written in a hurry, the focus is not clear, no reference value
  2. Thanks: ly, zxq
  3. Key source: The Principal
  4. ※:to add on
  5. ★: focus
  6. ✦: Personal speculation test points
  7. Exam scope: 1-9 chapters
  8. get the latest version

question type

  1. Judgment: 10
  2. Short answer: 40
  3. Applications: 36
  4. Overall: 14

focus

Software defect★

definition

Software defect refers to any kind of problem that destroys the normal operation ability of the computer or system , errors or hidden functional defects, flaws, and the result will cause the software product to be unable to meet the needs of users to some extent .

  • From the internal point of view of the product, software defects are various problems such as errors and defects in the process of software product development or maintenance ;
  • From the outside, a software defect is the failure or violation of a certain function that the system needs to achieve .

source

  1. technical problem

    Algorithm errors, syntax errors, calculation and precision issues, interface parameter transfer mismatch

  2. teamwork

    inadequate communication, misunderstanding

  3. the software itself

    • documentation error
    • User scenario
    • Problems caused by timing inconsistencies, or inconsistencies
    • System self-recovery or off-site data backup, disaster recovery, etc.

severity level

  • Minor. Some minor problems, such as individual typos, irregular text layout, etc., have almost no impact on the function, and the software product can still be used.
  • General (Major). Less serious errors, such as loss of minor functional modules, inaccurate prompt information, poor user interface and long operation time, etc.
  • Serious (Critical). Serious errors refer to functional modules or features not implemented, partial loss of major functions, loss of all minor functions, or fatal error declarations.
  • Fatal. Fatal errors, causing system crashes, crashes, or data loss, complete loss of main functions, etc.

Process flow※

image-20230513152413896

software test

reason

  • Without testing, software has no quality ;
  • If the test is not done well, software problems may cause disasters or bring huge losses to software companies .
  • Software testing is one of the important means of quality assurance and an indispensable part of the software development process .

Definition ✦

  • The active process of dynamically verifying the expected behavior of a program by selecting appropriate , finite test cases from a usually infinite execution domain (set).
  • To operate a system or component under specified conditions , to observe or record the results, to evaluate some aspect of the system
  • To analyze an item of software to find differences (i.e., errors) between existing and required conditions and to evaluate the characteristics of the item of software
  • Software testing is a whole composed of "Verification" and "Validation" activities (IEEE1012)
    • "Verification" is to verify whether the software has correctly implemented the system functions and characteristics defined in the product specification
    • "Validity Validation" is the activity of confirming whether the developed software meets the real needs of users .

Purpose ✦

  1. Improve the quality of software;
  2. Ensure the security of the software;
  3. Reduce software development costs;
  4. reduce business risk;
  5. Improve user experience.

Process ✦

  1. Analyze test requirements
  2. Create a test plan
  3. design test cases
  4. Execute the test
  5. Write test report

Classification※

Classified by test level

  • Low-level testing

    Unit testing, verifying whether software units (components/modules/classes/functions) meet software requirements and design, developers self-test.

  • interface level

    Integration testing, which combines the tested software units together to test the interface between them , is used to verify whether the software meets the design requirements.

  • system level

    System testing, where the tested software is run in an actual environment and combined with other system components (such as databases, hardware, and operators) for testing.

  • User/Business Level

    Acceptance testing is mainly to verify the software product description , and test the software product line by line according to the description of the manual to ensure that it meets the requirements of the customer.

According to the classification of test technology

  • ★Black box testing: A testing method based on requirements , treats the software (program) as a black box with input and output , and regards the program as a mapping from input domain to output domain, as long as the input data can output the expected result Yes, you don't have to care about how the program is implemented internally.

    • equivalence class division
    • boundary value analysis
    • decision table method
    • causal diagram
    • Pairwise method
    • Orthogonal test method
    • functional map
  • ★White box testing: structured testing method, testers understand the logical structure, path and running process of the software program , and get the results according to the execution path of the program during the test. White box testing is to treat the software (program) as a transparent box, and testers clearly know every step of the process from input to output .

    • statement coverage
    • decision coverage
    • condition coverage
    • Judgment condition coverage
    • Condition combination coverage
    • base path coverage

Classification according to software quality characteristics

  • Functional testing: to test whether the functions of the software meet the needs of customers, including accuracy, ease of use, suitability, interoperability, etc.
  • Performance testing: Test whether the performance of the software meets the needs of customers. Performance testing includes load testing, stress testing, compatibility testing, portability testing, and robustness testing.

Classified by degree of automation

  • Manual testing: Testers execute the code one by one to complete the testing work. It is time-consuming and labor-intensive, and it is very difficult to verify and ensure the test effect.
  • Automated testing: use scripts, automated testing tools, etc. to complete the corresponding testing work. It also requires manual participation, but it can write the test code or process to be executed into a script, and execute the script to complete the entire testing work.

Classified by test items

  • Interface test: verify whether the software interface meets customer needs.
  • Security testing: test how the software handles attacks or malicious damage by unauthorized internal or external users, and whether it can ensure the security of software and data.
  • Documentation testing: Focusing on requirements analysis, software design, user manuals, and installation manuals, mainly verifying whether there are differences between document descriptions and actual software.

According to whether the program is running or not during the test★

  • static test

    Including review of software product requirements and design specifications, review of program code and static analysis, etc.

  • Dynamic Testing

    • Find errors by actually running the program, and obtain information about system behavior, real-time variable results, memory, stack, thread, and debugging coverage by observing the code running process to determine whether there is a problem with the system
    • Analyze the operation of the program under test through valid test cases and corresponding input/output relationships to find defects

Classification by Test Purpose/Test Type

  1. Functionality Testing (Functionality Testing), also known as Correctness Testing (Correctness Testing), verifies whether each function works normally according to the pre-defined requirements.

  2. Performance Testing (Performance Testing): Evaluate and analyze the system operation and performance indicators of the system under different load conditions (such as concurrent users, number of connections, requested data volume, etc.).

    ★Stress Testing can also be regarded as a performance test, focusing on system operation under high load and extreme load to find problems such as system instability, system performance bottlenecks, memory leaks, and high CPU usage.

  3. Security Testing (Security Testing): Test the system's ability to defend against unauthorized internal/external access and intentional damage.

  4. Compatibility Testing (Compatibility Testing): Test the actual performance of the system in different operating environments (such as network, hardware, third-party software, etc.), including the verification of coexistence and interoperability.

  5. Reliability Testing (Reliability Testing): Check whether the system can maintain long-term stable and normal operation, such as determining the uptime, that is, the mean time between failures (Mean Time Between Failures, MTBF). Reliability testing includes robustness testing (Robustness Testing) and exception handling testing (Exception Handling Testing).

    Recoverability testing (Recovery Testing) can also be classified as reliability testing, focusing on the ability to restore the system and data after a system crash, hardware failure or other disasters.

  6. Usability Testing (Usability Testing): Also known as user experience testing, check whether the software is easy to understand, easy and smooth to use, beautiful interface, friendly interaction, etc.

  7. Regression Testing (Regression Testing): A test conducted to ensure that new changes in the software (such as newly added codes, code modifications, etc.) will not affect the normal use of the original functions. In other words, the original functions that meet user needs should not cause any new problems due to code changes.

Other categories

  • α test★: The version test before the software goes online . Testing is performed with the assistance of developers and testers or users. Testers record errors and problems that occur during use, and the entire testing process is controllable .
  • β test★: The version test after the software goes online . Errors and problems are found and recorded by users during use, and then fed back to developers for repair.
  • Gamma Test★: The gamma test is the ultimate test . After testing, the software is almost final for the market. At this time, no further functional development or improvement of the software is carried out. The only possible fixes at this stage are code errors within a limited range.
  • Random testing: A test without test cases, checklists, scripts or instructions, it is mainly a functional and performance spot check of the software based on the experience of the tester.

The relationship between testing and quality assurance

Software Quality Assurance

Software Quality Assurance (Software Quality Assurance, SQA) activity is a system engineering that verifies whether the software meets the standards through planned reviews and audits of software products, obtains useful information through coordination, review and tracking, and forms analysis results to guide the software. process.

relation

  • SQA guides and supervises the planning and execution of software testing, urges the test results to be objective, accurate and effective, and assists in the improvement of the testing process.
  • Software testing is one of the important means of SQA, providing the required data for SQA as an objective basis for quality evaluation.
  • SQA is a management exercise that focuses on the review and monitoring of processes
  • Testing is a technical job that focuses on evaluating and validating products

software quality

definition

Software quality refers to the degree to which a software product satisfies basic and implicit requirements.

The software product meets the basic needs refers to its ability to meet the requirements specified in software development, followed by the degree to which the software product meets the implicit needs.

relationship to defects

The more defects, the poorer the quality, which is an opposite relationship; discovering defects, repairing them in time, and improving quality is a unified relationship.

Product Quality Characteristics

image-20230513213645575

method

Input Field Based Approach

equivalence class division
equivalence class
  • Each input data in a specific subset of an input field is equivalent for uncovering errors in the program
  • If no program error is found by using the representative value in this equivalence class as a test sample, then no program error will be found by other test data in this class
  • testing a representative value of an equivalence class is equivalent to testing other values ​​of that class
effective equivalence class

A valid equivalence class is a collection of valid values , which are reasonable and meaningful input data that meet the program requirements .

invalid equivalence class

An invalid equivalence class is a collection of invalid values , which are input data that do not meet the program requirements, are unreasonable, or meaningless.

division principle
  1. If the program requires the input value to be a value in a finite interval, the input data can be divided into one valid equivalence class and two invalid equivalence classes. The valid equivalence class is the specified value range, and the two invalid equivalence classes are respectively are the values ​​on both sides of the finite interval.
  2. If the program requires an input value that is a "must hold" condition, the input data can be divided into a valid equivalence class and an invalid equivalence class.
  3. If the program requires the input data to be a set of possible values, or requires the input values ​​to meet a certain condition, the input data can be divided into a valid equivalence class and an invalid equivalence class.
  4. If in a certain equivalence class, each input data is processed differently in the program, the equivalence class should be divided into smaller equivalence classes and an equivalence table should be established.
Division method
input data type rules for dividing equivalence classes rules for dividing equivalence classes
Boolean value 1 valid equivalence class: TRUE 1 invalid equivalence class: FALSE
continuous value range 1 valid equivalence class: correct value range 2 invalid equivalence classes: greater than and less than range of values
Number of data 1 valid equivalence class: number of correct data 2 invalid equivalence classes: greater than and less than the number of data
gather 1 valid equivalence class: correct collection value 1 or more invalid equivalence classes
Input data to be processed separately Multiple valid equivalence classes: 1 equivalence class for each input data 1 invalid equivalence class
input that matches certain rules Multiple valid equivalence classes: the input data conforming to a certain rule is 1 equivalence class several invalid equivalence classes
  1. interval

    If an input condition specifies a continuous range of valid values, one valid equivalence class and two invalid equivalence classes can be defined

  2. Number of data

    If an input condition specifies a constraint on the number of input data, one valid equivalence class and two invalid equivalence classes can be defined

  3. Data length

  4. type of data

example

Equivalence Class Division of Triangle Problems✦

Input 3 positive numbers a, b, c as the three sides of a triangle, and judge whether these 3 numbers form a general triangle, an equilateral triangle, an isosceles triangle, or cannot form a triangle.

  1. equivalence class table

    image-20230513091319670

  2. test case table

    1. override effective equivalence class

      image-20230513091624797

    2. override invalid equivalence class

      image-20230513091707194

Equivalence Class Division of Yu'E Bao Cash Withdrawal

Quick arrival can be accumulated and withdrawn in batches: the daily withdrawal amount of quick arrival is 10,000, which means that within one day, as long as the withdrawal amount has not accumulated to 10,000, it can be withdrawn multiple times. Accordingly, quick arrival can be subdivided into For the 1st withdrawal and the nth withdrawal, the maximum amount for the nth withdrawal is 10000 minus the amount already withdrawn.

  1. equivalence class table

    image-20230513092044646

  2. test case table

    1. override effective equivalence class

      image-20230513092222372

    2. override invalid equivalence class

      image-20230513092258958

boundary value analysis
definition

Find some points near the boundary as test data instead of selecting test data inside the equivalence class.

Select test data

image-20230513092820815

Skill※

image-20230513093503394

Upper point: point on the boundary (green)

From point: the point closest to the boundary (yellow)

Inner point: point within the range (blue)

  1. Upper point: Mandatory (regardless of interval opening and closing)
  2. Inner point: required (recommended to choose the middle range)
  3. Departure point: open inside and close outside (consider the opening and closing interval, select the internal departure point for the open interval, and select the external departure point for the closed interval)
example
  1. triangle problem

    Input 3 positive numbers a, b, c as the three sides of a triangle, and judge whether these 3 numbers form a general triangle, an equilateral triangle, an isosceles triangle, or cannot form a triangle.

    If the side length of the triangle is required to range from 1 to 100, the boundary value analysis method can be used to test the side length of the triangle boundary. When designing the test case, five values ​​of 1, 2, 50, 99, and 100 are selected as the Test Data.

    Test case:

    image-20230513093136015

  2. Yu'e Bao cash withdrawal

    Quick arrival can be accumulated and withdrawn in batches: the daily withdrawal amount of quick arrival is 10,000, which means that within one day, as long as the withdrawal amount has not accumulated to 10,000, it can be withdrawn multiple times. Accordingly, quick arrival can be subdivided into For the 1st withdrawal and the nth withdrawal, the maximum amount for the nth withdrawal is 10000 minus the amount already withdrawn.

    Suppose the balance in Yu'e Bao is 50000

    1. If it is the first fast account withdrawal, the two boundary values ​​of 0 and 10000 are tested respectively, and seven values ​​of -1, 0, 1, 5000, 9999, 10000, and 10001 are taken as test data.
    2. If it is the nth withdrawal (assuming that 2000 has been withdrawn), test the two boundary values ​​of 0 and 8000 respectively, and take seven values ​​of -1, 0, 1, 5000, 7999, 8000, and 8001 as test data.
    3. For ordinary account withdrawals, two boundary values ​​of 0 and 50000 are tested, and seven values ​​of -1, 0, 1, 20000, 49999, 50000, and 50001 are taken as test data.

    test sample

    image-20230513093932332

    image-20230513093943648

    image-20230513093954163

Testing Method Based on Combinatorial Technology and Combinatorial Optimization

Test method based on decision table
Decision Table/Decision Table

In essence, it is a logical table. It can express the complex logical relationship and the combination of various conditions concretely and clearly, and use the decision table to design a complete set of test cases.

Decision table composition
  1. Condition pile: List all the conditions of the problem . Except for some problems that require the order of the conditions, the order of the conditions listed in the decision table usually does not matter.
  2. Condition item: The condition item is all possible values ​​of the condition pile .
  3. Action piles: Action piles are all possible operations of the problem , and these operations are generally not in order.
  4. Action item: point out the action that should be taken in the case of each set of values ​​of the condition item .
irrelevant condition

Reasons that do not affect the value of the result are called irrelevant conditional items, denoted by "-". Regardless of irrelevant conditional items, multiple rules can be combined.

example
  1. Triangle Problem ✦

    1. Question stem

      Input 3 positive numbers a, b, c as the three sides of a triangle, and judge whether these 3 numbers form a general triangle, an equilateral triangle, an isosceles triangle, or cannot form a triangle.

    2. reason

      1. c 1 : Whether to form a triangle
      2. c2:a=b?
      3. c 3:b=c?
      4. c4:c=a?
    3. result

      1. e 1 : does not form a triangle
      2. e 2 : general triangle
      3. e 3 : Isosceles triangle
      4. e 4 : equilateral triangle
      5. e 5 : illogical (if two pairs of sides are equal, but one pair is not)
    4. decision table

      image-20230513094733596

    5. Simplified decision table

      image-20230513094759708

    6. test sample

      image-20230513095007024

  2. salary payment decision table

    1. Question stem

      The salary management system of a certain company is as follows: Employee salaries are divided into two types: annual salary system and monthly salary system. The error positioning of employees includes two types: common mistakes and serious mistakes. 4% will be deducted for mistakes; if it is a monthly salary employee, 4% will be deducted for common mistakes, and 8% will be deducted for serious mistakes. The company has written a software for employee salary calculation and distribution, and now it is going to test the software.

    2. cause and effect

      image-20230513100030639

    3. decision table

      image-20230513100052599

    4. test case

      image-20230513100128696

Test method based on causality diagram
definition

The cause-and-effect diagram uses some simple logic symbols and straight lines to connect the cause (input) and effect (output) of the program. Generally, the cause is represented by ci, and the result is represented by ei. Ci and ei can take the value "0" or "1". Among them, "0" indicates that the status does not appear, and "1" indicates that the status appears.

The relationship between cause and effect

Identity (equivalence) relationship

image-20230513100802347

If the cause occurs, the effect occurs; if the cause does not occur, the effect does not occur.

non-relationship

image-20230513100827583

If the cause occurs, the effect does not occur; if the cause does not occur, the effect occurs.

or relationship

image-20230513100912744

If one of the causes occurs, the effect occurs; if none of the causes occurs, the effect does not occur.

relationship with

image-20230513101230298

If several reasons appear, the result will appear. If one of the reasons does not appear, the effect does not appear.

relationship between cause and cause

mutual exclusion (E)

image-20230513101433226

It means that the two reasons C1 and C2 will not be true at the same time, and at most one of the two reasons may be true.

contains (I)

image-20230513101547666

Indicates that at least one of the three reasons C1, C2, and C3 must be true.

Unique (O)

image-20230513101622314

It means that there must be one of C1 and C2, and only one is established.

request (R)

image-20230513101755124

Indicates that when C1 appears, C2 must also appear. It is impossible that C2 does not appear when C1 appears

relationship between results

Shield (M)

image-20230513101856056

Indicates that when E1 is 1, E2 must be 0. And when E1 is 0, the value of E2 is uncertain.

example
  1. Source: PPT and Experiment 3

    1. Question stem

      When the first input character is '#' or '*' and the second input character is a number, the document will be modified; if the first input character is not '#' or '*', the output message N, If the second input character is not a digit, output the message M.

    2. cause and effect

      serial number reason serial number result
      C1 The first input is '*' R1 modify file
      C2 The first input is '#' R2 Output message N
      C3 The second input is a number R3 Output message M
    3. causal diagram

      image-20230513110330461

    4. decision table

      1 2 3 4 5 6
      condition C1 T F F T F F
      C2 F T F F T F
      C3 T T T F F F
      result R1
      R2
      R3
    5. test case

      Test case number Decision Table Rule Number test case Expected execution result
      1 1 *1 modify file
      2 2 #2 modify file
      3 3 a3 N
      4 4 *b M
      5 5 #c M
      6 6 of N and M
  2. Source: Textbook P52

    In essence, it is the same as above, just changed the way of saying it, but the answer in the book seems to be a bit problematic

Pairwise method
definition

PairWise (also known as full dual) strategy is a method of designing test cases in combination testing, which can effectively and reasonably reduce the number of combinations of input conditions

Basic steps of IPO
  1. Select 2 factors to generate a set of test cases, including all value combinations of the 2 factors;
  2. Expand in the horizontal direction, that is, add another factor and select a new value from it to ensure that the most paired value combinations of factors are covered;
  3. If there are still uncovered pair combinations in the horizontal expansion, expand in the vertical direction to generate new test cases
Orthogonal Experiment

A scientific experimental design method that selects appropriate and representative points (combination of conditions) from a large amount of (experimental) data (test cases) to arrange experiments (tests) reasonably

image-20230513111724145

Test Method Based on Logical Coverage

The previous is black box testing, here is white box testing

statement coverage

image-20230513142809158

Design as few test cases as possible so that each statement in the module under test is executed at least once.

decision coverage

image-20230513143032686

Decision Coverage (Decision Coverage), also known as branch coverage, its principle is to ensure that each decision is true at least once and false once during the test

condition coverage
definition

image-20230513144031510

Condition coverage (Condition Coverage) refers to making each logical condition in the decision statement take a true value and a false value at least once.

test sample

image-20230513143404114

  • ((a>1)&&(b==0)) judgment expression 1
    • Condition c1: (a>1)
    • Condition c2: (b==0)
  • ((a==2)||(x>1)) judgment expression 2
    • Condition c3: (a==2)
    • Condition c4: (x>0)
Judgment/Condition Override
definition
  • Design as few test cases as possible, so that each path that determines whether the expression is true or false can be executed, and all conditions are required to be true and false.
  • It is required to design test cases and meet the requirements of decision coverage and condition coverage at the same time.
Skill

image-20230513144357656

Reduce the dimensionality of the composite decision expression so that each decision node in each flow chart contains only one condition.

test sample
  • Test data 1 requires (a>1), (b==0), (a==2) and (x>1) to be satisfied at the same time, so select the test data as a=2, b=0, x=5

  • Test data 2 requires (a≦1), (b≠0) , (a≠2) and **(x≦ 1)** to be satisfied at the same time, so select the test data as a=1, b=1, x =1

    Note that the negation of each condition must occur

Condition combination coverage
definition

image-20230513144031510

Design as few test cases as possible so that all possible combinations of conditions in each decision expression can be covered.

test sample
  1. Option One

    image-20230513145416745

  2. Option II

    image-20230513145432456

path coverage
definition

Design as few test cases as possible so that all possible execution paths in the tested software module are executed at least once.

test sample

image-20230513145519026

independent path test

step
  1. According to the design or code, derive the topology structure of the program flow chart - control flow graph G;

  2. Calculate the cycle (loop) complexity V(G) of the flow graph G;

    The cyclomatic complexity V(G) of a strongly connected graph is the number of independent paths in the graph.

  3. Determine the base path set that contains only independent paths;

  4. Design test cases so that each individual path in the set is executed once.

Cyclomatic Complexity Calculation Method

image-20230513151132182

  1. V(G)=e-n+2

    G is a directed strongly connected graph, e is the number of edges in graph G, and n is the number of nodes in graph G.

  2. Judgment node number +1

    Judgment node: a node with an out degree of 2

  3. V(G)=R

    R represents the number of regions the plane is divided into by the control flow graph

example

Triangular Logic Covering Problem

  1. flow chart

    image-20230513151342787

  2. flow graph

    image-20230513151407625

  3. test case

    Decision coverage, so that each decision statement in the program has at least one "true" value and at least one "false" value

    image-20230513151506233

Software Testing Process Model

V model ✦

image-20230514095526133

advantage

The complex testing work is divided into small stages with clear goals , with stages , sequences and dependencies . It includes both the low-level testing of the source code and the high-level testing of the software requirements.

shortcoming

Testing can only be started after coding , and the preliminary work such as early requirement analysis is not covered, so it cannot find early errors such as requirement analysis, which lays hidden dangers for later system testing and acceptance testing.

W model

image-20230514095830434

advantage

The scope of the test includes not only the program, but also preliminary work such as requirement analysis and software design, which is conducive to early and comprehensive discovery of problems.

shortcoming

It divides the software development process into a series of serial activities such as requirements, design, coding, and integration , and cannot support iteration, spontaneity, and other projects that require change and adjustment.

Agile Testing Process Model ✦

IMG_20230515_191049_edit_190663784222469

unit test

definition

Analyze and check the correctness of the software modules, and test whether there are problems in the functions, interfaces, data structures, algorithms, error handling, etc. of the software model.

content

  • Module Interface Test
  • Local Data Structure Test
  • path test
  • error handling test
  • boundary test

Auxiliary module

Driver module (Driver)

It is equivalent to the main program of the module under test. It receives test data, transmits these data to the module under test, and finally outputs the measured results.

Pile module (Stub)

The submodule to be called instead of the module under test. The stub module can do a small amount of data operations and does not need to bring in all the functions of the submodule, but it is not allowed to do nothing.

JUnit

definition

Junit is an open source Java testing framework (an instance of the unit testing framework system xUnit) for writing and running repeatable tests

characteristic

  • Provides a framework for writing test classes, making it easier to write test code
  • Test tools for sharing test data
  • Test suites to easily organize and run tests
  • The test code can be separated from the product code, which is more conducive to the packaging and release of the code and the management of the test code
  • Easy to integrate into the program construction process, the combination of JUnit and Ant can also implement incremental development.
  • Has a strong scalability

Integration Tests ✦

definition

  • Combine the tested software units together to test the interface between them to verify whether the software meets the design requirements.

  • On the basis of unit testing, all modules need to be assembled into a system according to the design requirements. At this time need to consider:

    • Whether the data passing through the module interface will be lost;

    • whether the functionality of one module adversely affects the functionality of another module;

    • Can each sub-function be combined to achieve the expected parent function;

    • Is there a problem with the global data structure;

    • Whether the errors of a single module will be magnified when they accumulate to an unacceptable level.

    • Whether an error in a single module will cause a database error.

Strategy

  • one-time integration
  • Proliferating Integration
    • top-down propagation
    • bottom-up propagation
    • Mixed value-added method

System test

definition

After the software integration test is completed and a complete software system is obtained, the tester or quality assurance personnel will analyze and verify the software to ensure the quality requirements (function, performance, pressure, load, fault tolerance, compatibility, security, reliability, etc.) sex, etc.)

Functional Test ✦

definition

Complete the operation of product functions according to the product design specifications to verify whether the system meets the functional requirements of users.

step

image-20230513154958716

Functional Test Automation ✦

Interface-based functional testing

test tools

  • Postman
  • Jmeter
  • REST Assured
  • Karate
UI automation testing for web clients
method
  • Focus on testing the functional logic, and conduct tests at the level of functions, sub-functions, and function points
  • Design inputs based on methods such as input domains and combinatorial testing (see Chapter 3), drive tests, and observe outputs
  • Play the role of the user and traverse the main operation path of the user using the product from the application scenario
  • Test with different settings
  • user interface testing
test tools
  • Selenium
  • Cypress

Regression testing★

Definition ✦

  • Retest the modified program to confirm that the original defects have been eliminated and no new defects have been introduced. This retesting process is called regression testing.
  • Original functions that meet user needs should not cause any new problems due to code changes.

reason

Once some areas of the program are modified, it may affect the original normal working areas, resulting in regression defects in the affected areas.

regression defect

The function that originally worked normally did not change in requirements, but was affected by other changes.

Purpose

Testing to find regression bugs . If there is no regression testing, the product will be released with regression defects, causing serious consequences.

Strategy ✦

  1. Test all use cases again
  2. Risk-Based Selection of Tests
  3. Select Tests Based on Operational Profiles
  4. Retest the modified part

Special test

Performance Testing

definition

Discover system performance problems or obtain system performance-related indicators, such as response time, throughput, number of concurrent users, TPS, click-through rate, resource utilization, etc.

Classification

  1. load test
  2. pressure test
  3. concurrency test
  4. configuration test
  5. reliability test
  6. capacity test.

process

image-20230513155805196

Common tool

LoadRunner is a performance testing tool suitable for various architectures. It can predict system behavior and optimize system performance. Its working principle is to load test applications by simulating a multi-user (virtual user) working environment in parallel.

Jmeter is an open source and free performance testing tool developed and maintained by Apache. Jmeter uses Java as the underlying support environment. It was originally designed for testing web applications, but later gradually expanded to other fields with development. Now Jmeter can be used for testing of static resources and dynamic resources, for example, it can be used to simulate heavy load on a server, server group, network or object to test its strength, and analyze the overall performance under different load types.

security test

definition

Software security testing is to check the effectiveness of system authority settings, the ability to prevent illegal intrusion, data backup and recovery capabilities, etc., and try to find the above-mentioned various security vulnerabilities.

guideline

Make the cost of illegal intrusion exceed the value of the protected information, at this time the illegal intruder has no profit.

Test Methods

  1. static code analysis
  2. Dynamic Penetration Testing
  3. Application security testing
  4. API security testing
  5. configuration scan
  6. security audit

Common tool

  1. Web Vulnerability Scanning Tool - AppScan
  2. Port scanning tool - Nmap
  3. Packet capture tool - Fiddler
  4. Web Penetration Testing Tool - Metasploit

compatibility test

Compatibility testing is performed on specific or different hardware, network environments, operating system platforms, and between different application software to verify whether the software system can run normally and whether it can correctly access the original version of user data. test.

reliability test

definition

The ability of a software system to complete specified (of) functions within a specified time and under specified environmental conditions

Three elements

  1. specified time
  2. specified environmental conditions
  3. required function

Software Localization Testing

Software Internationalization (SW Internationalization, I18N)

I18N is a software engineering method that has the ability to handle multiple languages ​​and different cultures in functional design and code implementation, so that when creating different language versions, there is no need to rewrite the code.

Software localization (SW Localization, L10N)

image-20230513161950960

L10N is a software production activity that processes a software product according to the needs of a specific country/region or language market, so that it can meet the special language and cultural requirements of users in a specific market.

Software Globalization (SW Globalization, G11N)

G11N = I18N + L10N

6 Aspects of Localization Testing

  1. Functional testing, testing of all basic functions, installation, upgrades, etc.;
  2. Translation testing, including checks for linguistic completeness, terminology accuracy, etc.;
  3. Usability testing, including user interface, weights and measures, time zones, etc.;
  4. Compatibility debugging, including hardware compatibility, version compatibility and other tests;
  5. Applicability testing for culture, religion, preferences, etc.
  6. Manual validation, including tests for online documentation, online help, PDF files, etc.

test automation

The book seems to confuse test automation with automated testing...

Automated testing★

Automated test (automated test) is a concept that exists relative to manual testing. The operation process of manually running test cases one by one is replaced by the process of automatic execution by testing tools .

Automated testing process★

image-20230513162737111

Test automation and automated testing

  • Automated testing focuses on test execution , mainly by testing tools to automatically complete the test.
  • Test automation refers to " all test tasks that can be automatically completed by computer systems have been undertaken and automatically executed by computer systems or software tools and programs." The scope of emphasis is on the entire testing process rather than just the test execution process

Replenish

How to test the current popular technology

If you take the test, just choose a familiar answer in the category of software testing.

Interface Test ✦

chatGPT 3.5

concept

Baidu Encyclopedia

Interface testing is a type of testing that tests the interfaces between system components . Interface testing is mainly used to detect the interaction points between external systems and internal subsystems . The focus of the test is to check the exchange of data , the process of delivery and control management , and the mutual logical dependencies between the systems.

Why interface testing

  • Ensure that the interface can accurately transfer data and information.
  • Verify that the interface can correctly respond to external requests.
  • Ensure the stability and reliability of the interface.
  • Ensure that interfaces interact properly between different components or systems.

Differences from other test methods

  • Different focus points: Interface testing focuses on interface interaction and data transfer , while other testing methods such as functional testing or unit testing focus more on functional correctness.
  • The test objects are different: interface testing is aimed at the interface of the software system , including the interface between modules and the interface with external systems or services.
  • Technology and tool requirements are different: Interface testing may require the use of simulators, network analysis tools, performance testing tools, etc. to simulate and evaluate interface interaction and performance.

Software Life Cycle ✦

  1. problem definition
  2. demand analysis
  3. software design
  4. software development
  5. software test
  6. Software maintenance
  7. disuse

Guess you like

Origin blog.csdn.net/qq_33843237/article/details/130666757