大体介绍

文本知识描述:
https://blog.csdn.net/weixin_42441901/article/details/87876674
软件测试工程师(Software Testing Engineer):指理解产品的功能要求,并对其进行测试,检查软件有没有缺陷(Bug),测试软件是否具有稳定性(Robustness)、安全性、易操作性等性能,写出相应的测试规范和测试用例的专门工作人员。

软件测试的基本流程

需求分析、测试计划、测试设计、测试开发、测试执行、测试评估。

测试需求分析阶段:阅读需求,理解需求,主要就是对业务的学习,分析需求点,参与需求评审会议

测试计划阶段:主要任务就是编写测试计划,参考软件需求规格说明书,项目总体计划,内容包括测试范围(来自需求文档),进度安排,人力物力的分配,整体测试策略的制定。风险评估与规避措施有一个制定。

测试设计阶段:主要是编写测试用例,会参考需求文档(原型图),概要设计,详细设计等文档,用例编写完成之后会进行评审。

测试执行阶段:搭建环境,执行冒烟测试(预测试)-然后进入正式测试,bug管理直到测试结束

测试评估阶段:出测试报告,确认是否可以上线

基础知识

1.软件测试和软件质量

软件测试:在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括对软件形成过程的文档、数据以及程序进行测试
软件质量:软件特性的总和,软件满足规定或潜在用户需求的能力

2.软件测试的目的

最终目标是确保软件功能符合用户需求,在产品发布或交付前尽可能多的发现并改正缺陷。

3. 软件测试原则

所有的软件测试都应追溯到用户需求。
应当把“尽早地和不断地进行软件测试”作为测试者的座右铭。
完全测试是不可能的,测试需要终止。
测试无法显示软件潜在的缺陷。
充分注意测试中的群集现象。
程序员应避免检查自己的程序。
尽量避免测试的随意性。

4.编写测试用例的方法

详细:https://www.cnblogs.com/fuxinxin/p/8991703.html

方法测试思想
等价类划分法(有/无效等价类)从大量数据中划分范围(等价类),然后从每个范围中挑选代表数据,这些代表数据要能反应这个范围内数据的测试结果。
边界值边界值是程序员在编程时是最容易出错的位置,所以要测试边界。
因果图就是通过画图的方式表达输入条件和输出结果之间的关系
正交排列法使用最少的抽样数据达到最广的,覆盖率最高的统计结果。
测试大纲法软件中有多个窗口,窗口中有若干操作(功能点),为了理清窗口之间的关系(结果)
场景法场景法是模拟用户操作软件时的各种情景,主要用于测试软件的业务逻辑和流程。当拿到一个测试任务是,我们并不先关注某个文本框的等价类等是否满足要求,而是先关注它的主要功能和业务流程是否正确实现,这就需要场景法来完成测试。当业务流程测试没有问题,也就是软件的主要功能没有问题时,我们再去关注控件的等价类、边界值等细节测试。(先整体后细节)
5.软件测试过程模型

详细的模型过程:https://www.cnblogs.com/linxiu-0925/p/7761392.html

V模型(V-model):V模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系 。
软件测试若使用经典的V模型阶段可以分为:
单元测试  集成测试  系统测试
优势:
 - 最基本的测试模型
局限性:
 - 测试是开发之后的一个阶段。
 - 测试的对象就是程序本身。
 - 实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现。
 - 整个软件产品的过程质量保证完全依赖于开发人员的能力和对工作的责任心,而且上一步的结果必须是充分和正确的,如果任何一个环节出了问题,则必将严重的影响整个工程的质量和预期进度
W模型(W-model):相对于V模型,W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。
W模型中测试与开发对应关系如下:
开发:需求分析、概要设计、 详细设计、 编码、 软件集成、系统集成、部署
  ↑   ↑ ↑ ↑ ↑ ↑  ↑
测试:需求评审、概要设计评审、详细设计评审、单元测试、集成测试、系统测试、验收测试
优势:
 - 测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。W模型有利于尽早地全面的发现问题。
