如何去开展软件测试工作

news2024/11/19 19:44:47

1. 软件测试

在一般的项目中,一开始均为手动测试,由于自动化测试前期投入较大,一般要软件项目达到一定的规模,更新频次和质量均有一定要求时才会上自动化测试或软件测试。

1.1. 项目中每个成员的测试职责

软件测试从来不是某一个职业,某一个环节,某一个人应该做的,应该是整个项目团队都要参与的,只是每个人承担的责任付出的时间精力的多少决定的。一个项目中的每个岗位,每个成员都应该有自己的需要测试的内容,重点和方向。

那么也就包括,项目经理、需求人员、设计人员、软件架构师、开发人员(分为各个层面和方向的开发人员)、数据人员、测试人员以及运维人员,在整个项目中每个岗位职责的不同,就要将其工作一定程度的体现在软件上,通过各个人员不同角度的测试实现对软件全方面,尽可能多的测试,不应该是寄希望于某一个人或某一个环节上。因为如果寄希望于一个人则会导致:

  • 整个项目的所有内容,测试环节的负责人均要知悉,这种可能只能是专业团队下的理想情况,但是随着软件开发模型的不同,这种理想情况的可能性是非常小的
    • 软件因为一些主观、客观的因素总会发生修改,而这些修改在软件过程中很难详细的记录下来
    • 整个软件项目的背景、技术瓶颈、设计或架构人员的设计习惯、实现方法等均有一定程度的差异,在项目的开发完成过程中发生了一定程度的化学反应。寄希望于一个人完全的了解是不太可能的
  • 在前一条的基础上,则不可避免的导致测试覆盖面小,不完善,甚至理解错误,得出错误的结论。
  • 如果要解决前一条,则避不可免的需要询问相关的人员,则会产生不可见的隐形开销
  • 工作量剧增,在规定的工作时间内全面的``保质保量的完成,在用人成本和人员素质上是不切实际的。

所以需要在项目中的每个岗位基于自己所处项目的职责,去关注每个角度所体现在软件上的模块和功能,需要根据岗位去决定测试覆盖的广度和深度。

序号责任岗位深度和广度测试任务描述
1项目经理注重广度可以适当忽略深度确认软件的项目边界内容是否实现、基于项目经理的角度分析软件的弹性是否能够支撑后续各类变化,如:数据的变化(包括频次、数据格式等等)、业务的变化、与其他项目的关联方式
2需求设计人员注重广度,一定程度需要关注深度确认软件的实现是否实现了需求设计、需要从整体的角度去关注业务在系统的体现是否是一个相较完整的闭环
3软件架构师关注广度也需要关注深度1. 协助测试人员设计测试友好的测试框架 2. 从安全性、可用性和可伸缩性的方向制作测试用例 3. 确认每类数据流转在架构中是否存在问题,包括并发并行等情况、适当考虑软件运行效率
4开发人员关注深度也需要关注广度1. 完成自我的功能后是否编写一定的测试代码进行了测试 2. 对自己实现的代码成果一方面需要完成设计的内容,另一方面要考虑和测试软件在实际运行中的可能,在不同的输入中,最终是否都能够得到正确的结果 3. 需要对功能完成所选择的实现方式对不同数据量数据内容进行考虑甚至是测试 4. 需要考虑和其他模块之间的关系,是否只是单纯的完成而没有交互
5测试人员关注广度基于上述各类人员在项目中的完成和成果,制作不同的数据、不同的测试样例对软件进行系统化的整体测试

1.1.1 举例说明

  1. 开发人员需要使用不同数据进行测试?

数据是软件的生命,不同的数据由于算法的实现可能得出的结果可能不是完全正确的,如下案例:

  • 地理信息中矢量图形的表达有点、多点、线、多线、面、多面。其在OGC标准WKT或GeoJson的表达上均有一定的表达,算法实现中(比如读取显示)是否兼顾了各类数据格式;面状数据存在天井图斑(内外环)的图斑,是否存在问题
  • 在数据为王的软件中,比如采集软件、数据质检软件、数据库管理软件中需要对不同的数据依据数据特性进行测试(当然也要结合实际情况进行测试,比如软件面向的是全国则需要测试全国的情况,如果软件面对的这个地方没有则可以适当的测试延后甚至可以考虑不做测试),比如:
    • 三调质检软件中存在一个规则,相邻图斑属性不相同(此用例结合下一个举例再次说明),软件算法是否考虑节点图斑、天井图斑等等数据的不同得到结果不一样。
    • 全国不同的坡度数据采集方式不一样,有的是小图斑、有的是等级图斑(全区域只有10条)则会导致一个图斑的内存大小非常的大,是否会出现内存溢出的情况。
    • 数据读取时不同的数据存放是否标准,如在房屋安全数据中,默认约定是数据全量提供,但是由于一些情况,可能只提供警告数据的,在算法实现中,是否能够兼容不同的数据体量得到一直的结果。
  1. 开发人员需要对不同体量的数据进行考虑甚至是测试?
  • 结合相邻图斑属性不相同的案例,数据的节点个数大小不同,在算法中是否会出现内存放大的问题,相邻图斑的层数量多,算法实现方式结合时间复杂度和空间复杂度是否会出现时间长度内无法得到结果
  • 数据入库的方式,是否存在数据条数较多时会出现效率慢的情况(会导致在项目在比较紧张的情况下应对效果较差)
  1. 开发人员和需求人员的系统化和结构化思维

