【注:该博客参照网上各种学习资料加上自己的理解之后梳理而成,仅作为学习使用,侵删!】
每天都要学一点点!加油!
今天先来梳理一下软件测试的一些基础知识点!
一、初识测试
1. 什么是软件测试?
“软件测试是从前期需求文档的评审,到中期测试用例及测试执行,再到后期问题单的提交和关闭等一系列的测试过程。”——《零基础快速入职入行:软件测试工程师》
“测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。”——《软件测试完全指南》
主要理解一点,软件测试是要找出软件中的错误(不单是与需求文档不符的地方,任何影响用户体验的地方都可以作为一个错误)。
2. 软件测试的分类?
软件测试有许多分类标准,根据不同的标准会有不同的分类结果。
按测试原理分类
:黑盒测试、白盒测试;
按测试阶段分类
:单元测试、集成测试、系统测试、验收测试;
按测试方向分类
:功能测试、性能测试、安全测试;
按测试对象分类
:app测试、web测试、物联网测试、小程序测试……
其他
:冒烟测试、回归测试、α测试、β测试……
3. 测试的基本流程?
软件测试的基本流程如下:
1).需求分析:
这一过程包括需求分析、学习业务流程、提取功能点、编写需求说明书等。
2).测试设计:
测试设计包括设计测试计划、测试方案、测试策略、测试用例等,前三者一般都会采用5W1H发方法进行分析。
3).测试执行:
进行单元测试、冒烟测试、集成测试、模块测试、回归测试、验收测试等一系列测试。
4).测试总结
另外,测试的流程可以在开发过程的后半段开始,称为V模型,也可以将测试提前,与开发同步进行,称为W模型。
4. 测试用例的设计方法?
这里主要指功能测试的测试用例常用设计方法。
1).等价类划分法:
等价类划分法就是将所有可能输入的数据划分为若干个区域,然后从这些区域中选取有代表性数据进行测试的方法。等价的意思就是在划分好的区域中,程序对该区域数据的处理方式都是一样的。
有效等价类是指符合需求文档中定义的数据,而无效等价类则是在需求文档之外的无意义数据(无意义数据不仅包括需求范围之外的数值,还包括字符、空值等)。
2).边界值分析法:
边界值分析法可以看做对等价类划分法的一个补充,它是指选取稍高或稍低于边界的一些数据进行测试。边界值分析法在对于输入条件是一个取值范围或有序集合的时候经常用到。
3).错误推测法:
错误推测法指测试人员凭借自己的直觉、经验和思维去设计一些容易导致软件出错的测试点,比如处理超长字符串、处理0等容易出错的点。
4).正交表分析法:
正交表分析法是一种有效地减少用例设计个数的方法,对于多输入框/多控件的测试用例设计很有帮助。它主要是通过正交排列法将所有组合中选取最优的组合进行测试。
5).因果判定法:
因果判定法需要进行以下步骤:
a).明确所有的输入条件(因)
b).明确所有输出结果(果)
c).明确哪些条件可以组合在一起,哪些条件不可以组合在一起
d).明确什么样的输入条件组合可以产生哪些输出结果
e).通过判定表展示输入条件的组合与输出条件的对应关系
f).根据判定表设计测试用例
因果判定法主要用于页面中各类按钮之间存在组合和制约关系的场景。
6. 测试用例的必备要素?
用例编号(唯一,可以按照规则“projectName-测试阶段-编号”来编写)、用例名称、前置条件、测试数据、测试步骤、预期结果、实际结果。当然根据实际需要可能还会有用例优先级、重要级、测试日期、测试人员等。
7. 有关bug的小问题?
1).bug的生命周期:
发现bug–新建bug–修复bug–回归测试–(激活bug)–完成
2).bug的常见状态:
激活、已解决、关闭
3).bug基本要素:
bug编号–bug名称–bug严重等级–bug优先级–bug复现步骤–bug佐证(截图、日志等)
4).bug分级:
按照bug严重等级划分:
a).blocker:一般指一些致命错误,比如系统崩溃、闪退、内存泄漏、用户数据丢失、涉及金额等重要数值计算错误等;
b).critical:存在比较严重的问题,比如某些非核心功能模块未实现或无法使用;
c).major:可能存在的一些兼容性问题、性能问题或界面问题,不影响系统的稳定和一般使用;
d).minor/trivial:建议性问题。
按照bug处理优先级:
a).immediate:需马上解决的bug,一般是一些致命的bug;
b).urgent:急需解决的bug;
c).high:需要高度重视的bug;
d).low:比较轻微的bug,在发布前解决或无需解决。
二、形形色色的测试概念
-
什么是黑盒测试?
黑盒测试,也称为功能测试或数据驱动测试,它是验证需求文档中产品所有的功能是否能够正常使用的一种测试方式。它着眼于外部具体的功能模块,只检查产品的功能是否与需求文档相符,不纠结于具体于代码结构和实现。 -
什么是白盒测试?
白盒测试,也称为结构测试或逻辑驱动测试。主要是检查程序内部结构是否合理,逻辑是否通顺。在进行白盒测试时需要遵循以下原则:
1)每一个模块中的每条独立路径都至少被测试一次;
2)程序内部数据结构必须合理有效;
3)所有逻辑值都要测试true/false两种情况;
4)在上下边界及可操作范围内运行所有循环。
白盒测试中的逻辑覆盖包括六种:
1)语句覆盖:每条语句都必须至少执行一次;
2)条件覆盖:每个条件都应该取各种所有的值;
3)判定覆盖:每个判断的每条分支至少执行一次;
4)判定/条件覆盖:同时满足2)和3);
5)条件组合覆盖:每个判断中各种条件的组合至少出现一次;
6)路径覆盖:程序中每一条可能执行的路径至少执行一次。 -
什么是灰盒测试?
灰盒测试是介于黑盒测试和白盒测试之中的一种测试,它既关注功能的使用(程序的输入输出),又关注程序内部代码结构,多用于集成测试阶段。 -
什么是单元测试?
单元测试是完成最小的软件设计单元(类/方法……)的验证工作,目的是保证模块被正确的编码。单元测试通常情况下是白盒的。 -
什么是集成测试?
集成测试是在单元测试之后对集成的模块接口进行测试。
集成的方式通常有两种:
1)自顶向下集成
自顶向下集成是指先集成主模块,然后按照控制层次结构向下集成。隶属于主模块的模块按照深度优先或广度优先的方式集成。
2)自底向上集成
自底向上集成是指从原子模块开始进行测试,然后向上集成。它要求隶属于上一层的所有模块总是存在的。 -
什么是系统测试?
系统测试是指对完整的软件进行测试。它包括功能测试、安全性测试、性能测试、稳定性测试、易用性测试、兼容性测试等等。 -
什么是验收测试?
验收测试一般是在系统测试完成之后,由上级或甲方进行测试。 -
什么是功能测试?
功能测试就是对产品的各项功能进行测试,检查产品是否达到用户需求。 -
什么是性能测试?
性能测试就是通过模拟软件在正常、峰值以及异常负载条件下的使用来对软件的性能指标进行测试,包括压力测试(发现软件性能瓶颈,“能跑多快”)、负载测试(高负载环境中持续运行,“能跑多久”)、并发测试、容量测试等。 -
什么是接口测试 ?
接口测试主要是针对子系统之间接口的数据交换、传递等过程进行的,主要检查参数传递的正确性、输出结构的正确性、功能实现的正确性以及异常处理的合理性。 -
什么是回归测试?
回归测试是指在bug进行修复之后,检查bug的修复程度,并再次执行测试用例检查是否引入新的bug。 -
什么是冒烟测试?
在系统测试之前先选取部分测试点进行测试,只有部分测试点全部通过后才开始进行全面的系统测试。这测试部分功能点的工作就称为冒烟测试。