如何去开展软件测试工作

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.rhkb.cn/news/143053.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用CRM系统转化潜在客户

CRM销售管理就是通过CRM销售管理系统管理相关的销售阶段,从而转化潜在客户,完成相应的交易指标以及成交率,从而吸引到更多的潜在客户。那么,CRM系统如何转化潜在客户? 潜在客户是CRM客户管理的基本,需要不…

基于遗传算法解决的多仓库多旅行推销员问题(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Linux部署elk日志监控系统

目录 一、简介 二、部署elasticsearch 2.1 安装jdk11(jdk版本>11) 2.2 下载安装包 2.3 授权elk用户 2.4 配置elasticsearch.yml 2.5 启动elasticsearch 三、部署logstash 3.1 启动测试 3.2 可能出现的报错 3.3 指定配置文件启动logstash 3.4 安装El…

【网络安全】网络攻击的类型有哪些?

对网络的攻击大致可以分为两类:服务供给和非服务攻击。从攻击的手段可以分为8类:系统入侵类攻击、缓冲区溢出类攻击、欺骗类攻击、拒绝服务类攻击、防火墙攻击、病毒类攻击、木马类攻击与后门攻击。 服务类攻击(Application Dependent Attrac…

正点原子lwIP学习笔记——NETCONN接口简介

1. NETCONN接口简介 NETCONN API 使用了操作系统的 IPC 机制, 对网络连接进行了抽象,使用同一的接口完成UDP和TCP连接。 NETCONN API接口是在RAW接口基础上延申出来的一套API接口 首先会调用netconn_new创建一个pcb控制块,其实际是一个宏定…

全链路压测:优化系统性能的关键措施

在现代互联网时代,系统的性能稳定性和可靠性对于企业的成功至关重要。全链路压测作为一项关键的测试措施,可以模拟真实的负载情况,全面评估系统在高负载环境下的表现。本文将介绍全链路压测的定义、作用以及在优化系统性能方面的重要性。 一、…

PowerDsigner 数据库逆向pdm数模 常见数据库连接问题

本文章记录本人在使用powerdsigner工具,反向工程生成项目数据库表结构以及表关系的过程中遇到的两个常见问题。 问题1:Could not Initialize JavaVM 问题2:Non SQL Error : Could not load class oracle.jdbc.OracleDriver 环境&#xff1…

Docker-如何获取docker官网x86、ARM、AMD等不同架构下的镜像资源

文章目录 一、概要二、资源准备三、环境准备1、环境安装2、服务器设置代理3、注册docker账号4、配置docker源 四、查找资源1、服务器设置代理2、配置拉取账号3、查找对应的镜像4、查找不同版本镜像拉取 小结 一、概要 开发过程中经常会使用到一些开源的资源,比如经…

界面组件DevExpress WPF v23.2新功能预览 - 更轻量级的主题

本文主要描述了DevExpress WPF即将在几个月之后发布的v23.2中包含的新功能,持续关注我们获取更多最新资讯哦~ P.S:DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强…

自己开发一个VSCode插件,快速生成Flex布局代码

插件CSS Flex 安装地址:VSCode插件安装 GitHub:https://github.com/xutao-o/css-flex-code 💡介绍 这是一个快捷生成CSS Flex布局代码的VS Code插件,类似于Google开发者控制台里的Flex布局工具,就是看谷歌的布局工具…

爬虫获取一个网站内所有子页面的内容

上一篇介绍了如何爬取一个页面内的所有指定内容,本篇讲的是爬去这个网站下所有子页面的所有指定的内容。 可能有人会说需要的内容复制粘贴,或者直接f12获取需要的文件下载地址一个一个下载就行了,但是如下图十几个一级几十个二级一百多个疾病…

【Spring Cloud】认识微服务架构,拆分简单的 Demo 实现服务的远程调用

文章目录 前言一、认识微服务1.1 服务架构的演变:从单体到微服务单体架构分布式架构微服务架构 1.2 微服务技术的对比:Dubbo、Spring Cloud、Spring Cloud Alibaba技术对比公司需求的选择 1.3 Spring Cloud:微服务框架的精华什么是 Spring Cl…

工具篇 | WSL使用入门教程以及基于WSL和natApp内网穿透实践 - 对比VMWare

介绍 在开发工具中,Windows Subsystem for Linux (WSL) 和 VMWare 它们都可以实现了在 Windows 上运行 Linux系统。 文章概览 WSL Vs VMWare 我们将简单比对 WSL 和 VMWare,在性能、资源消耗等方面的差异,以协助您做出更加明确的选择。 …

数据结构与算法

目录 数据结构与算法 为什么要学习数据结构和算法? 常见的数据结构 常用算法 插入排序 一、概念及其介绍 二、适用说明 三、过程图示 希尔排序 一、概念及其介绍 二、适用说明 三、过程图示 归并排序 一、概念及其介绍 二、适用说明 三、过程图示 …

python抓取网页视频

1. 喜马拉雅音频 1-1 喜马拉雅 import requests import json import time import random import hashliburl https://www.ximalaya.com/revision/play/v1/audio?id46103875&ptype1headers { user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.3…

【量化】量化原理浅析

前言 模型在端侧运行时,会追求模型保持原有精度的同时,让模型的运行速度更快。基本方向为模型压缩和加速,着力于减少网络参数量、降低计算复杂度。可通过以下方式实现: 针对网络结构本身进行改进,常用的3x3的卷积的叠加…

从零搭建开发脚手架 顺应潮流开启升级 - SpringBoot 从2.x 升级到3.x

文章目录 涉及升级项导入包修改SpringBoot3.x中spring.factories功能被移除 涉及升级项 升级JDK 8 -> JDK17 Spring Boot 2.3.7 -> Spring Boot 3.1.3 Mysql5.7.x -> Mysql8.x Mybatis-Puls 3.4.2 -> 3.5.3 knife4j 2.x -> 4.3.x sa-token 1.24.x -> 1.…

基于Xilinx UltraScale+ MPSOC(ZU9EG/ZU15EG)的高性能PCIe数据预处理平台

PCIE707是一款基于PCIE总线架构的高性能数据预处理FMC载板,板卡具有1个FMC(HPC)接口,1路PCIe x4主机接口、1个RJ45千兆以太网口、2个QSFP 40G光纤接口。板卡采用Xilinx的高性能UltraScale MPSOC系列FPGA作为实时处理器&#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…

公司新招了个字节拿36K的人,让我见识到了什么才是测试扛把子......

5年测试,应该是能达到资深测试的水准,即不仅能熟练地开发业务,而且还能熟悉项目开发,测试,调试和发布的流程,而且还应该能全面掌握数据库等方面的技能,如果技能再高些的话,甚至熟悉分…