软件测试

  1. Software Quality Assurance and Testing
    1. CH1 Overview
      1. 1.1 About Software Quality(关于软件质量, P3)
      2. 1.2 About Software Testing(关于软件测试, P11)
      3. 1.3 Software Testing Rules(软件测试规则, P58)
    2. CH2 System and Software Quality Engineering and Standards(系统和软件质量工程和标准)
      1. 2.1 SQC Concepts and Methods(软件质量控制的概念和方法, P70)
      2. 2.2 SQC Models and Techniques(软件质量控制的模型和技术, P92)
      3. 2.3 Software Quality Assurance(软件质量保证, P116)
      4. 2.4 Software Quality Standards(软件质量标准, P130)
    3. CH3 Software Quality Metrics(软件质量指标)
      1. 3.1 Metrics and Software Metrics(指标和软件指标, P147)
      2. 3.2 Software Quality Metrics(软件质量指标, P202)
    4. CH4 Black-Box Testing(黑盒测试)
      1. 4.1 Introduction(P208)
      2. 4.2 Equivalence Partitioning(等价划分, P220)
      3. 4.3 Boundary Value Analysis(边界值分析, P246)
      4. 4.4 Decision Tables(决策表, P260)
      5. 4.5 Cause-Effect Graphing(因果图, P289)
      6. 4.6 Orthogonal Array Testing(正交阵列测试, P323)
      7. 4.7 Scenario Testing(场景测试, P347)
    5. CH5 White-Box Testing(白盒测试)
      1. 5.1 Basic Concepts(基本概念, P372)
      2. 5.2 Logic Coverage(逻辑覆盖, P382)
      3. 5.3 Control Flow Graph(控制流图, P406)
      4. 5.4 Basis Path Testing(基本路径测试, P416)
      5. 5.5 Loop Testing(循环测试, P433)
      6. 5.6 Data Flow Testing(数据流测试, P445)
      7. 5.7 Mutation Testing(变异测试,P458)
      8. 5.8 A Comparison of White-box Testing and Black-box Testing(白盒和黑盒测试的比较, P491)
    6. CH6 Unit Testing(单元测试)
      1. 6.1 What is Unit Testing(P495)
      2. 6.2 Unit Testing Strategies(P509)
      3. 6.3 Unit Testing Analysis(P513)
      4. 6.4 Unit Testing Guidelines(27个原则, P514)
      5. 6.5 How to use JUnit(P525)
    7. CH7 Integration Testing
      1. 7.1 Integration Testing Introduction(集成测试介绍, P554)
      2. 7.2 Integration Testing Strategy(集成测试策略, P575)
      3. 7.3 Integration Testing Analysis(集成测试分析, P621)
      4. 7.4 Test Case Design of Integration Testing(集成测试的测试用例设计, P637)
      5. 7.5 Integration Testing Process(P649)
      6. 7.6 Integration Testing Environment(集成测试环境, P650)
      7. 7.7 Principle of Integration Testing(集成测试原则, P654)
    8. CH8 System Testing(系统测试)
      1. 8.1 System Testing Concepts(P657)
      2. 8.2 System Testing Methods(P666)
      3. 8.3 System Testing process(P696)
    9. CH9 Performance Testing(性能测试)
      1. 9.1 What is performance?(什么是性能, P705)
      2. 9.2 What is performance testing?(什么是性能测试, P737)
      3. 9.3 What are the types of performance tests?(性能测试的种类, P751)
      4. 9.4 How to conduct performance testing?(如何进行性能测试, P753)
    10. CH11 Testing Management
      1. 11.1 Test Metrics(测试指标, P776)
      2. 11.2 Defect Management(缺陷测试, P787)
      3. 11.3 Software Testing Life Cycle(软件测试生命周期, P802)
      4. 11.4 Basic Knowledge about Software Testing Automation(自动化测试基础知识, P811)
      5. 11.5 Automated Testing Tools(自动化测试工具, P824)

Software Quality Assurance and Testing

CH1 Overview

1.1 About Software Quality(关于软件质量, P3)

  • What is Quality

1.2 About Software Testing(关于软件测试, P11)

  • Qualified rate of products(产品合格率)

  • Software defect(软件缺陷)

    • What is software defect
      • 软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,没有满足用户的要求。
    • The Source of defects
  • Software testing(软件测试)

    • Software testing definition
    • Verification(验证)&Validation(确认)
      • The essential function of software testing is verification(验证)and validation(确认).
    • Test & debug
    • Purpose of software testing
    • Types of testing
      • C1:按照测试生成的来源
      • C2:按照生命周期的阶段
      • C3:按照测试活动的目的
      • C4:按被测对象的特征
      • C5:按测试过程的模型

