1.1单元测试
测试阶段:编码后,编码前(TDD)
测试驱动开发:Test——Driven——Development
先写测试用例,跑测试用例,开发人员根据测试用例产生的异常去补充开发代码
测试内容:
模块接口测试:输入参数,参数的个数,参数的类型,参数的顺序要符合接口文档
局部数据测试:
边界测试:for while
错误处理测:try catch finally
路径测试:if else switch
1.2集成测
测试阶段:单元测试之后
测试内容:模块之间数据的传递,模块之间功能的冲突,模块功能的正确性,全局数据结构,单个模块的缺陷对整个系统的影响
1.3系统测试
测试阶段:集成测试以后
测试内容:界面,功能,性能,易用性,安全性,兼容性等
(1)回归测试:当系统的代码进行修改时,为了防止新添加的代码对系统引入新的错误而进行的测试,原因:添加新需求,修改BUG
(2)冒烟测试:对系统的核心功能和主要流程进行测试。是决定我们测试人员是否接受系统进行正式测试的依据。
1.4验收测试
测试阶段:系统测试之后,用户进行测试
测试内容:界面,功能,性能,易用性,安全性,兼容性等,文档的测试(功能说明文档,开发文档,使用说明书)
2.1 α测试
把用户(除测试和开发以外的公司人员)请到开发现场进行测试,及时发现并解决问题,但是环境受开发环境的限制,测试时间比较集中。
2.2 β测试
用户在正常的使用环境下进行测试,通常一个周期测试完成,把问题整理成文档,反馈给开发人员,开发人员进行改进;测试时间比较分散,但是是用户在真实的使用环境下进行测试。
β测试在α测试之后
2.3 第三方测试
第三方软件测评机构,是根据行业内的一些标准和规范进行测试
3.1静态测试(代码不运行)
3.2动态测试(代码运行)
4.1手工测试
通过界面去测试,如果进行大量的测试容易出错,但是比较灵活,可以进行发散的测试
4.2自动化测试
前提:在系统功能比较稳定的时候才能可以做自动化测试
自动化测试最大的价值:脚本的重复利用率,重复利用率越高价值越大
步骤:
完成功能测试,版本基本稳定
根据项目特性,选择适合项目的自动化工具,并搭建环境
提取手工测试的测试用例转化为自动化测试的用例
通过工具、代码实现自动化的构造输入,自动检测输出结果是否符合预期
生成自动测试报告
持续改进,脚本优化
为什么要把手工测试的测试用例转化为自动化测试用例
手工测试可以被自动化测试替换吗?不可以,机器替代不了人的思维
(1)黑盒测试:不关心软件内部的逻辑结果,只关心输入和输出是否达到我们的预期,相当于把测试的软件当成一个只有输入输出的黑色盒子
黑河测试设计测试用例的方法:等价类,边界值,因果图,正交法,场景设计,错误猜测
(2)白盒测试:研究软件内部的程序逻辑和结构,验证是否满足软件需求,相当于把软件当成一个能看见软件内部结构的白色的盒子去测试
白盒测试的方法:判定覆盖,条件覆盖,判定和条件的组合,判定组合,条件组合,语句覆盖,逻辑覆盖,路径覆盖
(3)灰盒测试:介于白盒和黑盒之间,即关心输入和输出又关心程序内部的机构
(4)单元测试:
安装插件Junit
找到要测的性能单元测试的类,选中类名,ctrl+shift+T。创建单元测试类
写单元测试方法
国际化测试本地测试
软件国际化:就是在设计软件的时候,采用一种工程技术,使得软件在转换成不同国家的语言,风俗习惯的时候不需要修改源码的技术,就叫做软件国际化
(1)业务测试:
场景设计法:正常流程,异常流程
了解业务
(2)界面测试(UI测试):
文字的大小,字体,排版,颜色,粗细
图片的清晰度,大小,排版,色彩
页面整体排版,信息提示弹出框
控件对话框,查询框,滚动条,弹出框
按钮的亮度显示,有限按钮高亮展示,无效按钮置灰
响应式测试:页面可以随着屏幕的大小不同而变化
文字在不同分辨率下能够完成并且清晰展示;
图片在不同分辨率下能够正确排版,清晰展示,不重叠;
界面的功能在不同的分辨率下可以正常使用;
界面在不同分辨率下切换的时候,是平滑的过渡;
在不同分辨率下,界面的展示要严格按照UI设计稿来进行展示。
(3)容错性测试
当系统出现一些异常或者用户输入错误的信息,进行异常的操作,系统可以自我处理这样错误情况,不会出现崩溃,页面异常这种情况,可以给用户一个很好的提示体验;
数据容错性:时间,日期,数字,例如:用户输入1月32号时,系统不会直接崩溃,而是会提示用户输入错误。
校验容错性:查询信息前后加空格(去掉)大小写自动转换验证码输入二次密码确认
信息级别:填表单的时候,异常关闭(网络,没电,人为)是否会自动保存
同一个数据被不同人操作的时候,是否会有锁定
同一个信息在不同的平台上被操作(同账号),信息要同步
界面容错性:复杂的操作,有说明提示;用户在执行有风险的测试时,会提示
环境容错性:网络,电源,服务器;无缝切换备用的网络,电源或者服务器就能保证用户无感知。
灾难恢复性测试:人为的让服务器或者服务器所依赖的环境发生故障,测试系统的自我修复能力
1.系统能不能恢复
2.系统碰到这种情况,恢复系统的功能和信息所用的时间用户能否接受
(4)文档测试
测试文档是否完整,术语是否专业,是否容易使用
(5)兼容性测试
系统所在平台的兼容性
web
操作系统windowsios不同的操作系统要进行测试,不同操作系统的不同版本也要进行测试,浏览器要装在不同的操作系统上;不同的浏览器下,网页是否可以正常展示和使用:ChromeFirefoxedgeIE等。不同浏览器的市场上的主流版本也要测试(不同的浏览器内核不同,解析结果可能不同)
APP不同机型不同机型的不同操作系统IOSAndroid不同操作系统的主流版本上进行测试
兼容性测试在不同的平台上测试的功能都是一样的,所以可以用自动化测试
软件本身向前向后的兼容性
软件和其他相关软件的兼容性:淘宝支付宝饿了吗
数据兼容性:同一个软件上数据兼容性
(6)易用性测试
遵循一定的易用性标准开发软件(前期的积累经验,越来越符合人的使用习惯和需求)
直观性:软件的展示要和软件的定位相关
(7)安装测试(卸载)
APP应用商店,浏览器,安装包,命令行
安装的时候断网断电,暂停下次还能不能继续,突然不想下载了取消之后数据有没有清除
(8)安全性测试
是否抵御病毒,SQL的注入,系统攻击
(9)性能测试
为什么要进行性能测试?
能够快速的响应用户的请求(3s/5s/8s)
系统能够负载所需要的用户数量
能够处理系统所需要的事物数量
在负载和事物处理的高峰期,系统可以稳定运行,用户可以得到良好的体验
性能测试测试哪些方面?
对资源的利用率:cpu,gpu,内存,硬盘,网络,电源
响应时间:用户发送请求到用户所期待的响应展示出来
吞吐量:系统在单位时间处理的信息量,字节,事物处理量,HTTP请求量
内存泄漏?
内存泄漏就是系统在使用一些内存的时候,没有及时释放或没法释放,造成系统占用的内存越来越大,系统运行越来越慢,影响其他app的运行
造成内存泄漏的原因?(静态测试,或用一些工具检测)
分配了内存,忘记回收
写法有问题导致分配的内存无法回收
错误的使用API造成内存无法回收
作者:mob604756fef1ec
原文链接:https://blog.51cto.com/u_15127650/4292522