当前位置:   article > 正文

软件测试知识点梳理_渗透测试和压力测试

渗透测试和压力测试

目录

一、软件测试的定义

二、软件测试的分类

2.1 测试方法

2.1.1 黑盒测试

2.1.2 白盒测试

2.1.3 灰盒测试

2.2 测试阶段

2.2.1 单元测试

2.2.2 集成测试

2.2.3 系统测试

2.2.4 验收测试

2.3测试方向(属于系统测试阶段)

2.3.1 功能测试

2.3.2 性能测试

2.3.3 安全测试

2.3.4 UI界面测试

2.3.5 兼容性测试

2.3.6 易用性测试

2.3.7 稳定性测试

2.3.8 app专项测试

2.4 测试对象

2.5 状态

2.6 其他

三、软件测试的流程

3.1 需求分析阶段

3.1.1 拿到需求

3.1.2 分析需求

3.1.3 整理需求分析文档

3.2 测试设计阶段

3.2.1 测试计划

3.2.2 测试方案

3.2.3 测试策略

3.2.4 测试用例

3.3 测试执行阶段

3.3.1 执行测试用例

3.3.2 bug的跟踪管理

3.3.3 对测试迭代的管理

3.4 测试总结阶段

四、接口测试

4.1 什么是接口

4.2 接口的组成

4.3 抓包

4.3.1抓包工具

4.3.2 接口测试工具

4.3.3 adb

4.4 定位bug(重点)

五、如果有一个项目我们如何进行测试呢?


一、软件测试的定义

软件测试是使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别

二、软件测试的分类

2.1 测试方法

2.1.1 黑盒测试

被测软件当成一个黑盒子,不关心盒子内部结构是什么,只关心软件的输入数据和输出数据。

2.1.2 白盒测试

又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试,白盒指的打开盒子,去研究里面的源代码和程序结果。

2.1.3 灰盒测试

介于白盒测试和黑盒测试之间的一种测试,多用于集成测试阶段,不仅关注输入输出的重要性,同时也关注程序的内部结构。

2.2 测试阶段

2.2.1 单元测试

单元测试是对软件中的基本组成单位进行的测试,如代码块、函数、方法等等。(一般由开发自己做,采用白盒测试)

2.2.2 集成测试

集成测试是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。有时候集成测试又叫接口测试。(一般采用灰盒测试)

2.2.3 系统测试

系统测试是将经过测试的子系统装配成一个完整系统来进行测试。(一般采用黑盒测试)

2.2.4 验收测试

验收测试一般根据产品规格说明书严格检查产品,逐行逐字地对照说明书上对软件产品所做出的各方面要求,确保所开发的软件产品符合用户的各项要求。验收测试包括α测试和β测试。(一般由领导或者甲方验收,测试员协助)

 α测试:是一种前期用户测试,公司内部组织员工与部分用户模拟实际操作环境下进行的验收测试,也称内测。

β测试:是一种后期用户测试,此时系统已通过内部测试大部分错误已修正即将正式发行,在一个或多个真实环境下发布版本,进行测试,也称公测。

2.3测试方向(属于系统测试阶段)

2.3.1 功能测试

 测试软件功能是否符合需求,功能测试大部分使用的是黑盒测试方法。

2.3.2 性能测试

(1)压力测试

是指不断地给被测系统增加压力,直到被测系统被压垮,从而确定系统能承受的最大压力。它实际上是通过对系统不断施压,来确定系统瓶颈或不能接受用户请求的性能点,以获得系统能提供的最大服务级别。换句话说,压力测试就是为了发现什么条件下系统性能变得不可接受。

(2)负载测试

通常是让被测系统在其能忍受的压力极限范围内(或临界状态下)连续运行,来测试系统的稳定性。其目的是找到系统的处理极限,为系统调优提供依据。可以理解为,在极限工作状态下,最多能持续多久。(负载测试很容易产生内存泄露)

压力测试和负载测试的区别:负载测试侧重于压力持续的时间,而压力测试则更加强调施加压力的大小。

(3)并发测试

主要指当测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题。如内存泄漏、线程锁、资源争用问题,几乎所有的性能测试都会涉及并发测试。

 补充:内存泄漏是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。比如因为多人访问tomcat内存越来越大,退出后缺因为某种原因还不释放内存,导致内存一直处于很大的状态。

2.3.3 安全测试

安全测试是在软件产品的生命周期过程中,对产品检验是否符合安全需求定义。(了解即可)