1.3 Software Testing Rules(软件测试规则, P58)

  • Test passing Rules(测试通过规则)

  • What is test case

  • Test case design rules

  • Capability for Software Tester(软件测试员的能力)


CH2 System and Software Quality Engineering and Standards(系统和软件质量工程和标准)

2.1 SQC Concepts and Methods(软件质量控制的概念和方法, P70)

  • What is Quality Control

2.2 SQC Models and Techniques(软件质量控制的模型和技术, P92)

  • Goal question metric approach(GQM, 目标问题度量方法)

  • Risk management approach(风险管理, RM)

  • PDCA quality control approach(Plan, Do, Check, and Action)

  • TSQC(Total Statistical Quality Control Model based on PDCA,全面统计质量控制)

2.3 Software Quality Assurance(软件质量保证, P116)

  • What is Quality Assurance?

  • Software Quality Assurance involves

  • Why are we concerned with software quality assurance

  • SQA Methodology(SQA方法论)

    • PPQA audits(审核)
  • SQA activities

  • The role of SQA

  • Advantages of SQA

  • Quality Cost

2.4 Software Quality Standards(软件质量标准, P130)

  • Why are software standards important?

  • Software Quality Standards Levels

  • Commonly used software quality standards

    • ISO 9001/9000-3
    • CMM
    • CMMI
    • IEEE Software engineering standars
    • ISO/IEC TR 15504

CH3 Software Quality Metrics(软件质量指标)

3.1 Metrics and Software Metrics(指标和软件指标, P147)

  • Measure

  • Measurement

  • Metric(指标): 系统,组件或过程拥有给定属性的程度的定量度量

  • Indicator

  • Metrics Characteristics(指标的特征)

  • Why do we measure(为什么衡量)

  • Why do we use metrics(为什么使用指标)

  • Metric Guidelines(指标指南)

  • Example Metrics(指标的例子)

  • Types of metrics(指标的类型)

    • Process Metrics(过程指标)
    • Product Metrics(产品指标)
    • Project Metrics(项目指标)
  • Process Metrics(过程指标)

    • The rational way to improve any process
    • Quantitative Management(量化管理)
    • Statistical Software Process Improvement (SSPI, 统计软件过程改进)
    • Defect Removal Efficiency (DRE, 缺陷排除效率)
    • How to measure effectiveness of a software process?
  • Product Metrics(产品指标)

  • Project Metrics(项目指标)

  • Types of Software Measurements

    • Direct measures
    • Indirect measures
  • Normalization of Metrics(指标的标准化)

    • Size-oriented metrics(面向大小的指标)
      • eg: Cost,LOC,kLOC…
      • Advantages of size oriented metrics
      • Disadvantages of size oriented metrics
    • Function oriented metrics(面向功能的指标)
      • Function point(功能点)
      • steps in calculating FP(计算功能点的步骤)
      • Software information domain values
      • Rate Complexity Factors(比率复杂性因素)
        • For each complexity adjustment factor, give a rating on a scale of 0 to 5
      • Complexity Adjustment Factors(复杂度调整因素)
      • Complexity Adjustment Value(复杂性调整价值)
      • FP Characteristics
        • advantages
        • disadvantages

3.2 Software Quality Metrics(软件质量指标, P202)

  • Software Quality Metrics

  • Correctness

  • Maintainability


CH4 Black-Box Testing(黑盒测试)

4.1 Introduction(P208)

  • Black-Box Testing

  • The advantages of black-box testing

  • Test case

    • Test case must be designed follow these characteristics
    • How to design a test case?
    • Test methods
      • Equivalence partitioning、Boundary value analysis、Decision tables、Cause-effect graphing、Orthogonal array testing、Scenario testing

4.2 Equivalence Partitioning(等价划分, P220)

  • Equivalence Partition

  • Equivalence class definition(等价类定义)

  • Partition situation(划分情况)

    • Valid equivalence class(有效等价类)
    • Invalid equivalence class(无效等价类)
  • Guidelines for generating equivalence classes for variables(等价类划分指南)

  • Single Fault(单一故障,故障通常单一发生)

  • The steps of design test case(设计测试用例的步骤)

