软件测试知识点总结

说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!

1、软件的概念

程序、数据、文档

2、软件的分类

  • 系统软件、支持软件、应用软件

  • 单机软件、C/S、B/S

3、软件测试的概念

  • 最终目标:发现缺陷
    √     初期:预防缺陷(静态测试:文档审查)
    √     中期:发现缺陷、修复缺陷(静态测试:文档审查、代码审查、代码走查、静态分析<数据流分析、控制流分析、圈复杂度分析>;动态测试:白盒测试、黑盒测试)
    √     后期:建立信心

  • 基于用户需求

4、软件测试的原则

  • 追溯到需求

  • 尽早测试

  • good-enough(测试不能穷尽、测试有风险)

  • pareto 法则

  • 分阶段测试(适合公司内部项目)

  • 独立的第三方测试

  • 测试必须具有破坏性

  • 群集效应

  • 杀虫剂怪事(测试线性收敛)

  • 缺陷未必需要修复

  • 确认测试和回归测试

  • 测试迭代

  • 测试遵循标准

  • 思路决定测试

  • 具体问题具体分析

  • 无责任心不成测试

  • 测试不能猜测

5、软件测试的流程

(1)分析测试需求(测试人员)

  • 步骤
    √     收集并研读文档、问问题与解决问题、整理需求信息<场景描述>、功能拆分<大纲法>、编写测试点<场景法、等价类划分、边界值分析、决策表、错误推测等>、需求评审

  • 编写测试点的方法
    √     场景法:基本流和备选流(分析需求<流程>、写出基本流和备选流)
    √     等价类划分:分析需求、分出有效类和无效类、根据计算机知识和生活常识细分等价类
    √     边界值分析:分析需求(找出边界)、每个边界取 2 个值(小于最小、最小、最大、大于最大)
    √     决策表:分析需求、写出输入和输出的各种情况、组合输入的各种情况(做出判定表)
    √     错误推测:输入非法数据、输入默认值、输入特殊字符、输入合法数据的非法组合、强制粘贴、检查输出结果、检查多种输出、数据结构溢出、结果溢出、操作数和操作符不符、文件超载、文件权限、介质忙或不可用、介质损坏、破坏文件内容

  • 评审
    √     参加人员:项目经理、开发经理、测试经理、测试人员、开发人员、用户

(2)编写测试计划(负责人)

  • 内容
    √     规划测试工作、分配资源、安排任务、制定测试标准。。。

  • 评审
    √     参加人员:项目经理、开发经理、测试经理、用户

(3)编写测试用例(测试人员)

  • 根据测试点编写

  • 用例的元素或内容
    √     编号
    √     用例概述
    √     预置条件
    √     操作步骤
    √     输入数据
    √     预期结果
    √     设计者

  • 评审
    √     参加人员:测试人员
    √     内容:环境搭建的规划、设置用例优先级

(4)执行测试(测试人员)

  • 搭建测试环境
    √     安装服务器软件、客户端软件、缺陷管理工具、版本控制工具、自动化测试工具。。。

  • 执行测试用例
    √     按照用例执行
    √     随机测试
    √     探索性测试

  • 提交缺陷
    √     分离和再现
    √     提交缺陷到工具
           ✰     缺陷报告的内容
                         ▲     缺陷概述
                         ▲     预处理
                         ▲     复现步骤
                         ▲     预期结果
                         ▲     实际结果
                         ▲     严重程度
                         ▲     优先级
                         ▲     注释/截图
                         ▲     报告人
           ✰     缺陷处理流程:测试人员提交缺陷-负责人分配缺陷-开发人员修复缺陷-测试人员返测-测试负责人关闭缺陷
           ✰     缺陷的严重程度
                         ▲     致命缺陷、严重缺陷、普通缺陷、较小缺陷、意见或建议
           ✰     缺陷的优先级
                         ▲     立即修复、正常排队等待修复、方便时修复、下一版本修复、不修复
           ✰     缺陷状态
                         ▲     新建/已提交、打开/拒绝、已修复、已验证、关闭

(5)评估和总结(负责人)

  • 测试人员总结自己的经验教训

6、软件开发模型

  • 生命周期模型:大爆炸、边写边改、瀑布模型、螺旋模型、敏捷开发

  • 瀑布模型
    √     过程
           ✰     需求、计划、设计(系统设计、详细设计)、编码、测试、运行、维护
    √     优点
           ✰     完整的严格的步骤、详尽的文档、每一步审查、引入了测试
    √     缺点
           ✰     测试太晚了、测试的是代码、缺乏具体的测试过程

