当前位置: 首页 > news >正文

测试知识点总结

目录

一,基本概念

二,模型

1,开发模型

(1)瀑布模型

(2)螺旋模型

(3)增量模型

(4)迭代模型

(5)敏捷模型

2,软件的生命周期

3,测试模型

(1)V模型

(2)W模型​编辑

三,bug

1,什么是bug??

2,如何去描述一个bug?

3, bug的级别?

4, bug的生命周期:

5, 与开发发生争论应该怎么办??

四, 设计测试用例

1, 设计测试用例的原则:

2, 万能公式:

3, 模拟弱网环境(fiddler)

4, 具体用例的设计方法

①等价类

②边界值

③判定表法

④正交法

五,测试分类

(一)按照测试目标进行分类

(二) 按照执行的方式进行分类:

(三) 按照测试方法来进行测试:

①白盒测试

②黑盒测试

③灰盒测试

(四) 按照测试阶段来划分

(五) 按照是否手工测试:

(六) 按照实施组织划分

(七) 按照测试地域划分

六,性能测试

1, 吞吐量分类:

2, 性能测试的分类

3,性能测试工具(jmeter)


1,什么是测试??

2,测试的岗位有哪些??

3,软件测试和开发的区别??

4,优秀的测试人员需要具备哪些素质??

一,基本概念

        软件测试就是验证软件产品的特性是否满足用户的需求. 测试提高用户的满意度,软件的功能,软件的性能,界面符合大众喜好,易用性...

1,测试开发工程师:简称"测开",开发测试效率的工具(自动化,性能测试,覆盖率...)

测试工程师:手工测试

相同点: 两者的重心都是业务测试,统称为测试人员,都需要对产品负责,保障产品的质量

不同点: 测试开发比测试多了"开发"二字,而这个并不是指业务开发,这里的开发主要是指开发测试效率工具,通过效率工具来提升测试的效率和测试的质量,例如自动化,性能测试...

2,测试和调试的区别:

调试:开发人员完成,调试的任务定位并且解决问题,发生时期:开发阶段,编码阶段

测试:发现程序中的缺陷(主要由测试人员和开发人员来执行)如果开发的代码达不到基本的质量要求,测试人员会将产品直接打回,测试人员主要进行黑盒测试。项目组中涉及到的人员都要进行测试,例如产品经理,设计同学... 发生时期:测试贯穿整个软件开发的生命周期

3,测试简历写法:测试简历在开发建立的基础上继续增加额外的测试内容

学了大量的开发知识为什么还要学习开发的知识??

①测试人员也需要编写代码,如自动化测试,开发测试效率工具,测试人员也需要能够看懂代码,了解开发框架,这样才能更好地从代码层面发现问题

②提高软件测试质量

③个人性格相关,例如耐性,细心。

④从职业规划上来说

4,测试人员需要具备的素质??

①综合能力(沟通能力,快速学习能力,开发能力,文字能力)

提bug:跟开发进行沟通;了解需求:跟产品经理进行沟通;熟悉交互图:跟交互同学沟通;熟悉设计图:跟设计和前端同学沟通

②掌握自动化测试技术:

自动化是中大厂必不可少的技术事务,例如,每次更新历史的功能测试内容都是一样的,这是就需要进行自动化测试

③测试用例的设计能力:

设计是测试用例是设计人员的基本

④需要具有探索性思维

⑤兴趣 和 责任感和压力

5,需求:

        会包含两部分,分别为用户需求和软件需求,用户需求没有经过合理的评估,软件需求是开发人员和测试人员的基本依据。产品经理对用户需求进行评估,如果合理(技术可行,市场可行性,成本投入和收益占比...),之后才能转化成软件需求

二,模型

1,开发模型

        这里指开发模型,实际上指的是开发一款软件/功能所需要的开发流程,规范的开发流程是在时代的演变下逐渐成型的,并不是一开始就有规范的开发流程

(1)瀑布模型

        瀑布模型:软件的基础流程;

【需求分析-计划-设计-编码-测试】

特点:每个流程只执行一步,线性的开发流程

缺点:前面各阶段的遗留问题推迟到测试才会被发现,导致项目大范围的的返工;给测试的时间较少,可能导致测试不用充分,bug直接暴露给用户;产品的周期过长,可能导致需求过时;【产品很晚才可以被看到】

使用场景:需求固定的点小项目

(2)螺旋模型

        螺旋模型:在基础模型的基础上增加了,原型和风险分析;

