zoukankan      html  css  js  c++  java
  • 软件测试---学习笔记

    错误分类

    Software Fault:A static defect in thesoftware,静态存在于软件中的缺陷(如code写错了)。---程序中的错误代码

    Software Error:An incorrect internalstate that is the manifestation of some fault,软件运行时,运行到fault触发产生错误的中间状态。---错误代码导致的错误状态

    Software Failure:External, incorrectbehavior with respect to the requirements or other description of the expected behavior,Error传到软件外部,使得用户或测试人员观测到失效的行为。---错误状态表现出来后被感知

    测试能够发现的错误只有Failure级别,即表现出来的错误。程序中处于Error和Fault级别的错误单靠测试难以发现。需要开发自己做白盒测试尽量避免Fault的出现。

    PIE模型

    1. Execution/Reachability : The location orlocations in the program that contain the fault must be reached,执行必须通过错误的代码。

    2. Infection : The state of the programmust be incorrect ,在执行错误代码时必须触发一个错误的中间状态。

    3. Propagation : The infected state mustpropagate to cause some output of the program to be incorrect,错误的中间状态必须传播到最后输出,使得观测到的输出结果和预期结果不一致,即失效。

    产生fault的程序,可能在测试时不会触发错误的中间状态。同理,触发错误的中间状态可能不会使测试人员观察到失效的行为。

    Verification

    “The evaluation of whether or not aproduct, service, or system complies with a regulation, requirement,specification, or imposed condition. It is often an internal process.”

    Validation

    “The assurance that a product, service, orsystem meets the needs of the customer and other identified stakeholders. Itoften involves acceptance and suitability with external customers.”

    图覆盖准则

    • Syntactic reach : A path exists in thegraph。

    • Semantic reach : A test exists that canexecute that path。

    语义可行的一定语法可行,但语法可行的不一定语义可行

    测试路径Test Path: A path that starts at an initialvertex and ends at a final vertex。Each test executes one and only one testpath

    测试准则Test Criteria

    • Test Requirements (TR) :Describe properties of test paths

    • Test Criterion :Rules that define test requirements

    • Satisfaction:Given a set TR of test requirements for acriterion C, a set of tests T satisfies C on a graph if and only if for everytest requirement in TR, there is a test path in path(T) that meets the testrequirement tr。

    结构覆盖StructuralCoverage 

    Vertex Coverage (VC) 点覆盖:Test set T satisfies vertex coverage ongraph G if and only if for every syntactically reachable vertex v in V, thereis a path p in path(T) such that p covers v.

    Edge Coverage (EC) 边覆盖:Test set T satisfies vertex coverage ongraph G if and only if for every syntactically reachable edge e in E, there isa path p in path(T) such that p covers e.

    Edge-Pair Coverage (EPC) 边对覆盖:TR contains each reachable path of lengthto up 2, inclusive, in G.

    Complete Path Coverage (CPC) : TR containsall paths in G.

    n-Path Coverage (nPC) : TR contains each reachable path of length up to n, inclusive, in G.

    控制流图ControlFlow Graph

    •A control flow graph (CFG) is a representation,using graph notation, of all paths that might be traversed through a programduring its execution.

    if 、if-return、while、do 、 for 、 break and continue 、 switch。

    数据流覆盖DataFlow Coverage

    Sets of Def and Use

    • def (n) or def (e) :

    The set of variables that are defined by node n or edge e

    • use (n) or use (e) :

    The set of variables that are used by node n or edge e

    DU pair :

    A pair of locations (li, lj) such that avariable v is defined at li and used at lj

    • Def-clear :

    A path from li to lj is def-clear with respect to variable v if v is not given another value on any of the nodes or edges in the path

    • Reach :

    If there is a def-clear path from li to lj with respect to v, the def of v at li reaches the use at lj

    • du-path :

    A simple subpath that is def-clear with respect to v from a defof v to a use of v

    • du (ni, nj, v)

    the set of du-paths from ni to nj

    • du (ni, v)

    the set of du-paths that start at ni

    All-defs coverage (ADC) :

    For each set of du-paths S = du (n, v), TRcontains at least one path d in S.--全定义覆盖,所有定义的地方都覆盖过

    All-uses coverage (AUC) :

    For each set of du-paths to uses S = du(ni, nj, v), TR contains at least one path d in S.--全引用覆盖,所有引用的地方都覆盖过,包括所有的定义也都覆盖过

    All-du-paths coverage (ADUPC) :

    For each set S = du (ni, nj, v), TR contains every path d in S.--全部定义引用覆盖,所有的定义和引用之间的路径都覆盖过

    随机测试RandomTesting

    Test cases are generated purely at random[SWEBOK v3.0]

    –Input domain must be known

    –Pick random points within input domain

    –Automation

    Problems in RT

    • Define input domain

    • Random mechanism 随机机制

    • Randomness and IntegrityService(random.org) 随机性和完整性

    自适应随机测试

    ART Algorithm

    • randomly generate an input t, run t, add tto T
    • ·while (stop criteria not reached)
    • randomlygenerate k candidate input c1, … ck
    • for eachcandidate ci
    • compute min distance di to T
    • end for
    • select onecandidate t with min distance
    • run t, add t toT
    • end while

    Problems in ART

    • Distance用例距离

    • Sampling用例分布

    Anti-Random Testing Process:

    1 . Select one test case randomly 选择一条测试用例

    2. Select a test case with the maximum Sum of Hamming Distance to existed test cases 从所有可能的测试用例中,选择一条使其与已有测试用例的海明距离之和最大

    3. Repeat。。重复第二步,直至发现问题或测试用例总量满足需求或用例耗尽。

    EquivalencePartitioning 等价类划分

    等价类的划分原则

    • 完备性 Complete –等价类的并集应涵盖整个输入域

    • 无冗余 NoRedundant –等价类之间互不相交

    Boundary-ValueAnalysis 边界值分析

    An input variable with equivalent class[Min, Max]

    Select

    – Min

    – Min+

    – Nom

    – Max-

    – Max

    CombinatorialTesting 组合测试

    • Fixed strength combinatorial testing

    - Pair-wise Testing

    - t-wise/t-ways Combinatorial Testing

    • Variable strength combinatorial testing

    Key issue:

    • Sampling in all combinations
    • Do not consider special information of inputs

    DecisionTables 决策表

    Decision tables represent logicalrelationships between conditions (roughly, inputs) and actions (roughly,outputs). Test cases are systematically derived … [SWEBOK v3.0]

    • 决策表的优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免 遗漏。因此,利用决策表能够设计出完整的测试用例集合。

    • 在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。决策表很适合于处理这类问题。

    决策表的组成

    • 决策表通常由以下4部分组成:

    – 条件桩—列出问题的所有条件

    – 条件项—针对条件桩中条件列出所有可能的取值

    – 动作桩—列出问题规定的可能采取的操作

    – 动作项—指出条件项各取值情况下应采取的动作

    条件桩 条件项

    动作桩 动作项

    任何一个条件组合的特定取值及相应要执行的动作为一条规则。在决策表中贯穿条件项和动作项的一列是一条规则。

    决策表的生成

    构造决策表的5个步骤:

    (1)确定规则的个数(每个条件取真、假值)

    (2)列出所有的条件桩和动作桩

    (3)填入条件项

    (4)填入动作项,得到初始决策表

    (5)简化决策表,合并相似规则

    若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并

    合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件

    探索性测试

    分类:

    1、自由式探索

    2、基于场景的探索

    3、基于策略的探索

    4、基于反馈的探索。

    https://www.jianshu.com/p/39a837590a9f

  • 相关阅读:
    前端开发试题
    操作手册
    border-box有什么用
    npm安装react-dom...
    html-webpack-plugin按需加载的js/css也会被提取出来吗
    洛谷P3957 跳房子(Noip2017普及组 T4)
    【react】利用prop-types第三方库对组件的props中的变量进行类型检测
    React 进入页面以后自动 focus 到某个输入框
    React 更新阶段的生命周期 componentWillReceiveProps->shouldComponentUpdate->componentWillUpdate
    React 生命周期 constructor->componentWillMount->render->componentDidMount->componentWillUnmount
  • 原文地址:https://www.cnblogs.com/cqufengchao/p/12299280.html
Copyright © 2011-2022 走看看