什么是测试策略?怎么制定测试策略?测试管理篇

news2024/11/25 1:25:44

之前说了太多的测试技术和测试用例设计方法,猛地发现有点“偏科“了。今天我们放松一些,泡一杯茶,一起来聊一聊测试策略吧。

当然,文章脉络肯定是咱们老三样:什么是测试策略,为什么要制定测试策略,怎么制定测试策略。

什么是测试策略?

在中文的解释里,策略也可以叫做计划、谋略,是可以实现目标的方案集合:

首先,有一个确定指向的目标;

其次,是一个方案的集合;

再次,是灵活可可变动的。

所以,我们所说的测试策略,简单来说,可以归纳为:测什么、怎么测。

“测什么“是目标,“怎么测”是方法。那么,我们为什么要制定测试策略呢?

为什么要制定测试策略?

首先,制定测试策略能够帮助测试团队更清楚测试目标,从而更好地判断测试结果、产品质量是否达标,判定产品是否可以发布。

其次,对于测试管理来说,制定测试策略能够帮助测试管理人员更好地实现风险管理。

清楚测试目标和测试方法,能够让测试管理人员更好地实施基于风险的测试。并且测试策略可以与开发/测试过程进行融合,更好地在子阶段选动态选用测试策略。

不仅如此,还能帮助测试人员更深入地理解测试技术/手段/工具地差异性,在测试过程中选用更好地测试方法。

总的来说,测试策略是可变的,根据不同场景地变化,具有明确或具体的测试目标。测试策略是为了效益最大化,在有限的条件下选择最适合的测试方法。

怎么制定测试策略

测试策略需要考虑哪些因素

项目环境

代表了一组上下文因素,包括项目中的资源、约束条件等,主要包括以下内容:

任务,你需要为客户解决的问题。

问问自己:为什么要测试?你知道谁是你的客户吗?你的客户或者其他人对你的测试任务有什么样的想法?

信息,关于测试所需的产品或项目的信息。

问问自己:我们可以咨询谁来了解这个项目?有工程文件可用、用户手册、基于web的材料、规格、用户故事,这个产品有历史版本吗?有哪些遗留的问题?

以及你的测试版本是最新的吗?你是如何得知新的或变化的信息的?有没有类似的产品或项目可以让我们收集到重要的信息?

开发者关系,你如何与程序员相处,这取决于你有疑问能不能很快且良好地得到解决。

问问自己:你是否与程序员建立了友好的工作关系开发人员对你的测试策略有什么看法?

测试团队,执行或支持测试的任何人。

问问自己:你知道谁将参加测试,他们是否拥有所需的知识和技能?

“测试团队”中是否有可能提供帮助的人,那些之前测试过类似产品的人可能会有什么建议,作家、用户、程序员?是否有特定的测试技术,团队中有人有特殊的技能或动机去执行?

设备和工具,管理测试所需的硬件、软件或文档。

问问自己:是否拥有测试所需的所有物理或虚拟硬件,是否拥有能够自动控制和观察产品行为的工具,是否拥有创建测试数据、设计场景或分析和跟踪测试结果的工具,是否需要任何文档来跟踪或记录测试的进展?

时间表,项目事件的顺序、持续时间和同步。

问问自己:

测试设计:你有多少时间进行测试?

测试执行:何时执行测试是否有一些测试是重复执行的,比如,为了回归目的?

开发:构建何时可以用于测试、添加功能、冻结代码等?

测试项目,要测试的产品。

问问自己:

范围:产品的哪些部分在你的测试职责范围内,哪些部分不在?

可用性:你有要测试的产品吗,你们有可用的测试平台吗?

波动性:产品是否在不断变化,如何针对这些变化进行测试?

新功能:你知道最近有什么添加到产品中的新功能吗?

交付,测试项目的可观察产品。

问问自己:

内容:你需要做什么样的报告?

目的:你的可交付成果是否作为产品的一部分提供,还有其他人帮你做测试吗?

标准:你是否有一个特定的测试文档?

产品元素

涉及产品的各个方面,包括产品固有的方面以及产品与外部事物之间的关系。主要包括以下内容:

结构,构成实体产品的所有东西。

例如代码、硬件、非执行文件、附属品等。

功能,产品所做的一切。

