测试进阶篇

一、测试金字塔与业务测试分析

在这里插入图片描述
(1)从下到上三层测试,投入相同的时间,人力资源等,回报率(产出)越低
(2)从下到上,测试的效率越来越低
(3)从下到上,定位问题越来越难

二、测试分类

1、按开发阶段分类

(1)单元测试

定义:是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。又称为模块测试

  • 测试阶段:编码前(TDD:Test-Drvien-Develop)测试驱动开发,编码后
  • 测试对象:最小模块
  • 测试人员:白盒测试工程师或开发工程师
  • 测试依据:代码和注释+详细设计文档
  • 测试方法:白盒测试
  • 测试内容:
    1.模块接口测试(按照接口设计文档,参数,输出)
    2.局部数据结构测试(局部变量)
    3.路径测试
    4.错误处理测试、
    5.边界测试

单元测试框架Junit
1、在pom.xml文件中加入依赖
2、在file-settings-Plugins搜索Junit并安装
3、开始做单元测试:
(1)选中要进行的单元测试的类名,按Ctrl+shift+T,生成单元测试类

(2)集成测试

定义:集成测试也称联合测试(联调)、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。

  • 测试阶段:一般单元测试之后进行
  • 测试对象:模块间的接口
  • 测试人员:白盒测试工程师或开发工程师
  • 测试依据:单元测试的模块+概要设计文档
  • 测试方法:黑盒测试与白盒测试相结合
  • 测试内容:模块之间数据传输(输入输出,参数)、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响
(3)系统测试

定义:将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。

  • 测试阶段:集成测试通过之后
  • 测试对象:整个系统(软、硬件)
  • 测试人员:黑盒测试工程师
  • 测试依据:需求规格说明文档
  • 测试方法:黑盒测试
  • 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

回归测试:指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。
系统引入新的代码的时候,我们要进行回归测试。(增加新功能、修改BUG)
迭代频繁,长期进行迭代开发的产品,自动化测试

冒烟测试:在正式测试之前,对系统的主要流程和核心功能进行测试

准入原则

(4)验收测试

定义:验收测试不仅仅对系统进行全面测试,验收文档(开发文档、软件设计文档、功能使用文档、用户使用手册)它是纯黑盒测试。

2、按测试实施组织分类

(1)α测试

用户或者公司内非测试和非开发人员请到开发现场进行测试;时间比较集中,在开发现场好沟通产品的问题;是容易受开发环境的影响。

(2)β测试

用户在实际使用环境下进行测试;用户测试的结果更接近于实际使用情况的反馈。
α测试优先于β测试。

(3)第三方测试

介于开发方和用户方间的组织的测试。

3、按是否运行分类

(1)静态代码测试

不运行程序,根据需求规格说明书,软件设计文档,程序设计文档等结合程序(代码),查看代码的风格,语法,逻辑等是否符合需求。

(2)动态测试

写测试用例,运行系统(程序),执行测试用例。

4、按是否手工划分

(1)手工测试

手工测试无法被替代
优点:灵活,发散性测试
缺点:量大容易出错

(2)自动化测试

按照预设的条件去执行测试,收集测试结果,设置正常验证和异常验证。

断言:
UI界面自动化:selenium unittest ddt HTMLResultRepport
接口自动化: jmeter postman
性能自动化 :loaderrunner

自动化的前提:项目的功能要相对稳定
自动化的价值:脚本的重复率(利用率)越高,自动化越有价值。

5、按是否查看代码划分

(1)黑盒测试(系统测试,验收测试)

定义:不关注程序内部具体的实现,只关注功能的输入和输出是否满足需求。
黑盒测试设计测试用例的方法
等价类、边界值、因果图、错误猜测法、正交法、场景法。

(2)白盒测试(单元测试)

定义:测试的时候,关注功能内部程序的实现逻辑,结构,语法等。
白盒测试的方法
语句覆盖法,循环覆盖法,路径覆盖法,逻辑覆盖法(判定覆盖、条件覆盖、判定组合覆盖、条件组合覆盖)

(3)灰盒测试(集成测试)

定义:介于白盒和黑盒之间的测试

6、按地域划分

(1)软件国际化

开发软件的时候,使用一种工程技术,使得软件可以使用不同国家的语言,文化和风俗习惯,可以不用修改源码,这种工程技术叫做软件国际化。

(2)软件本地化

7、按测试对象划分

(1)业务测试

是测试人员把系统各个模块串接起来运行、模拟真实用户实际的工作流程,满足用户需求定义的功能来进行测试的过程。

作为一个刚入职的新人,如何快速了解自己负责的系统的任务?
答:系统文档(需求文档,系统设计文档),问开发人员

(2)界面测试

完整性、准确性、一致性、易用性

布局,排版:字体、图像
控件:对话框、文本框、按钮、滚动条、CheckBox

不同页面大小的自适应测试:
页面从大到小,图片有没有小时重叠
页面从大到小功能是否能正常使用
页面从大到小过程衔接是否丝滑

(3)容错测试

当系统由于外界异常环境或者人为错误操作引起系统的错误,系统可以自我消化掉,而不把这些错误或者异常直接展示给用户。

数据级别、校验级别、环境级别、界面级别等。
失效恢复性测试

(4)文档测试

完整性、术语专业、准确性、一致性、易用性

(5)兼容性测试

应用平台:
IOS:不同版本的苹果手机,不同的IOS系统;
Android:不同版本的Android系统,不同品牌的手机进行测试,不同的网络运营商(电信、移动、联通)WIFI移动网络;
PC端:Windows、Mac、Unix、Ubuntu(不同系统的不同的版本测试)
Web系统:浏览器(不同的浏览器不同版本)
塞班

软件向前或者向后的兼容性
软件和其他相关软件的兼容性
数据的兼容性

(6)易用性测试

用户体验测试

  1. 遵循标准(行业):弹框信息提示、警告信息提示、严重错误提示
  2. 直观性
  3. 灵活性
  4. 舒适性
  5. 实用性
(7)安装测试

App基础功能的测试

(8)安全性测试

数据泄露、黑客攻击、SQL注入、XSS注入、病毒等

(9)性能测试

资源泄露、资源瓶颈、线程阻塞、数据库查询慢、效率低等

TPS、每秒事务处理、响应时间、点击率、资源利用率(CPU、带宽、硬盘等)

(10)内存泄漏测试

引起原因:

  • 分配的内存没有释放;
  • 使用API函数的时候不正确、无法释放;
  • 代码写的有问题、导致最终无法释放内存。

代码评审、工具

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值