软件测试基础
1.0、什么是软件测试?(定义)
顾名思义,就是在规定的条件下对⼀个产品或程序进⾏操作,以发现程序错误,衡量软件质量,并对其是否能满⾜设计要求进⾏评估的过程
2.0、程序测试包含哪些内容
程序测试包括程序逻辑功能,界⾯,性能,易⽤性,兼容性,安装等测试,当然⽂档测试也算,排版,字体⼤⼩,也算程序测试的内容
3.0、测试环境
测试环境=硬件+软件+⽹络
硬件环境:笔记本,台式机,服务器
软件环境:不同的操作系统 windows10 windows8 windows7 Linux Mac,
不同浏览器:IE firefox chrom
⽹络:局域⽹还是互联⽹
4.0
测试流程:
需求评审测试计划制定测试计划执⾏发布与测试报告总结
1从⽤户体验⾓度提供设计建议2从开发经验⾓度,分析设计是否存在风险,是否能够实现3 联合其他模块分析,设计是否存在漏洞,逻辑功能存
在缺陷1测试⽤例设计2测试
⽤例评审,和测试时
间估计3测试资源申请
4测试⼈员分配
1⽤例执⾏2 Bug修复验证和推动版本进度3
性能监控,压⼒测试,兼容测试
1版本发布和线上质量监控,⽤户反馈实时
响应2测试⽤例更新整合,测试计划评估3
提供版本最终测试报告,包括⽤例覆盖
率,bug数据分析等
全程跟进需求变更,与产品⽆缝沟通,在测试阶段有需求变更要第⼀时间了解改动范围,如果影响版本的质量要说明风险,评估需求是否必须更改以及是否影响版本发布上线的时间
线规划测试项⽬需要的
功能开发和⾃动化开
发⼈员⽐例,规划整
个测试流程需要的时
间,要预留处理紧急
事件的缓冲
执⾏协调测试资源,部署测试环境,督促开
发和产品提供⼀切需要的测试⼯具,测试数
据等,推动版本进度,每⽇进⾏bug
review(bug复盘),标识出bug解决的优
先级和提交测试的时间点,每⽇提供当⽇产
品质量报告
报告项⽬发布上线后,对整个版本的bug进
⾏数据分析,总结出⽤例的覆盖率,对于没
有覆盖到⽤例的bug,转化成⽤例,同时测
试⼈员之间进⾏分享,针对新接触的测试⽅
法测试⼯具和有价值的bug进⾏经验总结
5.0
、测试软件的分类:软件测试:
⼀、按阶段划分:
  1、单元测试(是指对软件中的最⼩可测试单元进⾏检查和验证)、
  2、集成测试(是指将通过测试单元模块组装成系统或者⼦系统,再进⾏测试,重点测试不同模块的接⼝部分。)、
  3、系统测试(就是系统测试和验收测试。)、
  4、验收测试(以⽤户为主的测试,软件开发⼈员和质量保证⼈员参加,)
⼆、按是否运⾏程序划分:
  1、静态测试、(静态测试,是指不实际运⾏被测试软件,⽽只是静态的检查程序代码、界⾯或者⽂档中可能存在的错误的过程。)
  2、动态测试 (动态测试:是指实际运⾏被测程序,输⼊相应的测试数据,检查实际输出结果和预期结果是否相符的过程。)
三、按是否查看源代码划分:
  1、⽩盒测试、(⽩盒测试(White Box Testing),指的是把盒⼦盖打开,去研究⾥边源代码和程序结构)。
  2、⿊盒测试:(⿊盒测试(Black Box -Test)指的是把被测试的软件看做⼀个⿊盒⼦,我们不去关⼼盒⼦⾥边的结构是什么样⼦,只关⼼软件的输⼊数据和输出结果)
  ⿊盒测试分为:
      ⼀、功能测试:
      1.逻辑功能测试(测试应⽤是否符合逻辑,⽐如应该先注册账号之后,才能进⾏登录,登录之后才能看我的购物车)、
      2.界⾯测试(窗⼝⼤⼩,按钮⼤⼩,点击按钮弹出什么样的提⽰框,是否有滚动条,下拉菜单是否有展⽰内容…)、
      3.易⽤性测试(从软件使⽤的合理性和⽅便性等⾓度对软件系统进⾏检查,⽐如,软件窗⼝长宽⽐例是否合适,颜⾊⾊彩是否赏⼼悦⽬,字体⼤⼩是否合适)、安装测试、
      4.兼容性测试(硬件兼容性测试和软件兼容性测试)
      ⼆、性能测试:
      1.⼀般性能测试(软件正常运⾏,不向其施加任何压⼒的测试)、
      2.稳定性测试(也叫可靠性测试,是指连续运⾏被测系统,检查系统运⾏时的稳定程度)、
      3.负载测试(让被测系统在其能够忍受的压⼒范围之内连续运⾏,来测试系统的稳定性。(测试载重))、
      4.压⼒测试(持续不断的给被测试的系统增加压⼒,直到被测试的系统压垮为⽌,⽤来测试系统所承受的最⼤压⼒。(测试强度))