例如应用、时间相关、安全相关、启动/关闭、错误处理、交互作用等。

数据,产品加工的所有东西。

例如输入/输出、预置、持久化、相互依赖/相互作用、无效/噪声、生命周期等。

接口,每一个产品被访问或表达的管道。

例如用户界面、API/SDK、导入/导出等。

平台,产品所依赖的所有东西(以及项目之外的东西)。

例如外部硬件、外部软件、嵌入式组件、产品足迹等。

操作,如何使用产品。

例如用户、环境、常见使用、错误使用、极端使用等。

时间,产品和时间之间的关系。

例如输入/输出、快/慢、改变速率、并发性等。

质量标准类别

评价产品质量的标准,例如可靠性、稳定性等,它是主观的、多维的。主要包括以下内容:

能力

问问自己:它能执行所需的功能吗,它执行的结果正确吗?

可靠性

问问自己:它会在所有需要的情况下都能很好地工作并抵抗失败吗?

测试要点如:

健壮性:在合理的条件下,产品可以持续运行一段时间而不退化。

错误处理:产品在错误的情况下能够抵抗失败,在失败的情况下能够很好地恢复。

数据完整性:保护系统中的数据不丢失或损坏。

安全性:产品不会出现危害生命或财产的故障。

可用性

问问自己:一个真正的用户使用这个产品有多容易。

测试要点如:

易学性:目标用户可以快速掌握产品的操作。

可操作性:产品可进行复合操作。

易访问性:产品符合相关的标准,并符合O/S易访问性特性。

外观性

问问自己:产品有多吸引人?

测试要点如:

美学:产品吸引感官。

独特性:产品在某种程度上是新的或特别的。

必要性:产品具有用户期望的功能。

实用性:产品解决了重要的问题,而且解决得很好。

入迷:用户在使用产品时被吸引住,获得乐趣,完全沉浸其中。

形象:产品表现出期望的质量印象。

安全

问问自己:产品如何防止未经授权的使用或入侵?

测试要点如:

认证:系统验证用户权限操作正确。

授权:通过认证的用户在不同的权限级别上被授予的权限。

隐私:保护客户或员工数据不受未授权人员侵犯的方式。

可伸缩性

问问自己:产品部署的规模是扩大还是缩小?

测试要点如:产品可以扩展或收缩部署。

兼容性

问问自己:它与外部组件和配置的配合情况如何?

测试要点如:

应用兼容性:该产品与其他软件产品协同工作。

操作系统兼容性:产品适用于特定的操作系统。

硬件兼容性:该产品适用于特定的硬件组件和配置。

向后兼容性:产品与自身的早期版本兼容性。

性能

问问自己:它的速度和响应速度如何?

可安装性

问问自己:

系统要求:产品是否识别出某些必要的组件缺失或不足?

配置:系统哪些部分受安装影响,文件和资源存储在哪里?

卸载:当产品卸载时,是否干净地卸载?

测试技术

决定了测试人员如何、何处以及何时应用特定技术需要对项目环境、产品元素和质量标准进行分析。主要包括以下内容:

功能测试,测试它能做什么。

确定产品可以做的事情(功能和子功能),确保每个子功能都做了它应该做的事,而不是它不应该做的事。

域测试,分治数据。

寻找产品处理过的任何数据,既要看输入,也要看输出;

决定使用哪个特定的数据进行测试,考虑边界值、典型值、方便值、无效值或最佳代表;

考虑值得一起测试的数据组合。

压力测试,压倒产品。

寻找那些在具有挑战性的数据或受限的资源存在时容易过载或“崩溃”的子系统和功能;

确定与这些子系统和功能相关的数据和资源;

选择或生成具有挑战性的数据,或资源约束条件来测试。

例如,大型或复杂的数据结构,高负载,长时间测试运行,许多测试用例,低内存条件。

流测试,做一件又一件事。

执行端到端连接的多个活动;

不要在两次操作之间重置系统;

改变时间和顺序,并尝试并行线程。

场景测试,测试一个引人入胜的故事。

首先考虑产品周围发生的一切;

设计测试,包括与产品有意义和复杂的交互。

需求测试,确认每一个需求。

确定参考材料,包括关于产品的声明(默示或明确),考虑规范、帮助文本、手册等;