4.3 Boundary Value Analysis(边界值分析, P246)

  • Boundary Value Analysis

  • Basic idea(基本思路)

  • Boundary Value Analysis is based Single fault.

  • Limitations of Boundary Value Analysis(边界值分析的适用范围)

  • Robustness Testing(稳健性测试, 边界值测试的扩展版)

4.4 Decision Tables(决策表, P260)

  • Decision Tables

  • Four portions of decision table(决策表的四个部分)

4.5 Cause-Effect Graphing(因果图, P289)

  • What is cause-effect graphing?

  • Notation used in cause-effect graphing(因果图表中使用的表示法)

    • The relations between causes and effects(因果之间的关系)
      • Implication(等价)、Not(非)、Or(或)、And(与)
    • Constraint(约束)
      • Exclusive(E, 异)、Inclusive(I, 或)、One and only one(O, 唯一)、Requires(R, 要求)、Masking(M, 强制)
  • The steps of cause-effect graph design(因果图设计的步骤)

  • How to use cause-effect graph design test case(如何使用因果图设计测试用例)

  • Disadvantages of CEG test case design

4.6 Orthogonal Array Testing(正交阵列测试, P323)

  • Orthogonal Array Testing

  • The type of experimental design methods

    • Comprehensive test(综合测试, 把所有的因素都组合一遍)

    • Single factor test(单因素测试, 每次只变动一个因素)

    • Orthogonal test(正交测试)

  • Orthogonal table(正交表)

  • Steps of orthogonal test case design

4.7 Scenario Testing(场景测试, P347)

  • Scenario Testing

  • The ideal scenario has five key characteristics(理想场景有五个关键特征)

  • flow of events(事件流)

    • Basic flow of events(基本流)
    • Alternate flows events(备选流)
  • A three-step process for generating test cases from a fully-detailed use case(从详细用例生成测试用例的三个步骤)

    • Step One: Generate Scenarios
    • Step Two: Identify Test Cases and create a scenario matrix
    • Step Three: Identify the data values with which to test.

CH5 White-Box Testing(白盒测试)

5.1 Basic Concepts(基本概念, P372)

  • White-box testing

  • static testing and dynamic testing(静态白盒测试和动态白盒测试)

  • White-box testing must follow several principles(白盒测试的准则)

  • White-box Testing Difficulties(白盒测试的难度)

  • Why we can’t use exhaustive testing(为什么我们不能使用穷举测试)

  • Development of White-box Testing divided into four generations(四代白盒测试)

  • A Comparison on four generations of White-box Testing(四代白盒测试的比较)

  • 白盒测试方法测试过程

5.2 Logic Coverage(逻辑覆盖, P382)

  • Statement coverage(语句覆盖, 所有程序语句都执行一遍即可)

  • Decision coverage(判定覆盖, 判断语句的对错)

  • Condition coverage(条件覆盖, 判断语句中每个条件的对错)

  • Condition/decision coverage(条件判断覆盖, 判断语句的对错+判断语句中每个条件的对错)

  • Condition combination coverage(条件组合覆盖, 使每个判断的所有可能的条件组合至少一次)

  • Path coverage(路径覆盖, 覆盖过程中所有可能的路径)

  • N-S graph

5.3 Control Flow Graph(控制流图, P406)

  • Concept

  • Common control flow graph(基本控制流图)

  • Change a program flow chart into a control flow graph(把程序流程图改成控制流图)

5.4 Basis Path Testing(基本路径测试, P416)

  • Concept

  • Cyclomatic Complexity(圈复杂度)

  • Independent Paths(独立路径)

5.5 Loop Testing(循环测试, P433)

  • Focuses exclusively on the validity of loop constructs(专门关注循环构造的有效性)

  • Types of Loop(循环的类型)

  • Simple Loops(简单循环)

  • Nested Loops(嵌套循环)

  • Concatenated Loops(连接式循环)

  • Unstructured Loops(非结构化循环)

5.6 Data Flow Testing(数据流测试, P445)

  • data flow testing(数据流测试)

  • data flow graph(数据流图)

  • define-use-kill patterns

  • Static Data Flow Testing

  • Dynamic Data Flow Testing

5.7 Mutation Testing(变异测试,P458)

  • Mutation Testing: 用来衡量软件测试的质量

  • We use mutation analysis for testing to

  • Mutation Testing is capable of testing software at

  • Fundamental Premise (基本前提) of Mutation Testing

  • Mutation and Mutants(变异体)

  • Mutation operators(变异算子)

  • First-order mutants And Higher-order mutants(一阶变异体和高阶变异体)

  • Syntax and semantics of mutants(突变体的句法和语义
    )

  • Strong mutation testing & Weak mutation testing

  • Procedure for test-adequacy assessment(测试充分性评估的步骤)