【原型1-需求分析-风险分析-原型2-计划-风险分析-原型3-设计-风险分析-编码-测试】

特点:前期都引入了风险分析和原型,引入的目的是为了减少各阶段遗留的风险问题,避免把问题遗留到后面

缺点:增加额外的资金消耗和体力消耗,周期拉长了。项目中可能存在点风险性和风险管理人员技术水平有直接关系

(3)增量模型

        增量模型:将大需求,拆分成小需求,每个小需求独立开发上线【增量1-编码-测试-增量1发布-增量2-编码-测试-增量2发布......】

(4)迭代模型

增量模型和迭代模型一般是在大型项目里面使用,需求不明确

(5)敏捷模型

        主要目的是促进项目的快速完成,并适应需求的变更。在敏捷模型中,把需求分成了多个增量来进行完成,而每个增量又是在迭代中开发完成的

特点:轻文档,轻流程,重目标,重产出(敏捷宣言)

⭐scrum是敏捷模型一种,迭代式增量开发模型。三个角色和五个会议

【三个角色:产品经理(负责收集需求,产出需求文档),项目经理(召开各种会议,协调项目),研发团队(由不同的角色组成)】

【五个会议:整理user story 形成product backlog;发布计划会议:评估需求的合理性,确定本次迭代需要完成的需求spring backlog;迭代计划会议:任务的拆解,明确每个任务的负责人,和工时的估计;每日会议:了解当前的任务进度,定今天的工作目标,有问题及时解决,在规定的时间内要完成交付;演示会议:展示产品,发现问题,从而产出用户需求,在放到需求池中;回顾会议:回顾上一次迭代流程中问题并不断进行优化】

2,软件的生命周期

        需求分析-计划(对成立的需求执行需求执行计划)-设计(细化成一个一个小任务,如何设计框架,设计接口,采用什么技术)-编码(参考需求文档,设计文档)-测试-运行维护(修复性维护,完善性维护,预防性维 )

3,测试模型

(1)V模型

        单元测试(针对代码的最小单元进行测试)-集成测试(把小单元集成起来测试-系统测试-验收测试)缺点:具有瀑布模型相同的缺陷

(2)W模型

重流程,无法支持敏捷开发模式

三,bug

1,什么是bug??

1,当且仅当规格说明是存在并且正确的,程序与规格说明之间不匹配才是错误

2,当需求规格说明书没有提及的功能时,判断标准以最终用户为准,当程序没有实现其最终用户合理的预期功能效果时,就是软件的错误

2,如何去描述一个bug?

        问题出现的版本,问题出现的环境,问题出现的步骤,预期结果,实际结果,优先级,指定负责人,备注,bug级别

3, bug的级别?

崩溃,严重,一般,次要

bug评估的作用;

(1)评估一个程序员的开发能力,测试人员的能力

(2)年终奖

(3)给修复bug进行排序

4, bug的生命周期:

        测试人员创建bug,程序员确认是否为有效bug,如果是无效的bug,则拒绝修改。如果是有效bug则会进入到open,如果bug的优先级高时间充足就会进行修改,修改完成后,标记为fixed,如果bug的优先级比较低,或时间不充足就会标记为delay,意为延后修改。当bug修改之后测试人员会再次进行测试,如果如果测试通过则会关闭bug,如果bug仍然存在,就需要重新打开bug,开发人员需要再次进行修改。

是测试人员在执行测试阶段提出来的。

软件测试的生命周期:贯穿整个程序的生命周期

5, 与开发发生争论应该怎么办??

①先检查自身,是否bug描述不清

②站在用户的角度上考虑用户的使用感受,并抛出问题

③bug的定级一定要有理有据

④提高自己的业务水平。不仅能提出问题,也能提出解决方案

⑤如果上述失效,就会进行bug评审,需要三个代表参加:测试代表,开发代表,产品代表;会议目的:如何解决bug,分析缺陷产生的原因,找出预防方案

四, 设计测试用例

        定义:为了实施测试向被测试的系统提供一组集合,集合里面包括:测试环境,操作步骤,测试数据,预期结果等要素

1, 设计测试用例的原则:

①编写不应该只根据有效和预料到的的情况进行输入,而且还要根据无效和未预料到的情况 .

②检查程序是否'未做其应该做的',和是否'做了不应该做的'

2, 万能公式:

功能测试+界面测试+性能测试+兼容性测试+易用性测试+安全测试