软件要想一步就位是可遇不可求的理想状态,基本上是不可能的,总会有需求变更和产品迭代,每次变更都要考虑变更对整体的系统性的影响

1.2. 如何开始一个软件的测试

开始进行软件测试是一个重要的步骤,它有助于确保您的软件在交付给用户之前具备良好的质量和稳定性。以下是一些步骤,可以帮助您开始一个软件项目的测试过程:

  1. 理解项目需求

    • 首先,深入理解软件项目的需求,包括功能需求、性能需求、安全性需求等。这将有助于确定需要测试哪些方面。
  2. 制定测试计划

    • 制定详细的测试计划,包括测试范围、测试目标、测试策略、测试资源、时间表和风险评估。测试计划是测试活动的路线图,有助于确保测试进程有条不紊。
  3. 确定测试环境

    • 确定测试所需的硬件、软件和网络环境。测试环境应该与生产环境相似,以确保测试结果的准确性。
  4. 选择测试方法和技术

    • 根据项目需求和测试目标,选择适当的测试方法和技术。常见的测试方法包括功能测试、性能测试、安全测试等。
  5. 创建测试用例

    • 基于需求和设计文档,编写详细的测试用例,包括输入数据、预期结果和执行步骤。测试用例是用于执行测试的指南。
  6. 设置测试环境

    • 配置测试环境,包括安装和设置必要的测试工具和测试数据。确保测试环境准备就绪。
  7. 执行测试

    • 根据测试计划和测试用例,执行测试。记录测试结果、问题和缺陷,并跟踪测试进度。
  8. 自动化测试(如果适用):

    • 对于重复性高的测试用例,考虑自动化测试。编写自动化测试脚本并集成到测试流程中,以提高效率。
  9. 问题管理

    • 使用问题跟踪工具(如JIRA、Bugzilla等)来记录和管理测试中发现的问题和缺陷。确保问题被及时修复和验证。
  10. 性能测试和安全测试(如果适用):

    • 如果项目需要,执行性能测试和安全性测试,以确保软件在负载和安全方面表现良好。
  11. 测试报告

    • 生成详细的测试报告,包括测试结果、问题汇报、测试覆盖率等信息。测试报告应该清晰、易于理解,以便团队做出决策。

1.2.1. 测试用例

  1. 公用测试用例
    在这里插入图片描述

  2. 软件性能测试用例

在这里插入图片描述

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

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

相关文章

windows server 远程桌面服务配置和授权解决方法

适用:win server 2016以上 win server默认的连接数是两个用户。 1.添加远程桌面授权服务 第一步:服务器管理 - 添加角色和功能打开添加角色和功能向导窗口,选择基于角色或给予功能安装 第二步:添加远程桌面会话主机和远程桌面授…

Serlet API详解

目录 一、HttpServlet 1.1 处理doGet请求 1.2 处理doPost请求 二、HttpServletRequest 2.1 核心方法 三、HttpServletRespons 3.1 核心方法 一、HttpServlet 在编写Servlet代码的时候,首先第一步要做的就是继承HttpServlet类,并重写其中的某些方法 核心…

Java-day18(网络编程)

网络编程 1.概述 Java提供跨平台的网络类库,可以实现无痛的网络连接,程序员面对的是一个统一的网络编程环境 网络编程的目的:直接或间接地通过网络协议与其他计算机进行通信 网络编程的两个主要问题: 1.如何准确定位网络上一台…

MybatisPlus自定义SQL用法

1、功能概述? MybatisPlus框架提供了BaseMapper接口供我们使用,大大的方便了我们的基础开发,但是BaseMapper中提供的方法很多情况下不够用,这个时候我们依旧需要自定义SQL,也就是跟mybatis的用法相同,自定义xml映射文…

VS CODE中的筛选器如何打开?

最近更新了vscode1.82版本,发现在git管理界面有一个“筛选器”功能,十分好用,后来关掉了,找了好久都没有找到办法打开这个筛选器功能,今天无意中不知道按到了哪个快捷键,打开了,就是下图这个&am…

矿山无人驾驶的“奇点时刻”

三年前,矿山无人驾驶赛道还处于整个自动驾驶产业“鄙视链的最底端”;但三年后的今天,这个赛道,却成了无人驾驶(L4)商业化落地难得的亮点——当前,头部的几家矿山无人驾驶公司都已实现去安全员运…

C#WPF通知更改公共类使用实例

本文实例演示C#WPF通知更改公共类使用实例,通过使用公共类简化了代码。其中的代码中也实现了命令的用法。 定义: INotifyPropertyChanged 接口:用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。 首先创建WPF项目,添加按钮和文本控件 <Window x:C…