5.8 A Comparison of White-box Testing and Black-box Testing(白盒和黑盒测试的比较, P491)


CH6 Unit Testing(单元测试)

6.1 What is Unit Testing(P495)

  • Unit testing

  • Basic attributes of unit testing(单元测试基本属性)

  • Purpose of unit testing(单元测试的目的)

  • 单元测试的过程

  • Benefits

  • Static testing And Dynamic testing

  • Misunderstanding about unit testing(对单元测试的误解)

6.2 Unit Testing Strategies(P509)

  • Stub(桩)

  • Driver module(驱动模块)

  • Top-down unit testing strategy

  • Bottom-up unit testing strategy

  • Isolation testing(隔离测试)

6.3 Unit Testing Analysis(P513)

  • Considered aspect of unit testing(单元测试需要考虑的方面)

6.4 Unit Testing Guidelines(27个原则, P514)

6.5 How to use JUnit(P525)

  • Tools of Unit test

  • JUnit features include(JUnit功能包括)

  • Test Fixtures(测试装置)

  • Test Suites(测试套件)

  • Test Execution(测试运行)

  • Assertions(断言)

  • Criteria for test methods(测试方法必须遵循的条件)

  • How JUnit run a test


CH7 Integration Testing

7.1 Integration Testing Introduction(集成测试介绍, P554)

  • Test、Software development、Gray Box Testing

  • Integration testing

  • Integration testing VS Unit testing

  • Integration testing VS System testing

  • The purpose of integration testing(集成测试的目的)

  • The major advantages of integration testing(集成测试的好处)

  • Major testing focuses(主要测试重点)

  • Integration Testing Steps(集成测试步骤)

  • 决定重复测试周期的次数和总集成时间的因素

  • When to complete the integration testing

  • Integration testing features(集成测试特点)

  • The relationship between integration testing and development(集成测试与开发的关系)

  • When to carry out the integration testing(什么时候开始集成测试)

  • Integration testing levels(集成测试等级)

7.2 Integration Testing Strategy(集成测试策略, P575)

  • Integration testing can be divided into two categories(集成测试基本策略分类)

  • Instantaneous vs. incremental integration testing

  • Big bang(大爆炸) integration

  • Top-down (自顶向下)integration

  • Bottom-up (自底向上)integration

  • Sandwich(三明治) integration

  • Layers(分层) integration

  • High-frequency (高频)integration

  • Event-based(基于事件) integration

7.3 Integration Testing Analysis(集成测试分析, P621)

  • The concern contents of integration testing(集成测试关注)

  • Architecture Analysis(体系结构分析)

  • Module analysis(模块分析)

  • Interface analysis(接口分析)

  • Testability analysis(可测试性分析)

  • Integration testing strategy analysis(集成测试策略分析)

  • Common integration testing fault(常见的集成测试错误)

7.4 Test Case Design of Integration Testing(集成测试的测试用例设计, P637)

  • For the operation of the system design test cases.(为系统的操作设计测试用例)

  • Design test cases for positive testing.(设计正向测试测试用例)

  • Design test cases for reverse testing.(设计反向测试测试用例)

  • Design test cases for special requirement.(根据特殊要求设计测试用例)

  • Design test case for meet coverage.(设计符合覆盖率的测试用例)

  • Test cases complement.(测试用例补充)

7.5 Integration Testing Process(P649)

  • The process of integration testing can be divided into four stages

7.6 Integration Testing Environment(集成测试环境, P650)

  • In considering integration testing environment, follow several aspects

7.7 Principle of Integration Testing(集成测试原则, P654)


CH8 System Testing(系统测试)

8.1 System Testing Concepts(P657)

  • System Testing

  • Why system testing is necessary?

  • System testing process

8.2 System Testing Methods(P666)

  • GUI software testing(GUI测试)

  • Usability testing(可用性测试)

  • Performance testing(性能测试)

  • Stress testing(压力测试)

  • Volume testing(容量测试)

  • Load testing(负载测试)

  • Compatibility testing(兼容性测试)

  • Recovery testing(恢复测试)

8.3 System Testing process(P696)

  • Deming Cycle(戴明环, 也叫PDCA)

