4.进阶篇

news2024/11/15 11:36:25

目录

一、按照测试对象划分

1.界面测试(UI测试)

界面测试的常见错误:

2.可靠性测试

3.容错性测试

4.文档测试

5.兼容性测试

6.易用性

7.安装卸载测试

8.安全性测试

9.性能测试

10.内存泄漏

二、按照是否查看代码

1.黑盒测试

2.白盒测试

3.灰盒测试

三、按照开发阶段划分(和软件测试V模型结合在一起)

 1.单元测试

2.集成测试

3.系统测试

4.回归测试(自动化)

5.冒烟测试(准入原则)

6.验收测试

四、按照实施组织去划分

1.α测试

2.β测试

3.第三方测试

五、按照是否运行划分

1.静态测试

​编辑 2.动态测试

六、按照手否手工划分

1.手工测试

2.自动化测试 

七、按照地域去划分

1.软件国际化测试

2.软件本地化测试


一、按照测试对象划分

1.界面测试(UI测试)

界面是直接和用户交互的,界面设计的好坏决定了用户使用软件的直观感受

(1)保证界面和UI设计稿的一致性、正确性

(2)测试界面每一个功能的正确性,从上到下,从左到右,做到不遗漏

(3)界面的布局排版合理。字体大小、斜体、图片布局、清晰程度

(4)界面的控件(下拉框、复选框、滚动条、按钮、文本框)功能是否正常,有效状态高亮显示,无效状态置灰色

(5)要进行界面不同分辨率的测试(自适应测试),页面从小到大,文字图片展示正常,功能展示全面

(6)页面的状态(颜色、排版)和当下的节日、实事相结合

例如:同一个web页面不同页面大小的测试:

页面从大到小变化过程中,衔接丝滑,不会出现断裂,可以让用户接受

页面的字体不模糊、不消失、不重影

页面的图片不消失,排版布局合理

页面的功能可以正常使用

界面测试的常见错误:

不适合的快捷键(键盘打不出来的键)、文字丢失、文字有截断(显示不清楚有遮挡)、文字没对齐、文档自动换行、文字重叠、重复的快捷键

2.可靠性测试

可靠性 = 软件正常使用时间  / (正常运行时间+非正常运行时间)

软件自身和软件所部署的环境(硬件、软件系统、网络等)有问题导致软件无法正常运行,都属于非正常运行的时间

一般软件,可靠性要求99.99%,表示一年时间,出现故障时间为52min

特殊软件比如军事系统,可靠性要求99.999%,表示一年时间,出现故障时间为5min

如何进行软件的可靠性测试?

让软件运行一段时间,统计其中的正常运行时间和非正常运行时间,带入公式计算

软件可靠性的影响因素:软件本身,外界因素(电,网络,硬件设备,软件系统)

3.容错性测试

容错性:系统因为自身或者外部一些异常的情况,使得系统发生异常,但是系统能够自我处理这种异常或者错误操作的能力

数据级别:人民币  0.001元 识别不了,25时30分     2月30日

校验级别:输入账号 6-16位,最多只能输入16位,输17位就输不进去了

                 大小写、前后信息一致性、空格

界面级别:一些复杂的操作或者危险性较高的操作,会给用户提示信息;  禁用危险的按钮

环境级别:断电、断网、硬件设备出问题,是否可以无缝切换(让用户无感知)到备用服务器

灾难恢复性测试:人为让系统发生故障,测试是否能够很快让系统恢复稳定,恢复数据,不丢失用户的信息

4.文档测试

整个开发过程中产生的所有文档,需求文档,功能文档,设计文档,用户使用手册

测试文档的正确性、一致性,完整性、专业术语

文档和软件功能进行对比

5.兼容性测试

平台的兼容性:(web网页:各种浏览器,操作系统的兼容性

                        APP: 不同系统IOS/安卓,不同品牌手机,不同的系统版本)

软件本身的兼容性:软件对本身功能前后的兼容性,比如开发的新功能不能影响老功能,也不能影响后序开发

软件对用户数据的兼容性:数据库中某一张表不能影响用户之前的数据存储

软件对第三方软件的兼容性:不能影响其他软件的使用; 

                                             如果和第三方软件有交互,数据要有兼容性(支付宝和淘宝)

6.易用性

用户使用软件的体验,也叫用户体验测试

(1)必须符合一定的标准和规范

(2)直观性:让用户直接看到自己期望的操作或预期结果