05-Zookeeper典型使用场景实战

上一篇&#xff1a;04-Zookeeper集群详解 1. Zookeeper 分布式锁加锁原理 如上实现方式在并发问题比较严重的情况下&#xff0c;性能会下降的比较厉害&#xff0c;主要原因是&#xff0c;所有的连接都在对同一个节点进行监听&#xff0c;当服务器检测到删除事件时&#xff0c…

平面设计cdr和ai有什么区别,哪个好用?2023年全新功能解析

平面设计cdr和ai有什么区别 我们做设计的同学经常会把cdr和ai来做比较。要知道&#xff0c;cdr和ai软件都是可以制作专业的矢量图。二者在功能上各有千秋&#xff0c;在绘图领域中也是平分秋色&#xff0c;绝大多数的效果&#xff0c;谁都能完成。但是对于操作方面&#xff0c;…

vue3 - 使用 xlsx 库将数据导出到 Excel 文件

GitHub Demo 地址 在线预览 xlsx是由SheetJS开发的一个处理excel文件的JavaScript库。它可以读取、编写和操作 Excel 文件 安装xlsx npm install xlsx --save实现一个通过的数据导出工具类 import * as XLSX from xlsx/*** description: 导出excel* param {any} dataList* p…

西域商品详情数据接口

西域平台是西域智慧供应链&#xff08;上海&#xff09;股份公司旗下的MRO工业品B2B电商采购平台。 西域平台成立于2002年&#xff0c;于2009年进入MRO工业品B2B电商行业。经过十多年深耕与探索&#xff0c;西域平台已为包括80%央国企及60%的全球500强企业在内的3万余家国内外…

Qt5开发及实例V2.0-第十章Qt网络与通信

Qt5开发及实例V2.0-第十章Qt网络与通信 第10章 Qt 5网络与通信10.1 获取本机网络信息10.2 基于UDP的网络广播程序10.2.1 UDP协议工作原理10.2.2 UDP 编程模型10.2.3 【实例】&#xff1a;UDP服务器编程10.2.4 【实例】&#xff1a;UDP客户端编程 10.3 基于TCP的网络聊天室程序1…

力扣(LeetCode)1333. 餐厅过滤器(C++)

优先队列 请读者读题&#xff0c;应该会发现两个重点&#xff1a;过滤器和排序。大家有没有发现这个效果&#xff0c;有点像xx点评: 大家选店一般在口味/距离/价格能接受的前提下&#xff0c;选评分最高的那家店hh&#xff0c;这就是过滤器的效果。排序是说&#xff0c;对满足…

【SQL】统一训练平台数据库实践--20230927

储存过程vlookup_peopledata_csodtraining 默认导出用今天批次的数据进行join on&#xff0c;先删除过渡表的资料&#xff0c;再将查询结果放在过渡表中。 BEGINDECLARE startdate varchar(50);SET startdate date_format(NOW(),%Y%m%d);DELETE FROM season.csod_data2;INSE…

50KW可编程水冷负载箱的工作原理

可编程水冷负载箱内部配备了水冷系统&#xff0c;包括水泵、水冷片和水冷风扇。水泵将冷却液&#xff08;通常是水&#xff09;循环输送到负载器件上&#xff0c;通过水冷片和水冷风扇将热量散发出去&#xff0c;以保持负载器件的温度在可控范围内。通过编程控制负载器件的工作…

【钻石OA】1区SCI,无需版面费,仅2个月录用!

重 点 本期推荐 本期小编给大家推荐的是无需版面费的1区农林科学类SCI&#xff08;钻石OA&#xff09;。 目前进展顺利&#xff0c;在WOS数据库中各项指标表现良好&#xff0c;且无预警记录。 领域符合录用率高&#xff0c;1区SCI最快2个月录用&#xff01; 期刊官网系统提…

uni-app 之 短信验证码登录

uni-app 之 短信验证码登录 image.png image.png <template><view style"width: 100%; display: flex; flex-direction:column; align-items:center;"><view style"width: 300px; margin-top: 100px;"><!-- // --><!-- 1&#…

今天给大家介绍一篇基于java的养老院管理系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于java的养老院管理系…

服务网关Gateway_微服务中的应用

没有服务网关 问题&#xff1a; 地址太多安全性管理问题 为什么要使用服务网关 网关是微服务架构中不可或缺的部分。使用网关后&#xff0c;客户端和微服务之间的网络结构如下。 注意&#xff1a; 网关统一向外部系统&#xff08;如访问者、服务&#xff09;提供REST API。在Sp…

Android 编译插桩操纵字节码

本文讲解如何编译插桩操纵字节码。 就使用 ASM 来实现简单的编译插桩效果&#xff0c;通过插桩实现在每一个 Activity 打开时输出相应的 log 日志。实现思路 过程主要包含两步&#xff1a; 1、遍历项目中所有的 .class 文件​ 如何找到项目中编译生成的所有 .class 文件&#…