软件测试基础理论(一)
关于基础理论一二三,都已经重新整理更新到了基础知识总结,传送门:http://www.cnblogs.com/imyalost/p/6144862.html
1、什么是软件
定义:计算机系统中与硬件相互依存的一部分(程序+数据+相关文档)
程序:按事先设计的功能和性能要求执行的指令序列
数据:使程序能正常操纵信息的数据结构
文档:与程序开发、维护和使用有关的图文资料
2、软件的生命周期
可行性研究和计划、需求分析、概要设计、详细设计、实现(开发阶段)、
组装测试、确认测试、使用和维护
3、什么是软件测试
定义:软件质量保证的一种手段
目的:发现错误以及避免这些错误的发生
4、软件测试的方法
1)用试题检查法
2)用新旧两个系统做平行处理检查
3)软件测试自动化工具测试
5、软件测试有哪几个阶段(任务)
1)制定测试大纲(测试计划)
2)制作测试数据(测试方案)
3)单元测试(程序测试,一般由开发人员进行)
4)功能测试/性能测试(这两个阶段重合性较大,可以归为一类)
5)集成测试(子系统测试)
6)系统测试
7)验收测试
8)测试报告
9)向下阶段提交系统运行、维护用户手册
备注:可以分为产品→开发→测试→运维
6、软件测试工作流程图
立项阶段→需求阶段→设计阶段→编码&单元测试阶段→集成测试阶段→系统测试阶段→验收测试阶段→结项总结阶段
7、自动化测试的优点
提高工作效率,减少人的手工劳动,节省时间和成本
8、自动化测试的过程
需求分析→测试计划→框架搭建→测试—调试测试→评估
9、自动化测试的优点
1)能执行更多更频繁的测试, 使某些测试任务执行方式更高效
2)能执行一些手动测试困难或者不能做的测试
3)任务自动化,使测试人员投入更多精力设计测试用例,提高测试准确性和人员积极性
4)具有一致和可重复性特点,更客观,提高软件信任度,仍存在一定局限
5)不能取代手工测试,不能自动化所有的测试(如只是偶尔执行测试,或需求经常变动,不稳定,或者需要大量手工参与时)
6)自动化测试工具只能执行命令,而手工可以在测试中判断测试的输入是否正确,以及改进测试,还可处理意外事件
7)对质量依赖较大,在确保质量的前提下,实施自动化才有意义
8)自动化测试需要在整个测试系统成熟稳定后,工作效率才会随着测试执行次数的增加而提高
9)自动化测试的成本可能高于手工测试
10、自动化测试技术
录制/回放、脚本技术、数据驱动(data driven)、关键字驱动(keyworddriven)、业务驱动
11、自动化测试的级别
1)捕获和回放
2)捕获、编程和回放
3)编程和回放
4)数据驱动的测试
5)使用动作词的测试自动化
12、自动化测试方案选择需要考虑的方面
1)项目的影响(能否帮助项目进度、覆盖率、风险)
2)复杂度(是否容易实现,包括数据和其他环境等)
3)时间(实现自动化需要多少时间)
4)早期需求和代码的稳定性
5)维护工作量(代码能否能长期保持相对稳定)
6)覆盖率
7)资源(是否拥有足够的人力、硬件和数据资源来运行自动化测试)
8)执行(负责执行的人员是否有足够的技能和时间去运行)
13、自动化测试的重点
1)搭建测试环境,测试场景
2)测试用例
3)测试结果的验证
4)自动化测试的流程以及执行
14、自动化测试需要解决的问题
1、工具的选择
2、测试用例脚本编写
3、测试脚本的管理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)