软件测试基础知识

软件测试基本概念及分类

想要介入一个项目必须要有的东西:需求文档,概要设计,详细设计,项目原型图,业务流程图
原型分为两种:

  • UI原型图 例如在这里插入图片描述

  • 项目原型图 例如在这里插入图片描述
    客户需求与实际产品
    在这里插入图片描述
    单元测试:测试一个非常小的单位,比如上图中漂浮的浮力,测试每一块纸板,重量、尺寸等是否合格
    集成测试:把所有纸板拼凑在一起
    系统测试:……
    验收测试:……

产品经理和客户直接对接,他们是最懂需求,除了产品经理以外,最该懂需求的就是测试团队,了解项目,了解业务流程,了解内部逻辑。只懂还不行,还得测,正向思维去测,还得用逆向思维去测。
拿到需求文档后产品经理一般都会组织开需求评审会,讲需求,讲原型图。此时,测试人员该想需求合不合理,有没有多余的功能模块,操作步骤可不可以简化,有没有多余的功能,限制条件合不合理,有没有描述不准确不清晰的地方等等。
需求评审会结束后该写测试计划,人员分工,里程碑,时间安排,风险评估,参考文档,提交文档,测试人员什么时间点介入,达到什么标准退出等等。人员分工完成后自己写自己模块的测试用例,测试用例写完开发人员就能基本写完接口。后台人员写接口,前端人员写界面
软件测试并不是在有可视化界面之后才开始测试

软件测试原则

  • 所有的软件测试都应追溯到用户需求(只要违背需求的都叫bug)
  • 应当把“尽早地和不断地进行软件测试”做为软件测试人的座右铭(测试是贯穿于整个项目的,从拿到需求文档开始就可以进行测试了)
  • 完全测试是不可能的,测试需要终止(100%没bug才能上线是不可能的)
  • 测试无法显示系统所有潜在的缺陷(有些隐藏bug需要特定场景下才能触发)

软件测试的对象
软件测试不等于程序测试,软件测试贯穿于软件定义和开发的整个期间。需求分析,概要设计,详细设计,以及程序编码等各个阶段所得到的文档,包括需求规格说明,概要设计规格说明,详细设计规格说明以及源程序,都是软件测试的对象。

  • 程序——源码(代码),接口
  • 数据——静态数据,动态数据,数据关联,自增自减,底层逻辑(数据库)
  • 文档——概要设计,详细设计,需求文档,原型图
  • 过程——正向流程,逆向流程,正向逻辑,逆向逻辑
  • 硬件——任何软件都离不开硬件,没有手机哪来的APP,没有电脑哪来的网站,软件放这个手机上能不能用,不同型号不同配置的手机电脑能不能兼容这个软件
  • 网络——3g、4g、5g、wifi(怎么验证,怎么限速,怎么测弱网)

优秀的软件测试人员应该具备的素质
软件测试员的一个基本素质是:打破砂锅问到底
1.探索精神:软件测试员不会害怕进入陌生环境
2.故障排除能手:软件测试员善于发现问题的症结,喜欢猜谜
3.不懈努力:软件测试员总是不停尝试。他们可能会碰到转瞬即逝或者难以重建的软件缺陷;他们不会心存侥幸,而是尽一切可能去寻找,不断学习新的知识
4.创造性:想出富有创意甚至超常的手段来寻找软件缺陷
5.追求完美:他们力求完美,但是知道某些无法企及时,不去苛求,而是尽力接近目标
6.判断准确:软件测试员要决定测试内容、测试时间,以及看到的问题是否算作真正的缺陷
7.老练稳重:软件测试员不害怕坏消息【划重点 劳动法规定,如果员工上班的时候由于测试没发现的一些问题导致公司亏损,是不需要员工赔偿的(谁让你用了,大不了你扣我点绩效,工资你少我一分都不行)】
8.说服力:软件测试员要善于表达观点,表明软件缺陷为何必须修复,并通过实际演示力陈述观点

对软件测试的错误理解

  • 如果发布出去的软件有质量问题,那是软件测试人员的错(不一定,很有可能是开发人员修改完bug之后最新版本没有部署上去,导致发布到正式环境的代码还是原来有误的代码)
  • 软件测试技术要求不高,至少比编程容易多了(功能测试要求不高,性能,自动化,网络安全,测试开发,人工智能,大数据,哪个要求不高?!)
  • 软件测试是测试人员的事,与开发人员无关(并不是,所有bug都需要与开发人员协商解决问题,两者是相互配合的关系。测试人员与开发、产品、运维都需要经常沟通)
  • 设计—实现—测试,软件测试是开发后期的一个阶段(软件测试没出型的时候就可以开始测试)
  • 测试完没有故障,说明我们的软件没有缺陷(换个人测,没准就有了)

软件测试关键词

单元测试、集成测试、系统测试、验收测试。是“从小到大”、“由内至外”、“循序渐进”的测试过程,体现了“分而治之”的思想。

单元测试
单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”。
集成测试
集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由测试小组采用白盒加黑盒的方式来测试,既要验证“设计”又要验证“需求”。
冒烟测试(确认测试)
就是把整个网站所有的按钮点一遍,全都能点通,如果点不通就版本打回,俗称点点点。
系统测试
系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。
验收测试
验收测试与系统测试非常相似,主要区别是测试人员不同,验收测试由用户执行。

代码合并成了接口,接口合并成了网站(细胞合并成了组织,组织合并成了器官)
只能测网站,八千;能测接口,一万二到一万五;能测代码,那就牛逼了,小的代码都没问题,项目肯定没问题,能测的细的薪资高,测的粗的薪资低(这是指功能测完)
比如一个器官(肺),表面看着是好的,没问题,围操场跑10圈后还是不是好的(稳定性)超负荷运转的抗压能力,短跑100米冲刺(压力);拿一点病毒攻击一下,看看病毒是被杀死还是扩散(安全)

从是否关心软件内部结构的角度划分
白盒测试
测试源代码,主要在系统内部结构中测试
黑盒测试
主要在应用端和服务器端,不用接触系统内部结构
灰盒测试
以上两种的结合

从是否执行程序的角度划分
静态测试
不用执行程序,通过人工或程序分析来证明软件的正确性(只看不动手操作)
动态测试
通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题

集成阶段的理论知识
集成方法:
1.自顶向下集成
(1)方法:从主控模块开始,沿着程序的控制层次向下延伸,逐步添加新的模块
(2)添加模块的过程:深度优先、广度优先策略。
优点:能够在测试早期检验主要的控制和关键的模块
缺点:需要编写大量的存根模块
深度优先:可以在很早期的时候把其中的一个流程跑通在这里插入图片描述
广度优先:可以在早期的时候看到一个项目的全貌在这里插入图片描述

2.自底向上集成
从最底层模块开始组装(很少用)
优点:只需编写驱动模块,无需存根模块
缺点:只有到最后才能看到程序的全貌

驱动模块:被测模块的上层是驱动模块
存根模块:被测模块的下层是存根模块
黄色模块的

黄色模块的驱动模块是第一层首页面,就1个,存根模块是两个红色部分,是2个,每个模块之间都是相互关联的

接口测试范围:
1.表单值域(等价类,边界值,是必填项)
2.业务流程测试
3.业务逻辑测试
4.接口性能压测
5.接口安全测试

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值