导图社区 软件测试
本思维导图讲述软件测试基础,包含软件测试的定义、软件测试的核心目的与流程等知识点,软件测试是软件质量保证的一部分。早期引入软件测试有利于尽早发现缺陷和预防缺陷植入,并可以协助建立质量的文化。
分类速记英语单词应用思维导图,列出了一系列英文中常见的分类选项,譬如时间、季节、星期等等,希望能够帮助到大家的记忆。
这是一个关于Oracle数据库的思维导图,全面覆盖了数据库架构、SQL语言、PL/SQL编程、数据库管理、性能优化及安全策略等关键领域。对部分数据库的内容进行摘录,希望对大家有所帮助。
社区模板帮助中心,点此进入>>
计算机操作系统思维导图
简单介绍MYSQL数据库软件的基本命令
计算机基础知识
.net学习总结
python基础知识点简单总结
序列类型的方法
管理信息系统
Python3.0入门知识思维导图
java 从入门到精通(第四版本)
软考架构设计师
软件测试
第一周 软件测试与质量
1.1 概述
1.1.1 为什么需要软件测试
软件测试是软件质量保证的一部分。早期引入软件测试有利于尽早发现缺陷和预防缺陷植入,并可以协助建立质量的文化
哪些人需要了解软件测试
用户:参与需求验证和验收测试
项目经理:参与测试计划制定
程序员:完成单元测试
测试员:设计和执行测试
1.1.2 从打蚊子看软件测试
第1级 初始阶段
措施:
测试是完全混乱无序的,测试等同于调试,编码完成后随意的测试和调试,目标是表明软件是奏效的
优势:
最省力气
弊端:
开发出的软件产品得不到任何质量的保证,存在很多缺陷,用户无法接受
第2级 定义阶段
测试不同于调试。将测试定义为编码完成后的阶段和工作,所有测试都是基于执行的,而且强烈依赖于代码,只有当编码完成后才开始测试,目标是表明测试符合其技术规范
人们掌握了一定的测试技术和方法,取得了一定的效果
在需求和设计中没有测试,从而导致大量缺陷扩散到代码中,开发出的软件产品仍然会存在较多缺陷,产品存在质量问题
第3级 集成阶段
将测试集成到整个软件生存周期,开始考虑客户和用户的需求来建立测试目标,将测试看作专业化的活动,成立专门的测试组织,拥有基本的测试工具
基于技术的测试,效果更好
在整个软件生存周期中没有建立正式的评审程序,没有开展评审活动,测试组疲于应付
第4级 管理与测量
测试成为一个可以测量和量化的过程,开发过程引入评审机制,测试用例和测试过程被管理起来
基于规范的测试,拥有流程控制,出现质量管理活动
只能被动的找缺陷,无法主动控制缺陷
第5级 最佳化
建立缺陷预防的思想,通过统计抽样等方式不断改进测试,自动工具完全支持测试用例的运行,开展各种与测试有关的度量活动
机制好转,不断改进测试,可以度量和优化产品质量
1.1.3 2018年软件测试行业现状调查
1 被测产品有何特点
web应用(C/S或B/S)
移动端
PC端软件
服务器端
嵌入式
其他
2 测试主要工作内容是什么?
仍以手工功能测试为主(启发:测试用例设计十分重要)
接口测试变得越来越重要(启示:接口测试工具和方法是需要了解和掌握的)
3 测试需要掌握的利器
应掌握的编程语言
Java
Java语言仍然排名第一
python
python使用越来越广泛
C/C++
JavaScript
C/C++/JavaScript相差不大
使用的数据库
排名前三的仍然是:Mysql,Oracle和SQL server
值得注意的是:MongoDB、Redis,这类Nosql类型数据库的使用越来越广泛
测试工具
自动化功能测试工具
selenium 越来越广泛被使用
自动化移动功能测试工具
appium越来越广泛被使用
自动化性能测试工具
JMeter越来越广泛被使用
测试管理工具
禅道越来越广泛被使用
单元测试工具
JUnit使用越来越广泛
testNG使用也很常见
Pytest的使用越来越多(伴随Python的兴起)
单元测试越来越受重视
行为驱动开发
Cucumber
总体趋势
单元测试越来越收到开发组织的重视
测试也要求有开发能力
开发也要求写自测
1.2 软件测试的定义
1.2.1 从软件测试定义看测试目的
什么是软件测试
定义
软件测试是人工地,或通过使用工具来自动地运行被测软件系统,或静态检查被测系统的过程
软件测试是通过设计和运行测试用例来检验被测系统的实际输出与预期输出是否一致,最终目标是保证系统应符合需求
目的
其目的在于检验被测系统是否满足需求,或要弄清楚实际的系统输出与预期系统输出之间的差异
首要目的不是要发现缺陷,而是要确保被测系统满足需求
软件测试以需求为中心
与需求规格说明书进行对照
软件开发的过程
定义需求
委托方
分析需求
测试应该从分析需求阶段开始切入
双方
实现需求
开发人员
校验需求
测试人员
软件测试与需求
谁定义需求
客户/用户
谁来分析需求
测试工程师如何了解需求
如何验证被测系统符合需求
1.2.2 从软件测试定义看测试内容、手段和过程
方法
静态检查
动态测试
执行策略
人工测试
由测试人员手动执行测试用例,验证软件功能、界面内、兼容性等是否符合需求
手工动态测试系统涉及的工作
提供被测对象
准备相关预期
设计测试用例
搭建测试环境
运行测试用例
检查测试结果
记录测试过程
报告发现的缺陷
执行回归测试
输出
测试用例
驱动/桩模块
缺陷报告
手工静态检查系统涉及的工作
准备用户需求
阅读代码
阅读文档
主要应用场景
初期测试阶段
需求不明确时,通过人工探索发现潜在问题
界面与交互测试
验证UI布局、按钮响应、页面跳转等视觉和操作体验
兼容性测试
验收测试
模拟真实用户操作,确认软件符合业务需求(如电商支付流程)
自动化测试
通过编写脚本或使用工具(如Selenium、Appium)自动执行测试用例,验证预期结果
回归测试:软件迭代后,自动验证已有功能是否正常(如修改代码后,自动运行数百条用例)。
性能测试:使用 JMeter 等工具模拟高并发场景,测试系统负载能力(如电商大促时的服务器抗压性)。
接口测试:通过 Postman/SoapUI 自动调用 API,验证数据交互逻辑(如用户注册接口的参数校验)。
持续集成(CI):与 Jenkins 等工具集成,实现代码提交后自动触发测试(如自动化部署流水线)。
自动化动态测试系统涉及的工作
编写测试脚本
测试脚本