√功能测试:产品的功能角度,验证产品的正确性;

√界面测试:肉眼可看到的的部分都称之为界面,界面上所有的都是都要进行测试,元素(大小,颜色,形状,材质...);

√兼容性问题:不同版本(软件,系统),浏览器的兼容性,数据的兼容性;

√易用性测试:易用性(引导教程)(方法教程)(用户说明书);

√安全性测试:危险材质,味道.接口请求参数或者响应数据都要考虑到数据的安全,SQL注入,越权(垂直越权,水平越权)

3, 模拟弱网环境(fiddler)

        [更改网络的上行速度和下行速度(传输1KB需要多少毫秒)]

4, 具体用例的设计方法

①等价类

        解决了穷举法不能解决的问题,依据需求,将输入划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例通过了,那么这个等价类里面的输入就都通过了

等价类的分类:有效等价类,无效等价类

○有效等价类:对程序的规格说明书是合理的,有意义的的输入数据构成的集合,利用有效等价类

○无效等价类:根据需求说明书,不满足需求的集合

②边界值

        边界值分析法就是对输入和输出的边界值进行测试的一种黑盒的测试方法,通常边界分析法是对等价类方法的一种补充

        边界值&次边界值:边界值即给定范围的左数据和右数据,次边界值根据边界值的有效无效来确定

③判定表法

1,确认需求中的输入条件和输出条件

2,找出输入条件和输出条件之间的关系

3,画判定表

4,根据判定表编写测试用例

④正交法

        正交法目的就是减少用例的数目,同时保证较高的测试覆盖

五,测试分类

测试不是单维度的,而是从多维度保障产品的质量.

(一)按照测试目标进行分类

①界面测试,完全基于设计图进行测试

②功能测试,

③性能测试:性能的好坏,需要通过不同的指标来进行评估

④可靠性试验:是指系统正常运行的能力或程度,一般正常向用户提供软件服务的时间在总时间的百分比

可靠性=正常运行的时间/(正常运行的时间+非正常运行的时间)*100%

一般情况下,企业中的可用性指标一般要达到4,5个'9'.99.99%或99.999%

⑤安全测试:

1,输入域,入带有恶性或者带有病毒的脚本和长字符

2,SQL注入

3,数据文件,邮件文件,系统配置文件里面还有危害系统的是信息和数据

4,权限分配,越权

5,假冒id

⑥易用性测试

(二) 按照执行的方式进行分类:

①静态测试,不运行,只是静态的检查程序代码,代码扫描工具

②动态测试:运行,输入相应的数据

(三) 按照测试方法来进行测试:

①白盒测试

        又称结构测试和逻辑测试,一般用来分析程序内部结构,根据程序的逻辑结构来设计测试用例.其目的是通过软件内部的逻辑结构,对软件的逻辑路径进行覆盖测试

又分为静态测试和动态测试

#静态测试:桌面检查,代码审查,代码走查,扫描工具

#动态测试:语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖,路径覆盖

○语句覆盖:每个语句至少执行一次

○判定覆盖:if语句是判定语句,既要测试为真,也要测试为假,是否可以进入到if语句之中

○条件覆盖:覆盖到每一个条件,为真为假的情况(例如,ABCD 四个条件,则测试用例分为两组,一组为TTTT.另一组为FFFF)

○判定条件覆盖:既能够做到判定的的覆盖,也能做到条件的覆盖(将条件覆盖和判定覆盖四个测试用例合成两个,这两个既可以实现条件覆盖也可以实现判定覆盖)

○条件组合覆盖:(TTTT,TFTF,FTFTFFFF)

○路径覆盖:先按判定都找出来,对判定进行组合,根据判定来写条件,通过条件来设计路径.保证所有路径都覆盖到了

一般会先进行静态再执行动态

②黑盒测试

        就是在完全不考虑程序逻辑和内部结构的情况下,检查系统功能是否按照需求规格说明书规定的,所以黑盒测试又称之为数据驱动测试,只注重软件的功能,需要从用户的角度出发,可能会使用哪些功能,会遇到什么问题.锻炼测试产品思维

方法:等价类,边界值,因果图,场景法,错误猜测法

③灰盒测试

        介于百和黑直接,多用于集成测试阶段,没有白盒测试详细和完整,没有黑盒测试覆盖产品范围广,因此,灰盒测试不可以代替黑盒测试

问:常见面试题:那种测试方法用的比较多??

