- Software Quality Assurance and Testing
- CH1 Overview
- CH2 System and Software Quality Engineering and Standards(系统和软件质量工程和标准)
- CH3 Software Quality Metrics(软件质量指标)
- CH4 Black-Box Testing(黑盒测试)
- CH5 White-Box Testing(白盒测试)
- 5.1 Basic Concepts(基本概念, P372)
- 5.2 Logic Coverage(逻辑覆盖, P382)
- 5.3 Control Flow Graph(控制流图, P406)
- 5.4 Basis Path Testing(基本路径测试, P416)
- 5.5 Loop Testing(循环测试, P433)
- 5.6 Data Flow Testing(数据流测试, P445)
- 5.7 Mutation Testing(变异测试,P458)
- 5.8 A Comparison of White-box Testing and Black-box Testing(白盒和黑盒测试的比较, P491)
- CH6 Unit Testing(单元测试)
- CH7 Integration Testing
- 7.1 Integration Testing Introduction(集成测试介绍, P554)
- 7.2 Integration Testing Strategy(集成测试策略, P575)
- 7.3 Integration Testing Analysis(集成测试分析, P621)
- 7.4 Test Case Design of Integration Testing(集成测试的测试用例设计, P637)
- 7.5 Integration Testing Process(P649)
- 7.6 Integration Testing Environment(集成测试环境, P650)
- 7.7 Principle of Integration Testing(集成测试原则, P654)
- CH8 System Testing(系统测试)
- CH9 Performance Testing(性能测试)
- CH11 Testing Management
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
- What is software defect
-
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
- Size-oriented metrics(面向大小的指标)
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 relations between causes and effects(因果之间的关系)
-
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(选择自动化工具)