软件测试基础理论知识

关键词:测试基础理论

1、软件测试的含义(概念)——什么是软件测试

2、软件测试的目的(意义)——为什么要做软件测试

3、软件测试的对象(测什么)——软件测试是测什么

4、软件测试的分类——有哪些类型的软件测试

5、软件测试的原则——软件测试要遵循什么原则

6、软件测试的步骤——如何一步一步做软件测试

7、软件测试的质量——从哪几个方面评估软件的质量

8、软件测试的风险——可预见的、不可预见的

9、软件测试结束的标准——哪些指标达标

1.软件测试概念(掌握)

测试的定义:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。(在未知软件,程序模块,某个版本是否有错误的情况下,从客户的角度出发,依据需求规格说明书等文档,选择科学的方法,设计出正确的业务操作流程,尽可能多的模拟用户对软件的各种操作,尽可能多的发现软件中的缺陷,并且将缺陷记录报告,提交给相关开发人员修复,最终达到提高软件质量的目的)

2.    软件测试的目的(掌握)

1)验证软件是否满足 软件开发合同 或者项目开发计划,系统/子系统设计文档,软件需求规格说明,软件产品说明等规定的软件质量要求 

2)通过测试,发现软件缺陷  

3)为软件产品的质量测量和评价提供依据。

3.软件测试对象(掌握)

软件:包括程序、数据、文档

1)        源程序/目标代码

2)        各开发阶段的文档(需求规格说明、概要设计说明、详细设计说明及其它相关文档)

4.    软件测试的分类——从不同的角度进行分类(掌握)

测试种类

1)        根据开发阶段划分为:单元测试、集成测试、系统测试、验收测试

2)        根据是否运行程序划分:静态测试、动态测试

3)        根据是否查看代码划分:白盒测试、灰盒测试、黑盒测试

4)        其他分类:回归测试、冒烟测试、随机测试、敏捷测试

5.软件测试原则(掌握)

基于测试是为了寻找软件的错误与缺陷,评估与提高软件质量,因此我们提出了这样的一组测试原则,如下所示。

1)        所有的软件测试都应追溯到用户需求。

2)        应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。

3)        完全测试是不可能的,测试需要终止。

4)        测试无法显示软件潜在的缺陷。

5)        充分注意测试中的缺陷群集现象。(2/8原则)

6)        程序员应避免检查自己的程序。

7)        尽量避免测试的随意性。(测试活动依赖于测试内容)

6.    软件测试的流程(步骤)——理论流程,具体根据实际情况而定,总体一致(掌握)

1、需求分析

2、需求评审

3、测试计划

4、测试用例

5、用例评审

6、搭建测试环境

7、测试执行

8、回归测试

9、测试报告

7.   软件测试的质量(了解)

软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”;

明确的需求指:软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准;

隐含的需求指:所有专业开发的软件都应具有的隐含特征的程度,比如:符合行业标准。

8.    软件测试的风险(掌握)

1、软件测试中的软件风险分析是根据预测软件将出现的风险,制定软件测试计划并排列优先等级,风险分析是对软件中潜在的问题进行识别、估计和评价的过程。

2、风险也包括进度风险、质量风险、人员风险、变更风险、成本风险等

9.    软件测试的结束标准

1、需求覆盖率100%

2、用例执行率100%

3、陷遗留率不超过2%

4、其他的相关质量标准达到预期标准



质量

1.什么是质量

对于不同类型的产品,评价质量好坏的关注点不同

2.软件质量有何价值?

软件质量的价值,取决于其应用情景的重要程度,以及该应用情景对于该软件产品的依赖程度。

3.软件质量模型

内部质量:它是从内部观点出发的软件产品特性的总体。内部质量是针对内部质量需求被测量和评价的质量。

外部质量:外部质量是从外部观点出发的软件产品特性的总体。它是当软件执行时,更典型地是使用外部度量在模拟环境中,用模拟数据测试时,所被测量和评价的质量。

使用质量:是从用户观点出发,来看待软件产品用于特定环境和条件下的质量。它测量用户在特定环境中达到其任务目标的程度,而不是测量软件自身的性质。

4.什么是质量保证

为保证产品和服务充分满足消费者要求的质量而进行的有计划、有组织的活动。

5. QC与QA的区别

QC和QA的主要区别:前者是保证产品质量符合规定,后者是建立体系并确保体系按要求运作,以提供内外部的信任

QC就是测试人员,职责是尽可能早地发现软件的缺陷,并确保缺陷得到修复(有些企业里,测试人员被称为SQA)

QA是流程的监督者,职责是创建和执行 改进软件开发过程,并防止软件缺陷发生 的标准和方法

6.  ISO9000与CMMI的介绍

ISO:国际标准化组织

ISO9000:国家质量管理体系标准

7. CMMI是什么?

Capability Maturity Model Integration (能力成熟度模型综合)

该模型提供一套可供公众使用的准则;这些准则描述那些成功地实施了过程改进的组织的特性。

该模型用“软件能力成熟度”来衡量这种软件综合能力


测试计划

1.测试计划的定义

测试计划就是描述所有要完成的测试工作,包括被测试项目的背景、目标、范围、方式、资源、进度安排、测试组织,以及与测试有关的风险等方面。

2.测试计划的作用

                   1)测试过程提供指导

                             测试目标

                             测试内容

                             测试方法

                             测试时间周期

                   2)改善测试任务与测试过程的关系

                   3)提高测试的组织、规划和管理能力

3.如何制定测试计划

认真做好测试资料的搜集整理工作;

明确测试的目标,增强测试计划的实用性;

坚持“5W”规则,明确内容与过程;

采用评审和更新机制,保证测试计划满足实际需求