答:白盒测试通常用于单元测试阶段,灰盒测试常用于集成测试,黑盒测试常用于系统测试.开发人员主要使用白盒测试和灰盒测试,测试人员主要用白盒测试和黑盒测试,对测试人员来说,相较于白盒,使用黑盒测试更多一些

(四) 按照测试阶段来划分

单元测试:白盒测试,最小测试单元(人为规定)

集成测试:

系统测试:验证产品特性,黑盒测试

(1)冒烟测试:检查系统是否具备可测试性

(2)回归测试:所有功能都测试一遍后,在整体回归一遍

(3)验收测试:甲方或者用户

(五) 按照是否手工测试:

自动化测试手工测试
优点

节省成本

提高测试人员工作效率

保证软件的质量

可以进行散发性测试

对测试人员的自动化技术要求低

缺点

对测试人员自动化技术要求较高

不能散发性测试

效率低

人员,时间成本高

(六) 按照实施组织划分

α测试:内测,公司的内部用户

β测试:公测,测试是正式用户的一部分

第三方测试:

(七) 按照测试地域划分

国际化测试(时间,语言,机器型号,数字格式,货币。。。。)

本地测试:

六,性能测试

        功能测试在前,性能测试在后,性能测试和功能测试都是在系统测试阶段进行

1, 吞吐量分类:

(一)按照请求数量:

TPS:每秒处理事务数:计算方式:总的请求成功数/总的运行时间

QPS:每秒查询率

(二)按照网络数据包划分

2, 性能测试的分类

(1)基准测试(BenchmarkTesting)⼜称单⽤⼾测试,主要⽤于监测被测系统在较低压⼒下的运⾏状况并记录相关数据。

(2)并发测试(ConcurrencyTesting)⽤于评估被测系统的某些特定操作同时发⽣时的性能表现,例如,被测系统被多个⽤⼾同时登录时的响应能⼒,或系统的某⼀功能被多个⽤⼾同时操作时的性 能表现。

(3)负载测试(LoadTesting)是性能测试的⼀种测试类型,⽤于评估被测系统在预期的不同负载下的 ⾏为。通过负载测试可以获取系统能够达到的峰值指标。

(4)压⼒测试(StressTesting)⽤于评估被测系统在⾼于预期、⾼于指定容量负载需求或低于最少需求 资源的条件下的⾏为。

(5)稳定性测试,在负载测试的基础上,执⾏较⻓时间的测试以检查系统的稳定性。通常较⻓时间指3*24⼩时以上

3,性能测试工具(jmeter)

显示基于项目的性能测试必须要借助性能测试工具

下载jmeter;

打开方式:apache-jmeter-5.5->bin->jmeter.bat(双击)

法二:配置jmeter的环境变量,在终端执行jmeter命令打开

相关文章:

  • 记录学习的第二十五天
  • 自动化三维扫描:CASAIM外观尺寸智能检测
  • Makefile教程
  • 论文学习:《EVlncRNA-net:一种双通道深度学习方法,用于对实验验证的lncRNA进行准确预测》
  • 操做系统----第二章:多进程图像之CPU管理
  • PTA | 实验室使用排期
  • Arduino Uno R3连接HC-03
  • MVC 模式深度解析与 Spring 框架实践研究
  • Python运算符
  • MySQL存过
  • VirtualBox 无法枚举 USB 设备的问题
  • 力扣刷题HOT100——438.找到字符串中所有字母异位词
  • DAY 44 leetcode 28--字符串.实现strStr()
  • 【技术文章的标准结构与内容指南】
  • GIC驱动程序分析
  • 自注意力的机制内涵和设计逻辑
  • 151. 反转字符串中的单词
  • AJAX原理与XMLHttpRequest
  • 榕壹云酒水定制系统:基于THinKPHP+MySQL+UniApp打造数字化时代的个性化购酒新体验
  • EasyCVR视频汇聚系统:AIoT+视频智能分析赋能食品安全生产全流程监管
  • 特朗普称或将“大幅降低”对华关税,外交部:打,奉陪到底;谈,大门敞开
  • 35部国产佳片入选 ,北影节·第32届大学生电影节启动
  • ESG领跑者|每一步都向前,李宁要让可持续发展成为可持续之事
  • 群内“分享”侵权书籍电子版,培训公司被判赔偿出版社2万元
  • 消息人士称哈马斯愿与以色列达成长期停火
  • 内部敏感文件遭万人共享,特朗普政府又曝安全漏洞