CH9 Performance Testing(性能测试)

9.1 What is performance?(什么是性能, P705)

  • Performance(性能)

  • Commonly used performance indicators(常用的性能指标)

    • Latency(延迟)
    • Transaction processing time:(事务处理时间)
    • Maximum transaction processing time(最大事务处理时间)
    • Transaction operating time(事务操作时间)
    • Database performance (数据库性能)
    • The largest consumption of memory (最大内存消耗)
    • Resource consumption(资源消耗)
    • Peak time of memory(高峰内存时间)
    • Response time(响应时间)
    • System response time(系统响应时间)
    • Present time(呈现时间)
    • Concurrent users(并发用户数)
    • Throughput(吞吐量)
    • Performance counters and resource utilization(性能计数器和资源利用率)
    • Dormancy time(休眠时间)

9.2 What is performance testing?(什么是性能测试, P737)

  • performance testing

  • Performance testing profiles(性能测试的配置)

  • Load Testing(负载测试)

  • Load testing loading mode(负载测试的加载模式)

    • One-time loading(一次性加载)
    • Increasing loading(递增加载)
    • High and low mutation loading(高低突变加载)
    • Random loading method(随机加载方式)
  • Stress Testing(压力测试)

9.3 What are the types of performance tests?(性能测试的种类, P751)

  • The three most common types of software performance testing include(最常见的三个类型的软件性能测试包括)

9.4 How to conduct performance testing?(如何进行性能测试, P753)

  • The process of performance testing?(性能测试过程:计划,记录,修改,执行,分析)

  • Step1:Planning

    • Understanding load(了解系统的负载情况)
    • Load (Operational) Profile(建立负载概况)
    • Test Sample Sizes(测试样本的大小)
    • Sampling Errors(抽样误差)
    • Number and types of users(用户的数量和类型)
    • The number of users on the site will vary based on many factors(网站中用户数量的变化基于很多要素)
    • Testing types and metrics needed(需要的测试的类型和量度)
  • Step2-Step4

    • An abstract architecture for performance testing tools(一个性能测试工具抽象的结构包括:控制器,负载生成器,性能监视器,分析器,虚拟用户生成器)
    • profiler(检验器)
    • Virtual users generator (虚拟用户生成器)
    • Controller (控制器)
    • Load Generator(负载生成器)
    • Analysis(分析器)

CH11 Testing Management

11.1 Test Metrics(测试指标, P776)

  • A classification of various types of metrics(度量标准的分类)

  • Four general core areas that assist in the design of metrics(协助度量标准设计的四个通用核心领域)

  • Organization metrics(组织度量)

  • Project metrics(项目指标)

  • Process metrics(过程度量)

  • Product metrics: Generic(产品度量:一般)

  • Product metrics: OO software(产品度量:OO软件)

  • Testability(可测试性)

11.2 Defect Management(缺陷测试, P787)

  • Defect management(缺陷管理)

  • Status associated with a defect(与缺陷相关的状态)

  • The structure of report a defect(报告缺陷的结构)

    • Title
    • Description
    • Repro Steps(重现步骤)
    • Actual Results(实际结果)
    • Expected Results(预期结果)
    • Test Environment(测试环境)
  • Defect Life Cycle(缺陷生命周期)

  • Defect Life Cycle Paths(缺陷生命周期路径)

11.3 Software Testing Life Cycle(软件测试生命周期, P802)

  • Test planning(测试计划)

    • Parts of Test Planning
  • Test design(测试设计)

    • Test design techniques(测试设计技巧)
    • Categories of test design techniques(测试设计技巧分类)
  • Test development(测试开发)

  • Test execution(测试执行)

  • Test evaluation(测试评价)

11.4 Basic Knowledge about Software Testing Automation(自动化测试基础知识, P811)

  • What is test automation?(什么是自动化测试)

  • Automated testing(自动化测试)

  • Which type of test can be automated(什么样的测试可以被自动化)

  • The advantages of automated testing(自动化测试的优点)

  • Disadvantages of automated testing(自动化测试的缺点)

  • Manual Testing vs Automated Testing(手工测试 vs 自动化测试)

11.5 Automated Testing Tools(自动化测试工具, P824)

  • Automated Test Lifecycle Methodology(自动化测试生命周期方法)

  • Process Of Test Tools Import(导入测试工具的过程)

  • Misconceptions(对于自动化测试的误解)

  • Choosing Automation Tools(选择自动化工具)