分析个人需求,澄清模糊的需求;

测试关于产品的每个声明;

如果您正在从一个明确的规范进行测试,那么期望它和产品保持一致。

用户测试,让用户参与进来。

识别用户的类别和角色;

确定每一类用户将做什么(用例),他们将如何做;

获得真正的用户数据,或者让真正的用户参与测试;

强大的用户测试涉及多种用户和用户角色,而不仅仅是一个。

风险测试,想象一个问题,然后找到它。

想象产品会有哪些问题,哪一种最重要?关注这些,列出一些有趣的问题,并专门设计测试来揭示它们。咨询专家、设计文档、过去的错误报告或应用风险启发式可能会有所帮助。

自动化测试,编写一个程序来生成并运行无数的检查。

寻找或开发可以执行许多操作和检查许多事情的工具;

考虑部分自动化测试覆盖率的工具;

考虑部分自动化oracle的工具;

考虑自动变更检测器;

考虑自动测试数据生成器。

如何将测试策略实体化

测试策略转化为测试活动,通过测试策略确定的测试活动,并拆解为一个个测试任务嵌入测试计划,才能将测试策略有效实体化。

例如,测试策略S确定了测试活动A1、A2,A1和A2拆解出测试任务T11、T12、T13,和T21、T22。为测试任务分配测试责任人和测试工期,最终成为一个完成的测试计划。

表1测试策略实体化,最终形成基础测试计划

由上所述,本文简单讲述了测试策略的含义、意义以及制定测试策略需要考虑的元素和测试策略的实体化。

希望能帮助大家对测试策略有个更全面和清晰的认识。

最后:

可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试持续集成、测试架构开发测试框架、性能测试等。

这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

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

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

相关文章

5个最好的WooCommerce商城自动化动作来增加销售量

您是否正在寻找简单智能的方法来自动执行任务并增加 WooCommerce 商店的销售额? 通过在线商店中的自动化任务,您可以在发展业务和增加销售额的同时节省时间和金钱。 在本文中,我们将向您展示如何使用 WooCommerce商城自动化来增加销售额。 …

Puppeteer入门实践

环境 1、安装nodejs 官网:https://nodejs.org/zh-cn 下载安装好nodejs只后 验证:node -v 出现版本号表示安装成功,否则需要配置环境变量 2、创建node项目并初始化 随便新建一个文件夹 进入文件夹搜索cmd回车 执行npm init -y 安装依赖 …

RabbitMq--- 惰性队列

前言 消息堆积是Mq消费时常见的问题,这里我们展开说一下消息堆积的原因,以及RabbitMq 中是如何解决这个问题的。 1. 消息堆积问题 当生产者发送消息时的速度超过了消费者处理消息的速度,就会导致队列中的消息堆积,直到队列存储…

【Linux】shell脚本—正则表达式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、正则表达式概述二、基本的正则表达式三、操作演示 一、正则表达式概述 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、…

WIN11+CLion+CMake+MINGW+OPENCV编译需注意问题

安装编译教程可参考以下链接: CLion OpenCV cmake,源码编译及使用_clion编译opencv_拜阳的博客-CSDN博客 使用CLion开发openCV——环境搭建全记录_-Willing-的博客-CSDN博客 此文主要是记录自己在编译过程中遇到的问题和解决方法 1、版本问题 C…

Windows 10 主机上的 VMware Workstation 和设备/凭据防护不兼容“错误

Windows 10 主机上的 VMware Workstation 和设备/凭据防护不兼容“错误 VMware Workstation 和 Device/Credential Guard 不兼容。VMware 工作站可以在禁用设备/凭据防护后运行。 排查错误的过程: 要解决错误,请按照以下步骤操作: 如果您…

LDR6020 【USB_C显示器方案】台式显示器方案介绍

首先介绍一下什么是Type-c接口? 现在显示器上常见的有这几种接口:HDMI、DP、USB-A、USB-C(USB Type-c接口)、3.5mm和电源接口,像之前流行的VGA接口和DVI接口,基本上在新显示器上,尤其是中高端显…

什么是频谱型温振变送器(附常见振动故障特征)

在机械振动方面,振动分析是一项十分重要的技术。这项技术是预测维修程序中的基础,是机器状态的指示器,为了避免机械设备异常振动所带来的损失,对工业机械设备做振动分析是非常有必要的! 频谱型温振变送器是一款选用了M…

