为了账号安全,请及时绑定邮箱和手机立即绑定

10分钟通读《软件测试》理论

标签:
职场生活

计算机行业流行一个笑话: 有三样东西在制造过程中是永远看不见的, 它们是 法律, 香肠和软件 !


软件测试工程师

工作的职责:

  • 尽可能早一些找出软件缺陷, 并确保它得以修复

软件周期和所处的阶段

  • 构思

  • 分析

  • 设计

  • 开发

  • 测试

  • 最终产品

  • 维护

岗位要求(应具备的素质)

  • 他们是探索者

  • 他们是故障排除员

  • 他们不放过任何蛛丝马迹

  • 他们是追求完美主义者

  • 他们判断准确

  • 他们注重策略和外交

  • 他们善于说服

  • 他们受过软件编程方面的教育

什么是软件测试

  • 软件测试是一项批判性的工作

软件测试应该在项目什么阶段开始介入

  • 设计阶段


需求和Bug

什么是Bug

  • Bug即软件缺陷, 源自Mark Ⅱ

Bug的状态

  • 新的(New)

  • 已指派(Assigned)

  • 打开(Open)

  • 已修复(Fixed)

  • 待测试(Pending Reset)

  • 再测试(Reset)

  • 关闭(Closed)

  • 再打开(Reopen)

  • 拒绝中(Pending Reject)

  • 被拒绝( Rejected)

  • 延期 (Postponed)

  • 延期中 (Deferred)

测试报告, 描述软件缺陷的基本准则

  • 一致性

  • 唯一性

需求规格说明书

  • 完整

  • 准确

  • 精确, 不含糊, 清晰

  • 一致

  • 贴切

  • 合理

  • 代码无关

  • 可测试性

一个良好的需求应当具备哪些特征

  • 需求明确, 有确切的图文说明

  • 当前技术下, 需求可以实现

  • 功能实用, 与主功能模块不冲突

作为测试工程师, 如果你发现需求一直在变化, 怎么办

  • 通过与产品经理沟通, 稳定产品需求

  • 优先测试需求稳定的功能模块

  • 对需求变化频繁的功能部分, 编写通用性较好的测试用例


软件测试的现实挑战

测试的挑战性, 正确理解测试

  • 完全测试程序是不可能的

  • 软件测试是有风险的行为

  • 测试无法显示潜伏的软件缺陷

  • 并非所有的软件缺陷都需要修复

  • 产品说明书从没有最终版本

  • 软件测试员在产品小组中不受欢迎

  • 不存在没有缺陷的软件

  • 软件测试是一项讲究条理的技术专业

各种不同类型测试的定义及区别

  • 黑盒测试: 无需了解 软件内部代码结构, 重视功能, 不关注具体的实现方式

  • 白盒测试: 必须了解 软件内部代码结构, 重视实现的逻辑, 耗时更长, 无法考虑到所有情况

  • 静态测试: 不运行代码

  • 动态测试: 运行代码

你发现了一个缺陷, 但开发人员认为不是, 你如何处理

  • 主动与开发人员沟通, 讲明缘由

  • 向测试经理反应情况

  • 即时跟进bug的修改状态

  • 如果不是特别紧急的bug, 而产品急于上线, 可以先对bug进行记录, 在下一迭代周期提出bug


静态黑盒测试

需求规格说明书(spec)是什么?

  • 需求规格说明书展现了软件功能的雏形

  • 开发人员可以按照说明书, 有效制定自己的开发计划

  • 让用户了解将要开发软件的功能是什么,如果用户有不满意的地方,可以快速改进

  • 需求规格说明书不包括具体的编码要求,也不包括软件的具体功能操作步骤

静态黑盒测试需要耐心阅读文档, 具有想象力


动态黑盒测试

测试流程

  • 建立状态转换图

  • 减少要测试的状态及转换的数量

  • 定义测试用例

  • 执行重复, 压迫, 重负测试

测试工程师与测试经理的区别

  • 测试工程师侧重进行具体测试任务的执行

  • 测试经理侧重进行测试任务的调配

等价划分法

  • 等价类划分是指把分步骤把海量(无限)的测试用例, 缩减的很小, 但过程同样有效

如果能够执行完美的黑盒测试, 那还需要白盒测试吗?

  • 依然需要执行白盒测试, 因为结果正确, 不能表软件程序没有问题, 有可能是错误的程序得出了正确的结果


静态白盒测试

代码检查的流程和要求

  • 同事审查

  • 走查

  • 检验

代码检查的具体方法

  • 检测数据引用

  • 检测数据声明

  • 检测计算错误

  • 检测比较错误

  • 检测控制流程错误

  • 检测子程序参数错误

  • 检测输入输出错误

  • 其他检查(是否使用外语, 是否考虑移植, 兼容性)

代码检测对提高软件质量的积极作用

  • 尽早发现软件缺陷

  • 规范编码风格

  • 减少不必要的bug

静态白盒测试和软件开发调试有什么区别?

  • 静态白盒测试: 测试人员根据软件程序,寻找软件缺陷

  • 软件开发调试: 开发人员在开发过程中的操作


动态白盒测试

单元测试及集成测试的区别

  • 单元测试是从单元模块进行测试, 自底向上

  • 集成测试是从软件整体进行测试, 自顶向下

jUnit

  • jUnit是常用的Java语言测试框架

配置测试与兼容性测试

概念

  • 配置测试是指使用各种硬件来测试软件运行的过程

配置测试和兼容性测试主要的工作内容

  • 配置测试:

  1. 确定所需的硬件类型

  2. 确定用哪些厂商的硬件, 型号和驱动程序可用

  3. 确定可能的硬件特此, 模式和选项

  4. 将确定后的硬件配置缩减为可控制的范围

  5. 明确与硬件配置有关的软件的唯一性特征

  6. 设计在每一种配置中执行的测试用例

  7. 在每种配置中执行测试

  8. 反复测试直到小组对结果满意为止

  • 兼容性测试:

  1. 向后和向前兼容

  2. 测试多个版本的影响

  3. 测试高级和低级标准规范

  4. 数据共享兼容性

向上兼容和向下兼容的区别

  • 向上(向前)兼容是指可以使用软件未来的版本

  • 向下(向后)兼容是指可以使用软件以前的版本

工作量为什么会倍增

  • 客观来讲, 每个模块都有多个选项, 而这些选项的排列组合, 会上涨多个数量级

  • 只是单纯的软件本地化操作, 就要语言,文化, 内容, 数据格式, 数据兼容性等繁杂问题


外国语言测试

软件测试工程师不懂外语, 为什么还要参与外国语言版本的软件测试

  • 懂各国语言的专家, 不一定了解软测试

  • 测试工程师需要与语言专家配合共同完成测试


易用性测试和安全测试

基本概念

  • 易用性测试: 易用性测试是指让用户使用软件时是否方便

  • 应符合的标准规范: 直观, 一致, 灵活, 舒适, 正确, 实用


软件质量管理和CMM

基本概念

  • 检查和评价当前软件开发的过程, 找出改进的方法, 以达到防止软件缺陷出现的目标

SQA是什么

  • 软件质量保证

CMM是什么? 五个级别的基本定义?

能力成熟度模型(CMM)是一个行业标准, 用于定义和评价软件公司开发过程的成熟度, 提供怎样做才能提高软件质量的指导

  • 1级: 初始的

  • 2级: 可重复的

  • 3级: 定义的

  • 4级: 可管理的

  • 5级: 不断优化的




点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
3867
获赞与收藏
281

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消