软件测试基础--学习笔记
一,软件研发概念(软件是什么?软件的分类)
1.什么是软件?
软件是人类思维程序化的体现,是程序及相关文档的组合,是交付给客户的一整套的解决方案,软件的本质是人类思维程序化的体现
2.相关文档:
一般有需求文档,软件计划,设计文档,测试报告,用户手册等
相关文档使人们更加方便快速的去理解软件的设计,使人们更方便的使用和维护软件
3.软件的分类
操作系统:操作系统是用来管理计算机软件(应用)和硬件的一套系统软件,操作系统是连接用户和计算机之间的桥梁
驱动程序:驱动程序是连接计算机硬件和操作系统之间的桥梁可以操作硬件进行操作
应用程序:是为了满足人类特定的功能而实现的软件
其他相关知识:CPU(主要进行逻辑控制和逻辑计算的CPU天梯图主频),内存:是一个临时存储设备,断电数据丢失(AMD农场/Intel牙膏厂),硬盘:永久存储的介质,主板:主板上会有CPU,内存,硬盘,显卡
编译程序:(编译器)把用高级程序设计语言书写的源程序,翻译成等价的机器语言的目标程序,能编写计算机程序的语言称为设计语言
数据库:是按照一定数据结构组织,存储,管理数据的一个仓库
网关(Gateway):就是一个网络连接到另一个网络的关口
二,程序语言的分类
1.机器语言:是一种计算机硬件可直接识别的语言,只包括0和1,也被称为机器码,是一种低级语言,执行效率高
2.汇编语言:是一种介于机器语言和高级怨言之间得一种语言,它是对简单机器语言进行的封装,汇编语言也是一种低级语言
3.高级语言:是一种以人类自然语言为基础,更接近人类表达,描述问题的方式的语言,它是一种高级语言
4.什么是编码?编码是指以人脑的思路,方法去编写程序的代码的过程,也就是程序员编写代码的过程
5.什么是软件开发?
软件开发不只是编码,是包括需求,设计,编码,调试的一系列过程,debug调试,是指开发人员在编码完成后发现代码中的错误并进行纠正的过程
需求:需求分析/设计:(概要设计,详细设计)
6.什么是软件研发?
软件研发不只是软件开发,它包括需求分析,软件设计,用例设计,编码,测试执行,测试报告,软件交付等一系列的过程
因此,软件研发至少包括需求设计,编码,测试
7.需求:需求来源于客户,它是描述软件系统应该做什么的一份文档,客户一般提供的需求称为原始需求,一般由产品经理或者BA进行需求处理,形成一份标准的需求文档(又被称为软件需求规格说明书)
8.需求澄清:通常我们将产品经理或者BA在整理需求文档阶段向用户提出需求问题的过程称为需求澄清,有时也将在需求分析会议上开发和测试提出问题的过程称为需求澄清
需求变更:是指用户或者软件公司对需求所做的变更,客户总是在不断变更需求的,需求变更的CCB仲裁会议.CCB会议一般由产品经理,用户,项目经理,高级开发人员参与
9.概要设计:设计软件包含总体框架,模块,子模块,以及模块之间的接口,概要设计一般由高级开发工程师完成
10.详细设计:确定模块内具体的方法,各接口具体详细的算法等
11.环境:包括硬件,服务,DB,网络等
12.接口:接口就是已经经过编译的,可被调用的函数库,主要分为硬件接口和软件接口
硬件接口:USB,sata,vga,hdmil等
软件接口:分为内部接口和外部接口,比如微信
支付宝的支付接口可以被其他程序调用
补充知识:
软件公司的人员架构:BA/产品经理,kaifarenyaun(前端开发/后端开发),UI:用户界面交互工程师(主要负责完成用户界面需求开发的人员),测试人员,QA(质量保证),项目经理(PM:控制项目总体进度,进行任务的分配,资源的协调)
13.软件的生命周期:是指从需求分析开始一直到软件消亡的一系列过程,包括需求,设计,计划,编码,测试,上线,升级,维护,废弃等过程
三,软件测试的相关概念
1.什么是软件测试: 软件设计是对计算机程序及其他相关文档进行测试,他不仅是找出程序中的错误,更是软件研发过程中的关键步骤,包括软件研发过程中的质量评定和改进
2.软件测试对象:程序及其他相关文档
3.软件测试的价值:
质量检测:尽可能多的找出程序中的错误
质量改进:对软件研发过程提出改进意见
质量鉴定:证明版本可以发布
质量督导:提高软件研发团队的成熟度
4.软件测试的误区
软件测试只是对程序 的测试/软件测试在开发完成后进行(软件测试是从需求分析就开始了)/软件质量只是测试人员的责任/软件发布后的错误全是测试人员的错误/软件测试对测试技术要求不高/软件测试是测试的事,与开发无关(开发测试)
5.软件测试的流程:
一般来说,软件测试的标准流程:需求分析-->测试计划-->思维导图-->测试设计-->测试用例-->搭建环境-->执行测试-->提交缺陷-->缺陷回归-->测试报告
#需求分析:是指开发人员和测试人员学习需求的过程;一般在公司是以需求分析的会议展开(在需求分析的会议上要进行需求的串讲和反串讲)
#串讲:需求的串讲是指产品经理或者BA向开发和测试人员 讲解需求的过程,当开发人员和测试人员需求理解不一致时,需要找产品经理进行需求评审
#反串讲:由开发人员或测试人员向产品经理讲解需求的过程
通过串讲和反串讲达到了所有人对需求理解完全一致,也就是做到了需求对齐的工作
6.测试计划(测试计划和测试报告,由testleader编写)
是对测试整个活动所作的计划,一般包括了测试背景,测试时间节点,人员安排,测试方法,测试环境,测试风险,退出机制等(退出机制:测试完成的标准)
7.测试完成的标准:一般要求测试覆盖度100% 缺陷遗留率2%-5%以下,所有已遗留缺陷 应得到合理的解决方案(测试覆盖度100%是指测试用例对需求的覆盖程度)
补充知识:
思维导图:使用思维导图软件,比如XMind将软件中的功能点进行罗列
8.测试设计:也被称为测试矩阵,一般将思维导图中的功能点中软件的测试点进行提取,所做出来的文档,被称为测试设计文档
9.测试用例:测试用例是一组包含输入和输出(期望结果)的文档,通过测试用例的执行,以发现软件系统是否适合需求说明要求
10.测试用例包含的元素:
用例编号[模块,子模块,测试场景],用例标题,优先级,前置条件,执行步骤,期望结果
11.测试用例编写注意事项:
1)测试用例标题必须以验证二字开头
2)测试用例标题中不可出现二重义字样
3)测试用例标题中必须给出明确测试结果
4)测试用例执行步骤中应给出具体测试数据
5)测试用例标题中不可超过30字
补充知识:
用例粒度:测试用例的粗细程度,用例粒度高,全部测试用例数量会减少,但一个测试用例执行的测试点会增多
用例评审:当测试用例编写完成后,需要进行用例评审工作,一般由测试人员组织,开发人员,测试组长[开发组长][产品经理]一起
如何提高测试用例覆盖度: 1.仔细阅读需求,将需求中的功能点彻底细化理解
2.考虑使用各种测试用例设计方法
3.进行用例评审(review)
12.搭建环境:测试人员在执行测试用例之前,需要搭建测试环境
环境分类:1)开发环境--由开发人员搭建的环境,也就是开发人员使用的环境
2)测试环境:由测试人员搭建的环境,一般主要用于软件的测试
3)生产环境:也被称为线上环境,是指软件上线后真实使用的环境
13.执行测试: 是指测试人员按照测试用例一个个去对软件进行测试的过程
14.提交缺陷: 当执行测试用例时,出现与测试用例期望结果不相符的结果,可以进行缺陷提交
缺陷应该包含的元素:缺陷编号,[模块,子模块,测试场景],缺陷标题,优先级,缺陷等级,重现步骤,期望结果,实际结果
1)优先级:缺陷修复的优先级顺序, 优先级一般从高到低分为p1-p2-p3-p4
2)缺陷等级:缺陷的严重性 Severity
致命:一般引起系统崩溃或者重要模块功能异常
严重:一般模块的功能整个异常或者重要模块功能点的异常
一般:一般功能点的缺失,eg:按照价格顺序升序排序时,没有按照从小到大排序
轻微:提示(一般指界面显示方面的问题)
3)属于缺陷的情况:a不满足客户需求 b越客户的需求 c不符合用户的操作习惯 d缺失的异常处理
15.缺陷的生命周期: 提交(测试或开发 ) -->确认(一般由测试组长进行确认后指派给开发组长,开发组长再指派给开发响应人员)-->修复(只能由开发人员完成,修复完成后指派给测试人员)-->验证(只能由测试人员完成)-->关闭(只能由测试人员完成)
16.测试报告:测试报告就是对测试活动所做的整体的一个报告,测试报告一般包含:测试环境,测试方法,测试用例的执行情况,缺陷的分布情况,缺陷的处理情况,测试结论等
17.软件测试的原则:
1)软件测试应尽早执行,并贯穿于整个软件生命周期
2)穷举测试是不可能的(任何的软件在时时刻刻都存在缺陷)
3)必须确定预期输出(结果)
4)必须彻底检查每个测试结果
5)充分注意测试中的集群现象(往往发现缺陷多的模块遗留的缺陷也多)
6)缺陷的二八定律:通常80%的缺陷出现在20%的模块中
7)严格执行测试计划,排除测试的随意性
8)注意合理合法的输入,也要注意非法非预期输入
9)检查程序员是否做了不该做的
10)杀虫剂悖论:反复使用同样的测试,会使软件具有抵抗力/此时可以使用不同的测试方法进行测试,或者直接让新的测试人员进行测试,往往会有不同的结果
18.流程图:以流程+图形的方法去表示算法/算法:算法是指对于某一实际问题有限的解决步骤
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App