常见的攻击方式:

(1)渗透测试:在取得客户授权的情况下,通过模拟黑客攻击来对客户的整个信息系统进行全面的漏洞查找,分析、利用。最后给出完整的渗透报告和问题解决方案。

(2)DDOS攻击:全称是 Distributed Denial of Service,即分布式拒绝服务。其原理是发送大量的合法请求到服务器,服务器无法分辨这些请求是正常请求还是攻击请求,所以都会照单全收。海量的请求会消耗目标网站的主机资源,造成服务器停止工作或拒绝服务的状态。

(3)跨域攻击:攻击者在网页中嵌套,恶意脚本程序,当用户打开网页时,程序开始在浏览器上启动,盗取用户的cooks,从而盗取密码等信息,下载执行木马程序。

(4)SQL注入:通过把SQL命令伪装成正常的HTTP请求参数,传递到服务端,欺骗服务器最终执行恶意的SQL命令,达到入侵目的。

(5)暴力破解:暴力破解的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的!

2.3.4 UI界面测试

(1)检查界面是否美观。

(2)检查界面风格是否保持一致。

(3)检查界面按钮大小是否保持一致。

(4)检查界面是否和设计图保持一致。

2.3.5 兼容性测试

兼容性测试是指要测试的软件在不同的硬件平台上、不同的应用软件之间、不同的操作系统中、不同的网络环境中是否可以正常的运行、有无异常的测试过程。即是通常说的软件的可移植性。

(1)app兼容性测试,可分为andriod和ios系统

android兼容性测试涉及到不同的操作系统、不同的屏幕、不同的分辨率、不同的品牌,但是由于安卓手机数量很多,这就要考虑市场占有率,根据市场占有率去选择主流的手机型号进行测试。可在网上查询不同品牌手机的市场份额。

ios一般不需要做兼容性测试,因为无论什么手机型号,ios系统都是互相兼容的,且必须保持一致,这是由苹果公司统一的。

(2)web兼容性测试,主要是对不同的浏览器进行兼容性测试,常用浏览器有谷歌、新的edge、火狐、IE、360、QQ浏览器......等等。

2.3.6 易用性测试

可理解为用户体验测试,学习成本越低越好,功能越简洁越好,觉得不好用就可以提bug,站在用户的角度去体验。

2.3.7 稳定性测试

 被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检测系统是否稳定,一般稳定性测试时间为 n*12 小时

稳定性测试分为前端和后端。对于后端来说,一般要求7*24小时,保证系统7*24小时稳定运行,不会报任何错误;对于前端(app/网站)来说,要求会低一些,一般要求运行3-5个小时没问题即可。稳定性测试的重点是测试app,网站稳定性测试较少,可使用工具运行手机app 3-5小时。

2.3.8 app专项测试

(1)弱网测试:app是否能在不同的网络环境下正常运行,网络环境分为2G、3G、4G、5G、wifi、热点,可使用工具去模拟这些网络环境。

(2)场景交互测试:不同app互相切换,前后台切换、来电话、来短信、来微信语音/视频、分屏操作......等等,app能否保持正常运行。

(3)资源争用测试:同类型的APP同时工作时,被测试app与其他app对资源的争夺能力。

(4)权限测试:当关闭权限后是否影响其他功能的使用;使用对应功能,是否提醒开启对应权限。一般涉及到的权限有:位置、存储、麦克风、相机、通知......等权限。

(5)离线测试:断开网络后app是否能够正常使用。一般app断开网络部分功能可用,部分功能不可用,可用的功能是否正常。

(6)安装、卸载、更新 :是否正常安装、卸载、更新app。

(7)消息推送:断网后再连网,之前的消息能否收到,推送时间显示是否正常;app关闭后是否能收到消息推送。(消息推送不是靠app功能实现,一般由手机厂家提供)

(8)资源监控

包体大小:安装包越小越好;

流量:使用app消耗的流量,一般要测试平均每小时消耗多少流量;

电量:使用app消耗的电量,一般要测试平均每小时消耗多少电量;

内存:运行app占用的手机内存;

CPU:运行app占用的手机cpu。

2.4 测试对象

按照测试对象可分为:app测试、web测试、 小程序测试、接口测试、物联网测试、车联网测试、ai测试、大数据测试......

2.5 状态

按照软件的状态可以分为静态测试和动态测试(

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/999621
推荐阅读
相关标签
  

闽ICP备14008679号