4.测试计划的内容

2)      需要测试的特征1)      测试项目简介

3)      不需要测试的特征

4)      测试的方法(测试人员、测试工具、测试流程)

5)      测试环境(软件、硬件、网络)

6)      测试环境是测试人员为进行软件测试而搭建的环境

7)      测试开始条件和结束条件

8)      测试者的任务、培训

9)      测试进度与跟踪

10)  测试风险与解决

11)  测试计划的审批与变更方式

5.测试风险与解决

07测试方案

1.  测试方案的目的

在方向上明确要测什么、怎么测,以及达到什么样质量标准。

2.  测试计划与方案的区别

3.  如何制定有效测试方案

1)        测试需求分析

2)        测试策略

3)        测试资源

4)        测试进度计划

5)        风险管理

6)        质量

4.  测试策略

制定测试策略:测试资源、测试进度计划、风险管理、质量

测试类型:

1)        功能测试

2)        界面测试

3)        安全测试

4)        本地/国际化测试

5)        数据库测试

6)        可靠性测试

7)        集成测试

8)        兼容性测试

9)        自动化测试

10)    性能测试

11)    回归测试



黑盒用例设计方法

1. 黑盒测试的概念

黑盒测试又称功能测试、数据驱动测试或基于规格说明书的测试,是一种从用户观点出发的测试。

2.       黑盒测试主要测试的错误类型有

                   ①不正确或遗漏的功能;

                   ②接口、界面错误;

                   ③性能错误;

                   ④数据结构或外部数据访问错误;

                   ⑤初始化或终止条件错误等等。

3.       黑盒测试的实施过程

                   测试计划阶段

                   测试设计阶段

                   测试执行阶段

                   测试总结阶段

4.       黑盒用例设计技术(重点)

                    1)等价类划分方法(重点)

                    2)边界值分析方法(重点)

                    3)场景法 (重点)流程分析法,是业务流程

                                     基本流(正常流)

                                     备选流(异常流)

                     4)错误推测方法

基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。

                    5)因果图方法

考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多.

                    6)判定表驱动分析方法

判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。

                    7)规则及规则合并

规则合并有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系

                    8)正交试验设计方法

它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点,是一种高效率、快速、经济的实验设计方法。

5.      等价类划分方法

可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.

                            有效等价类

                                               满足输入条件

                   无效等价类

                                     不满足输入条件

                                     超范围数值

                                     空值

                                     特殊字符

                                     空格  (trim 去除空格)

6.       边界值分析方法:是对等价类划分方法的补充

7.       测试方法选择的综合策略

1)        首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率最有效方法。

2)        在任何情况下都必须使用边界值分析方法。经验表明用这种方法设计出测试用例发现程序错误的能力最强。

3)        用错误推测法再追加一些测试用例。

4)        对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。

5)        对于业务流清晰的系统,可以利用场景法贯穿整个测试案例过程,在案例中综合使用各种测试方法。

                   在实际测试中,往往是综合使用各种方法才能有效提高测试效率和测试覆盖度


测试用例设计

1. 测试用例的主要构成要素

测试用例是一份测试文档,它描述输入、动作、和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作

2. 设计测试用例的原则

                   用语简洁清晰,但不能过于简单

                   用语无歧义,尽量少用过长的句子

                   用例的各个基本要素要齐备,不能缺失

                   用例的步骤应该足够详细,操作应该明确

                   容易被其它测试工程师读懂,并能顺利执行

3. 用例的粒度

1)        粒度,指的是粗细程度。粒度大,就是说一个用例所涵盖的关注内容比较多,反之同理

2)        用例的粒度大,则总的用例数就少,用例看起来也简洁

3)        用例的粒度小,则单条用例关注的测试点很集中,不容易遗漏,并且执行需要的时间比较好估计

4. 执行结果

1)        当用例还尚未被执行时,是New未执行状态

2)        当执行结果与预期结果相符时,是Pass通过状态

3)        当执行结果与预期结果不符时,是Fail失败状态

4)        当因为软件有缺陷而妨碍了用例步骤的执行,且该缺陷并不是我们的测试点,则用例是Block阻碍状态。

5)        当用例正在执行中,但是需要耗较多时间去观察其结果,是Investigate观察中状态。

5. 编写元素

                   用例编号、用例标题、用例级别、前提条件、操作步骤、预期结果、编写人、备注




测试执行

1.测试执行

         1)什么是执行测试用例

根据已有的测试用例,按照里面的步骤一步一步的执行,查看预期结果与实际结果是否一致。

         2)测试执行过程注意事项

ü  搭建测试环境事项

ü  注意前提条件和特殊说明

ü  测试用例要全部执行

ü  不要忽视任何偶然现象

ü  加强测试过程记录

ü  详细预期与实际的不一致

ü  提交缺陷时与开发的关系处理

ü  提交一份优秀的问题报告单

ü  及时更新测试用例

2. 软件缺陷

                   缺陷又名为BUG(臭虫)

                   并非所有的缺陷都需要修复

a)        没有足够的时间

b)        不算真正的软件缺陷

c)        修复的风险太大

d)        不值得修复

3. 缺陷的流程

4. 缺陷生命周期—状态             

5. 缺陷的等级      

6. 测试报告

                   测试报告的主要内容

                            数据统计

                            遗留bug情况

                            测试风险

                            测试对象评估

                            测试结论        

测试总结:回顾整个项目的测试过程,总结个人成长经验,取得了什么成绩、有哪些不足、有什么好的经验或者方法可以和大家分享呢?对工作进行一个理性的分析和思考。


参考资料:

https://blog.csdn.net/SOFTTING/article/details/79915690

你可能感兴趣的:(软件测试基础理论知识)