7、测试模型

  • V 模型
    √     过程:用户需求、系统设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试
    √     优点
           ✰     明确提出了测试的 4 阶段/级别、测试和开发阶段有对应关系
    √     缺点
           ✰     测试太晚了、测试的是代码、测试的过程是线性的

  • W 模型
    √     过程
           ✰     左边 V:需求分析、概要设计、详细设计、编码实现、模块集成、系统构建、系统安装
           ✰     右边 V:需求测试、概要设计测试、详细设计测试、单元测试、集成测试、系统测试、验收测试
    √     优点
           ✰     测试与开发并行、测试早做了、测试包括文档、测试贯穿整个软件生命周期
    √     缺点
           ✰     测试的过程是线性的

  • H 模型
    √     过程
           ✰     测试流程:测试准备、测试就绪点、测试执行
           ✰     并行的其它流程
    √     特点
           ✰     测试与开发完全独立
           ✰     测试有独立的流程
           ✰     测试可以迭代、反复、不同的测试可以并行

  • 敏捷测试模型
    √     没有一个过程/流程
    √     要点
           ✰     结对编程、协同测试、连续测试
           ✰     编码之前先写出单元测试用例、然后编码、完成编码后进行单元测试
           ✰     强调客户参与,客户进行验收测试

8、软件测试的级别/阶段

  • 单元测试
    √     测试技术
           ✰     黑盒、白盒
    √     测试重点/发现缺陷
           ✰     功能、性能、健壮性、运行时缺陷
    √     要求
           ✰     懂开发才能做
    √     一般一人测一个单元

  • 集成测试
    √     测试技术
           ✰     黑盒、白盒
    √     测试重点/发现缺陷
           ✰     接口
           ✰     交互
    √     要求
           ✰     懂开发才能做
    √     一般多人测试

  • 系统测试
    √     测试技术
           ✰     黑盒、灰盒
    √     测试重点/发现缺陷
           ✰     整个软件的功能、性能、界面、易用性。。。
    √     忽略缺陷
           ✰     需求错误理解
           ✰     隐性需求
    √     一般由测试人员进行

  • 验收测试
    √     测试技术
           ✰     黑盒(白盒等哪个测试阶段继续的验收)
    √     测试重点
           ✰     能否慢性用户的需求
    √     一般由用户或者委托给测试人员进行

9、非功能测试

  • 界面测试
    √     界面美观
    √     主要靠“看”
    √     一般可以与功能测试同时进行,如果不能同时,那就在功能测试之后

  • 易用性测试
    √     软件容易使用
    √     主要靠“用”、理解一些意思
    √     一般可以与功能测试同时进行,如果不能同时,那就在功能测试之后

  • 兼容性测试
    √     与硬件、平台(操作系统、服务器、分辨率)、其它软件(包括本身软件的不同版本、浏览器)、数据共享
    √     一般在功能测试之后

  • 文档测试
    √     简单的类似于“校对”
    √     更多的是根据文档中的描述去操作软件
    √     更多的是指 Readme/自述文档、联机帮助、用户手册等文档,一般在功能测试之后
    √     需求规格说明书、设计说明书等文档最好在测试早期进行(静态测试),早于功能测试

  • 安装测试
    √     包括安装、运行、卸载、加密测试
    √     可以早于、同时或晚于功能测试
    √     本地化和国际化测试
    √     语言翻译(字符)
    √     区域文化(风俗习惯、法律法规、度量衡。。。)

  • 性能测试
    √     时间
           ✰     快
    √     空间
           ✰     少占资源

10、专项测试

  • Web 测试
    √     功能
           ✰     链接
           ✰     Cookies
           ✰     设计语言
           ✰     文件上传
    √     性能
           ✰     链接速度
           ✰     负载测试
           ✰     压力测试
    √     安全性
           ✰     输入数据的安全性
           ✰     数据传输、存储要加密
           ✰     权限安全
    √     界面
           ✰     语法
           ✰     排版
           ✰     风格
    √     易用性
    √     兼容性
           ✰     浏览器
    √     数据库
           ✰     表结构
           ✰     索引
           ✰     存储过程
    √     文档

  • 手机 APP 测试
    √     手机品牌、型号
    √     操作系统类型、版本
    √     安装
    √     运行
    √     卸载
    √     安全
    √     兼容性
    √     网络信号
    √     交叉事件的测试

发布了132 篇原创文章 · 获赞 295 · 访问量 399万+

猜你喜欢

转载自blog.csdn.net/qq_41782425/article/details/103666405
今日推荐