局限性:
 - 在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。
H模型(W-model):软件测试的过程活动完全独立,形成了一个完全独立的流程,贯穿于整个产品的周期,与其他流程并发进行,某个测试点准备就绪后就可以从测试准备阶段进行到测试执行阶段;软件测试可以根据被测产品的不同分层进行。
6.分类整理(重要)

引用来源:
https://www.cnblogs.com/findyou/p/6480411.html
https://blog.csdn.net/u013800127/article/details/78284092
https://blog.csdn.net/weixin_42441901/article/details/87876674
在这里插入图片描述

测试分类
开发过程单元、集成、确认、系统、验收
实施组织开发方、用户、第三方
测试技术白盒、黑盒、灰盒或静态、动态
按开发过程(阶段)划分

单元测试

定义又称模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作;可以从程序的内部结构出发设计测试用例,多个模块测试可以平行地独立进行测试
目的发现模块内部可能存在的各种差错
测试内容模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
步骤利用设计文档设计测试用例;创建被测模块的桩模块或驱动模块;利用被测试模块、驱动模块和桩模块来建立测试环境,进行测试

集成测试

定义又称组装测试或联合测试,在单元测试基础上,将所有模块按概要设计和详细设计进行组装
目的发现模块连接中的接口可能存在的各种差错
测试内容穿越模块之间的数据是否会丢失;一个模块组装后是否会对另一模块或其他模块存在影响;各个子功能组装在一起是否会达到预期的父功能;全局数据结构是否有问题;单个模块的错误累积起来是否会放在
步骤一次性组装方式,非增殖式方式也叫整体拼装,对模块分别测试然后将所有模块组装;第二种增殖式组装方式,可以是自顶向下或自底向上
完成标志成功地执行了测试计划中规定的所有测试用例;修正了所发现的错误;测试结果通过专门小组的评审

确认测试

目的验证软件的功能和性能及其他特性是否与用户的要求一致
测试内容有效性测试 运行黑盒测试方法验证所测软件是否满足需求规格说明书列出的需求;所有文档正确且便于使用;软件可移植性、易用性、兼容性进行测试;软件配置复查 保证软件配置的所有成分都齐全

系统测试

目的验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试
测试内容在真实或模拟系统运行环境下,检查完整的程序系统能否和系统(硬件设备、网络、系统软件)正确配置、连接,满足用户需求

验收测试

目的在用户环境中进行测试,以确定系统和产品是否能满足合同或用户所规定的需求。
测试内容根据任务书或合同、供需双方约定的验收依据文档进行对整个系统的测试和评审,确认是否接收或拒绝系统。

Alpha测试
是验收测试的一种,是由用户在开发者的场所来进行的,Alpha测试是在一个受控的环境中进行的。
Beta测试
是验收测试的一种,由软件的最终用户在一个或多个用户场所来进行的,开发者通常不在现场,用户记录测试中遇到的问题并报告给开发者。

按实施组织划分

开发方测试:
通常也叫‘验收测试’或‘a测试’,在软件开发环境中,开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求

用户测试:
在用户的应用环境下,用户检测与核实软件实现是否符合自己预期的要求。B测试通常被认为是用户测试,把软件有计划地免费地分发到目标市场,让用户大量使用、评价检查软件

第三方测试:
由第三方测试机构来进行的测试,也称独立测试

按测试技术划分

动态测试:
通过人工或使用工具运行程序进行检查,分析程序的执行状态和程序的外部表现

静态测试:
不运行程序,能过人工对程序和文档进行分析与检查,包括走查、符号执行、需求确认等

白盒测试:
通过对程序内部结构的分析、检测来寻找问题,检查程序的结构及路径是否正确,检查程序的内部动作是否按照设计说明的规定正常进行

黑盒测试:
又称功能测试,通过运行程序发现其缺陷和错误,在程序界面处进行测试

灰盒测试:
介于白盒和黑盒测试之间,关注输出对于输入的正确性,也关注程序的内部结构,但没有白盒测试那样详细、完整

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