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.应当把“尽早和不断地测试”作为开发者的座右铭。 |
---|
2.设计测试用例时,应该考虑到合法的输入和不合法的输入,以及各种边界条件,特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。 |
3.一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。 |
4.对测试错误结果一定要有一个确认的过程。一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。 |
5.制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试。 |
6.回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。 |
7.妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。 |
7.0软件生命周期模型
软件生命周期 同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生命周期(软件生存周期)
模型:螺旋模型、W模型、V模型、瀑布型生命周期、迭代模型、快速原型模型、
v模型:
优点:
1 每一个阶段都清晰明了,便于控制开发的每一个过程。
2 既包含单元测试又包含系统测试。
缺点:
1 测试介入的比较晚,对于前期的一些缺陷无从发现和修改。
2 测试和开发串行。
W模型:
优点
1 测试伴随着软件的整个生命周期,例如,在需求分析结束后就可以进行需求分析测试。
2 测试于开发是并行独立进行的。
缺点:
1 对有些项目,开发过程中根本没有文档产生,故W模型无法使用。
2 对于需求和设计的测试技术要求很高,实践起来很困难。
8.0. 软件测试工具
https://zhidao.baidu.com/question/8152959.html
软件测试工具是通过一些工具能够使软件的一些简单问题直观的显示,使测试人员更好的找出软件错误所在。
软件测试工具分为自动化软件测试工具和测试管理(禅道)工具。
软件测试工具存在的价值是为了提高测试效率,用软件来代替一些人工输入。
测试管理工具是为了复用测试用例,提高软件测试的价值。
一个好的软件测试工具和测试管理工具结合起来使用将会使软件测试效率大大的提高。
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++