(3)灵活性:用户可以根据自己的习惯选择自己喜欢的操作方式(全键盘、九宫格键盘、五笔。手写)

灵活性 == 复杂性,两者间找一个平衡点

(4)舒适性:让用户对自己的操作有感知,不产生焦虑情绪(安装软件的进度条

(5)实用性

7.安装卸载测试

正常的安装和卸载功能

软件更新

安装软件时断网、断电、死机等异常情况下,软件的响应

安装软件,内存不足是否有提示

卸载软件,如果暂停,是否可以继续卸载

卸载到一半,取消卸载,看软件是否可以正常使用

卸载的过程中,有一些异常的情况(断网、断电、死机)

卸载后软件的数据文件信息是否清理干净

8.安全性测试

防病毒、防黑客攻击

输入域安全性,防止XSS注入,防止SQL注入

防爬虫,防止邮件文件携带病毒,上传下载过程中数据拦截

9.性能测试

内存泄漏、资源瓶颈、系统运行速度越来越慢、系统运行受外界的影响越来越大、死锁(操作某个界面卡主了、加载信息很慢)

10.内存泄漏

导致系统运行越来越慢(可积累的错误)

导致原因:

内存分配后,没有回收

API函数使用不正确,无法回收

内存分配后,忘记回收或无法回收

二、按照是否查看代码

1.黑盒测试

不关心软件内部代码的试实现,不关心代码的逻辑结构,只关心输入输出是否符合预期

好处:

(1)不用看代码(不懂代码也可以测试)

(2)黑盒  测试系统的功能,站在用户的角度去使用,有利于培养用户思维 (产品经理必须具备用户思维)

(3)按照需求设计的,不容易遗漏需求

黑盒测试设计测试用例的方法有哪些?

等价类、边界值、因果图、错误猜测法、场景法、正交法

2.白盒测试

针对代码进行测试,关心代码的逻辑和结构,看实现的功能是否符合用户的需求

白盒测试设计测试用例的方法有哪些?

语句覆盖、逻辑覆盖

判定组合覆盖、判定覆盖、条件覆盖、条件组合覆盖、判定和条件组合覆盖

条件组合:无穷尽,使用等价类边界值进行测试

那么白盒测试怎样测试一个单元模块?

使用Junit框架(Java的单元测试框架)

3.灰盒测试

介于黑盒和白盒测试之间的

三、按照开发阶段划分(和软件测试V模型结合在一起)

测试金字塔,越往下测试效率越高,定位问题越容易。越往上,集成度越高。

 1.单元测试

针对软件组成的最小单元模块,进行测试(具体的某个类、方法)

测试阶段:编码前(TDD),编码后

TDD测试驱动开发:测试人员先写代码空跑,开发人员根据异常写代码,直到测试用例通过

测试对象:组成软件的最小的单元模块

测试方法:白盒测试 

测试人员:白盒测试工程师 / 开发人员

测试依据:详细测试文档(软件测试V模型)

测试内容:模块的接口,局部的数据测试,边界测试,异常测试,路径测试

2.集成测试

集成测试:按照一定的策略,把单元模块组合起来,形成一个大的功能模块,对这个功能模块进行的测试叫集成测试

测试阶段:单元测试后

测试对象:集成模块

测试方法:灰盒测试

测试依据:概要设计文档(V模型)

测试人员:黑盒测试工程师 / 开发人员

测试内容:整个模块功能的正确性,单元块之间接口的正确性,全局数据结构测试,单个模块缺陷对整个功能的影响、模块之间功能的冲突

3.系统测试

当软件开发完成,系统全面的对软件功能进行测试

测试阶段:集成测试之后

测试对象:整个系统

测试方法:黑盒测试

测试人员:黑盒测试工程师

测试依据:软件需求设计说明书

测试内容:系统的功能、界面、容错性、可移植性、兼容、性能、可靠性、易用性

4.回归测试(自动化)

当系统引入了新的代码,查看新的代码是否影响了旧的功能(迭代、修改bug)

5.冒烟测试(准入原则)

在正式测试之前,要对软件系统的基本流程和核心功能进行测试。如果测试通过,才同意正式测试。

测试人员:开发人员 / 测试工程师

回归测试和冒烟测试都属于系统测试

6.验收测试

软件上线前的最后一道测试,由用户或者产品经理发起

测试阶段:系统测试后

测试内容:同系统测试(包含文档、用户使用手册、功能设计文档)

测试方法:黑盒测试

测试依据:用户需求(V模型)

测试人员:用户 / 产品方

四、按照实施组织去划分

1.α测试

让用户或者除了开发和测试人员以外的格式内部人员到达开发现场去进行测试

测试环境:开发环境

2.β测试

让实际使用的用户在我们的实际使用环境下进行测试,不限时间,不限地点

α测试和β测试的区别:

测试环境不同、   时间集中程度不一样 、   α测试是优先于β测试的

3.第三方测试

第三方软件测试机构对软件进行测试(按照业界的规范和标准进行测试)

五、按照是否运行划分

1.静态测试

不运行代码,通过分析代码的风格,分析是否符合公司的标准规范,分析代码的逻辑、结构、算法,以及方法的实现是否满足用户的需求

 2.动态测试

 运行代码进行测试,执行测试用例,进行测试

六、按照手否手工划分

1.手工测试

手工执行测试用例,查看执行结果

缺点:量大,容易出错,效率低

优点:无法被自动化测试替代,手工过程是认为可控的,有利于做探索性测试

2.自动化测试 

 机器按照预先设定好的条件(自动化测试脚本)去执行测试,这些条件包括正常和异常方面

UI自动化、接口自动化、性能自动化

七、按照地域去划分

软件国际化:开发软件的时候,使用一种软件技术,使得软件在适用不同的国家语言、风俗、使用习惯的时候,不用改源码就可以做到。

Windows操作系统、微博国际版、苹果手机、MicroSoft Office

1.软件国际化测试

2.软件本地化测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/511402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Dubbo源码解析一Dubbo SPI

Dubbo SPI 概述节点角色说明1. JDK SPI1.1 JDK SPI使用1.2 JDK SPI加载过程1.3 JDK SPI优缺点1.3.1 优点1.3.2 缺点 2. Dubbo中的SPI2.1 概述2.2 入门案例2.3 源码分析2.3.1 依赖注入2.3.2 动态增强2.3.2.1 装饰者模式2.3.2.2 Dubbo中的AOP 2.3.3 动态编译2.3.3.1 SPI中的自适应…

【数据结构】- 几个步骤教你认识并实现一个链表之带头(哨兵位)双向循环链表(中)

文章目录 前言🌟一、带头双向循环链表🌏1.1头删:💫1.1.1代码:💫1.1.2流程图: 🌏1.2尾删:💫1.2.1代码:💫1.2.2流程图: &…

5. Mysql索引优化实战二

MySQL性能调优 1. 分页查询优化1.1 根据自增且连续的主键排序的分页查询1.2 根据非主键字段排序的分页查询 2. Join关联查询优化 本文是按照自己的理解进行笔记总结,如有不正确的地方,还望大佬多多指点纠正,勿喷。 本节课内容: 1…

HTTP第七讲——HTTP报文

报文结构 拿 TCP 报文来举例,它在实际要传输的数据之前附加了一个 20 字节的头部数据,存储 TCP 协议必须的额外信息,例如发送方的端口号、接收方的端口号、包序号、标志位等等。 有了这个附加的 TCP 头,数据包才能够正确传输&…

HTML 基础知识

HTML基础知识 1. VSCode的安装与配置 下载地址 https://code.visualstudio.com/ 安装插件 Live Server Auto Rename Tag 自动格式化 点击 settings,然后输入format,然后勾选上 Format On Save。 2. HTML 基础标签 2.1 文件结构 快捷键&#xff1…

安卓实现左侧列表选择项点击,右侧fragment切换

安卓实现左侧列表选择项点击,右侧fragment切换 问题背景 安卓日常开发中,有时候需要开发页面中,显示左侧会列表选择项,点击不同的选项后右侧切换fragment显示,本文将介绍实现的一个思路。 问题分析 要实现的效果如…

前端三剑客 HTML+CSS+JS

文章目录 一、HTML1.1 基础标签1.2 列表1.3 表格1.4 表单 二、CSS2.1 引入方式2.2 CSS 选择器2.2.1 基本选择器2.2.2 组合选择器 2.3 常用属性2.3.1 背景2.3.2 文本2.3.3 字体2.3.4 display元素类型2.3.5 浮动2.3.6 盒子模型 三、JavaScript3.1 引入方式3.2 数据类型3.2.1 数组…

tomcat集群下的session共享和负载均衡

环境 操作系统:windows tomcat1:Apache Tomcat/7.0.52(8085) tomcat2:Apache Tomcat/7.0.52(8086) jre:1.7.0_80 nginx:nginx-1.20.1(8070) redis…

cmd@快捷键方式@静默执行命令@修复桌面空白快捷方式图标

文章目录 ref前言快捷方式执行命令行或打开文件eg:直接打开某个文件 创建快捷方式eg:快捷方式运行命令 修复快捷方式图标空白问题逐个修复批量修复一次性操作:逐步操作 执行效果第三方工具修复 ref How can I execute a Windows command line in background? - Super Userstb…

2022年5个不寻常的Web3预测

正如埃隆马斯克所说,“最有趣的结果是最有可能的”。所以,这是我对web3的5个不同寻常的预测,下面我将详细介绍我是如何得出这些想法的: 口袋妖怪训练师将是一份全职工作有人会使用JPEG支持的贷款购买房屋(IRL)DAO将收购一家上市公…

并发编程11:Synchronized与锁升级

文章目录 11.1 面试题11.2 Synchronized的性能变化11.3 Synchronized锁种类及升级步骤11.3.1 多线程访问情况11.3.2 升级流程11.3.3 无锁11.3.4 偏锁11.3.5 轻锁11.3.6 重锁11.3.7 小总结 11.4 JIT编译器对锁的优化11.4.1 JIT11.4.2 锁消除11.4.3 锁粗化 11.5 小总结 11.1 面试…

电影《银河护卫队3》观后感

上周看了电影《银河护卫队3》,本部电影,主要是围绕着主角团队中的一个队员展开叙事的,在团队中,这名队员叫“火箭”,是一只经过基因改造过的浣熊。 当初进行改造的团队,是一家拥有基因改造技术的团队&…

基于SpringBoot, Vue实现的校园二手书交易系统

背景 在Internet高速发展的今天,计算机的应用几乎完全覆盖我们生活的各个领域,互联网在经济,生活等方面有着举足轻重的地位,成为人们资源共享,信息快速传递的重要渠道。在中国,网上管理的兴起也同时飞速发…

Solidity中哈希函数的编码与解码

起因 写这篇文章的起因,是我在前端调试合约的时候,发现合约报错了,点开命令行报错,发现返回的是合约的 callData,我直接表演一个眼前一黑,我怎么直接的知道是调用哪个方法的时候报错呢? 于是有…

【网络基础知识概念】路由器,交换机,无线AP,DHCP,DNS,WAN接口和LAN接口是什么?(附实物图详解)

【写在前面】其实在做一些试题的时候,经常会有些概念性的东西完全不清楚,今天我就带大家整理一下,交换机是啥?路由器是啥?无线AP是啥?ADSL又是什么,啥叫DHCP,DNS又是啥?W…

改进YOLOv5 | C3模块改动篇 | 轻量化设计 |骨干引入动态卷积|CondConv

CondConv: Conditionally Parameterized Convolutions for Efficient Inference 卷积是当前CNN网络的基本构成单元之一,它的一个基本假设是:卷积参数对所有样例共享。作者提出一种条件参数卷积,它可以为每个样例学习一个特定的卷积核参数,通过替换标准卷积,CondConv可以提…

shell脚本之“sort“、“uniq“、“tr“、“cut“命令详解

文章目录 sort命令uniq命令tr命令cut命令 sort命令 以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序. 比较原则:从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. 语法格式 sort [选项] 参数 cat …

c++ this指针

this指针介绍: c中成员变量和成员函数分开存储,每一个非静态成员函数只会有一个实例,多个同类型对象共用这一个成员函数。那么代码怎么区分哪个对象调用自己呢?this指针由此应运而生。 c通过提供对象指针,this指针。…

2020年下半年软件设计师下午试题

【试题四】希尔排序 【说明】 希尔排序算法又称最小增量排序算法,其基本思想是: 步骤1 :构造一个步长序列delta、deltak、 deltak ,其中delta1n/2 ,后面的每个delta是前一个的1/2 , deltak1; 步骤2 :根…

【shell脚本里的命令】

目录 一、sort命令1.1、命令演示 二、unip命令1、命令演示1、列题:2、使用脚本来查看用户有没有被恶意登录,查看登录用户的对应ip地址 三、tr命令1.1、命令演示1.2、使用tr命令对数组进行排序 五、从Windows里拉文件到Linux系统中要做的潜在条件六、cut命令 一、sor…