四、其他 :
  1、回归测试:(是指对软件的新版本进⾏测试时,重复执⾏上⼀个版本测试时的⽤例,⽐如在1.0版本中,有⼀个bug,到了2.0版本中,再重新测试1.0中这个bug)
  2、冒烟测试:(指对⼀个软件进⾏系统⼤规模的测试之前,先验证⼀下软件的基本功能是否实现,是否具备可测性)
  3、随机测试(是指测试中所有的输⼊数据都是随机⽣成的,其⽬的是模拟⽤户的真实操作,并发现⼀些边缘性的错误。)
6.0 软件测试的原则
1.应当把“尽早和不断地测试”作为开发者的座右铭。
软件测试app2.设计测试⽤例时,应该考虑到合法的输⼊和不合法的输⼊,以及各种边界条件,特殊情况下要制造极端状态和意外状态,⽐如⽹络异常中断、电源断电等
情况。
3.⼀定要注意测试中的错误集中发⽣现象,这和程序员的编程⽔平和习惯有很⼤的关系。
4.对测试错误结果⼀定要有⼀个确认的过程。⼀般有A测试出来的错误,⼀定要有⼀个B来确认,严重的错误可以召开评审会进⾏讨论和分析。
5.制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成⼀个⾼⽔平的测试。
6.回归测试的关联性⼀定要引起充分的注意,修改⼀个错误⽽引起更多错误出现的现象并不少见。
7.妥善保存⼀切测试过程⽂档,意义是不⾔⽽喻的,测试的重现性往往要靠测试⽂档。
7.0软件⽣命周期模型
软件⽣命周期 同任何事物⼀样,⼀个软件产品或软件系统也要经历孕育、诞⽣、成长、成熟、衰亡等阶段,⼀般称为软件⽣命周期(软件⽣存周期)
模型:螺旋模型、W模型、V模型、瀑布型⽣命周期、迭代模型、快速原型模型、
v模型:
优点:
1 每⼀个阶段都清晰明了,便于控制开发的每⼀个过程。
2 既包含单元测试⼜包含系统测试。
缺点:
1 测试介⼊的⽐较晚,对于前期的⼀些缺陷⽆从发现和修改。
2 测试和开发串⾏。
W模型:
优点
1 测试伴随着软件的整个⽣命周期,例如,在需求分析结束后就可以进⾏需求分析测试。
2 测试于开发是并⾏独⽴进⾏的。
缺点:
1 对有些项⽬,开发过程中根本没有⽂档产⽣,故W模型⽆法使⽤。
2 对于需求和设计的测试技术要求很⾼,实践起来很困难。
8.0. 软件测试⼯具
软件测试⼯具是通过⼀些⼯具能够使软件的⼀些简单问题直观的显⽰,使测试⼈员更好的出软件错误所在。软件测试⼯具分为⾃动化软件测试⼯具和测试管理(禅道)⼯具。
软件测试⼯具存在的价值是为了提⾼测试效率,⽤软件来代替⼀些⼈⼯输⼊。
测试管理⼯具是为了复⽤测试⽤例,提⾼软件测试的价值。
⼀个好的软件测试⼯具和测试管理⼯具结合起来使⽤将会使软件测试效率⼤⼤的提⾼。
Bug管理⼯具: 禅道 Jira(付费),Trac,gitlab
⾃动化 python+ selenium ,python+ appnium (ui⾃动化) pytest,unites,Junit (测试⽤例 单元测试) innerHtml (发送测试报告)request +python+allure 接⼝⾃动化
性能测试⼯具 jmeter ,Loadrunner、
抓包⼯具 Fiddler ,charles (弱⽹测试的)
接⼝⼯具 postman ,jmeter
录制脚本 bodyboy jmeter
云测 腾讯云 模拟不同的移动端或者是web浏览器
命令 Linux adb monkey
数据库 myql,oracle,redis
接⼝⼯具 postman ,jmeter
录制脚本 bodyboy jmeter
云测 腾讯云 模拟不同的移动端或者是web浏览器
命令 Linux adb monkey
数据库 myql,oracle,redis
语⾔ python,java,c,c++

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。