阿里高级工程师对C语言预处理指令的理解

目录 预处理器指令列表 预处理器指令的流程 四种主要类型的预处理器指令 结论 我们可以将预处理器视为一个编译过程,该过程在开发人员运行程序时运行。它是使用 c/c 语言执行程序的预处理。若要初始化预处理器命令的进程,必须使用哈希符号 &#xf…

【Devops运维】Docker搭建jenkins自动化编译hadoop/spark/flink/hive/kyuubi/trino大数据组件

Docker搭建jenkins DevOps概念Docker部署Jenkins制作Jenkins镜像Dockerfile及所依赖的脚本build镜像 利用docker-compose部署jenkins 配置Jenkins管理员密码插件安装系统配置全局工具配置MAVEN 配置JDK 配置GIT 配置MAVEN 配置 Jenkins Maven Git 自动化编译找到token生成界面…

ChatGPT:使用OpenAI创建自己的AI网站,使用 flask web框架快速搭建网站主体

使用OpenAI创建自己的AI网站 如果你还是一个OpenAI的小白,有OpenAI的账号,但想调用OpenAI的API搞一些有意思的事,那么这一系列的教程将仔细的为你讲解如何使用OpenAI的API制作属于自己的AI网站。 使用 flask web框架快速搭建网站主体 之前…

C++:布隆过滤器和哈希切分

目录 一. 什么是布隆过滤器 二. 布隆过滤器的实现 2.1 数据插入函数set 2.2 判断数据是否存在函数test 2.3 布隆过滤器数据的删除 三. 哈希切分 一. 什么是布隆过滤器 在我之前的博客C:使用位图处理海量数据_【Shine】光芒的博客-CSDN博客中,介绍了…

【LinuxShell】linux防火墙之firewalld防火墙

文章目录 前言一、firewalld概述1. 概念2. firewalld和iptables的关系 二、firewalld网络区域1. firewalld区域的概念2. firewalld预定义区域3. firewalld数据包的处理3.1 firewalld数据处理流程3.2 firewalld检查数据包的源地址的规则3.3 总结 三、firewalld防火墙的配置方法1…

“GPT+医疗健康”:给予医疗领域新机遇

现如今,GPT十分火热。随着人们对健康医疗的关注越来越热切,GPT已逐渐成为健康医疗领域的重要角色之一。GPT可以用于许多医疗语境中,如医学咨询、病症诊断、健康建议、在线问诊、患者教育、健康数据跟踪等。 GPT是一种基于深度学习的自然语言处…

结构体-C语言

🤩本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 🥰内容专栏:这里是《C知识系统分享》专栏,笔者用重金(时间和精力)打造,基础知识一网打尽&#xff0c…

【Python办公自动化】python实现将图片插入到word中指定位置并将word转换为图片

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、…

垃圾站养殖场除臭杀菌解决方案

养殖场和垃圾站都会产生大量的有机废气和垃圾,这些废气和垃圾会产生难闻的臭味,影响周围环境和居民健康。这些地方又是病菌和细菌的滋生地,这些细菌和病菌会对人类和动物的健康造成威胁。除臭杀菌系统可以杀灭这些细菌和病菌,也可…

换个思维方式,你离网工天花板会更近一点

大家好,我是许公子。 收到老杨的邀请,我正式加入网络工程师俱乐部了,未来会给你分享更多网工硬核内容。 和老杨聊天的过程中,我想起了在刚入社会一两年,我去参加了一个高中同学聚餐。 里面有自主创业的,…

软件测试被00后整顿职场了?

00后带来的压力 公司一位工作3年的老油条工资还没有刚来的00后高,她心中不平,对这件事情有不小的怨气,她觉得自己来公司三年了,三年内迟到次数都不超过5次,每天勤勤恳恳,要加班的时候也愿意加班&#xff0…

Python竖版大屏 | 用pyecharts开发可视化的奇妙探索

你好!我是马哥python说,一枚10年程序猿👨🏻‍💻,正在试错用pyecharts开发可视化大屏的非常规排版。 以下,我用8种ThemeType展示的同一个可视化数据大屏。 1、SHINE主题 2、LIGHT主题 3、MACARO…