软件测试方法和技术实践笔记(一)——软件测试基础
软件测试基础概要
什么是软件测试
软件包括静态测试和动态测试
-
静态测试 不运行程序,通过对代码和项目文档检查,分析,代码分析工具发现缺陷
发现的缺陷:与标准之间的偏差、需求错误、设计错误、可维护性不足、错误的接口说明等
-
动态测试 通过运行程序,比较软件的外在表现和需求、设计之间是否一致,从而发现缺陷
发现的缺陷:功能实现错误,功能和用户需求的偏差
在《软件测试的艺术》中,作者认为:测试是为了证明程序有错,通过运行程序发现问题
软件测试的对象
按功能划分
软件 = 程序 + 数据 + 文档
程序:运行程序
数据:业务数据、用户数据等
文档:用户手册、安装文档、需求文档、设计文档
按结构划分
软件包含组件/模块、UI、数据库、系统
全过程软件测试
测试贯穿软件整个生命周期
需求评审 | 设计评审 | 单元与集成测试 | 系统测试 | 验收测试 |
---|---|---|---|---|
需求缺陷 | 设计缺陷 | 代码和接口缺陷 | 系统缺陷 | 其它各种缺陷 |
缺陷
任何违背质量的问题都可以称为缺陷
内部质量 代码风格、内聚性、耦合性…
外部质量 功能、性能、安全性、可靠性…
使用质量 用户体验、经济风险、健康风险、上下文覆盖…
调试是不是测试?
测试是找到软件中存在的缺陷
调试是找到缺陷产生的原因
软件测试的正面解读
-
一致性的验证:设计是否满足需求,代码是否符合设计
-
确认软件系统是否满足用户的实际需求
软件测试 = Verification + Validation
软件测试的价值
-
发现问题,督促问题解决,提供产品质量
-
持续提供质量反馈,及时揭示质量风险,有助于控制项目风险,提高产品质量
-
全面评估产品质量,提供有关产品质量的全面、客观的信息
-
通过缺陷分析,归纳缺陷产生原因,有助于缺陷预防
从质量控制到质量保证
测试达人观点分享
进阶软件测试人员需要掌握的
- 从发现缺陷到预防缺陷
- 将质量思想融入到整个项目团队
- 技术广度比开发要求更高 更全面的知识可以让我们更准确的定位问题,采用更好的测试手段
- 测试除了对技术的了解,也要对产品功能、特性要有系统性思考
- 要有很强的沟通能力、冲突管理能力、说服项目管理、开发人员改正问题
- 开发技术发展很快,测试需要具有质量和效率的意识,也要有良好的技术以适应技术的飞速发展
- 测试不仅是质量保证,还包括从产品策划、架构设计到流程优化的综合能力提升