《软件测试——Ron Patton》笔记
黑盒:静态:产品说明书测试(标准审查、 产品说明书审查、抠字眼)
动态:通过性测试和失效性测试:首先编写通过性测试,而后编写失效性测试(错误提示信息:可归为通过性测试或失效性测试)
数据测试: 边界条件 次边界条件 空值 默认 空白 零值 无 非法老技术局
状态测试:状态转换图、独立状态、状态转换所需的输入条件、进入或退出某种状态时的输出、测试不常用到的分支、测试所有错误状态及其
返回值、检查所有状态变量:如文档涂改标记,看不见但是得测试
失败状态测试:竞争条件(如前后台冲突)、时序错乱、重复(主要防止内存泄漏)、压迫(外部资源不够)和重负(最大限度挖掘,时间重压)
像无经验的用户操作
在已经找到软件缺陷的地方再次扩大范围测试
软件安全
静态白盒:代码审查、走查、检验
考虑编码标准和规范:可读性 可靠性 可移植性
代码审查:数据引用错误(未正确声明、初始化、引用内存分配)数据声明错误、计算错误、比较错误、控制流程、参数传递、输入输出、其他(语言、移植兼容性、编译警告等)
动态白盒(结构化测试): 直接测试底层函数、过程、子程序和库(API),从顶层测试软件,可从软件获得读取变量和状态信息的访问权,确定测试结果,估计测试中的代码量和具体代码调整测试
自底向上(测试驱动模块) 自顶向下(类似小规模的大爆炸,可采用桩(stub)代码填充测试)
数据覆盖 代码覆盖(代码覆盖率分析器):a、语句覆盖(或代码行覆盖,每个语句都被执行一次)b、分支覆盖c、条件覆盖(条件覆盖综合了语句覆盖和分支覆盖)
配置测试,兼容性测试(横向不同型号,纵向不同版本),易用性测试(残疾障碍人员测试),文档测试,本地化测试,安全性测试
例:网页测试
1、文本测试(检查术语、内容、题目素材拼写:电子邮件地址、联系方式、版权、标题栏标题(收藏时默认书签)文字标签(图片视频的替代文字)缩放浏览器检查文字布局(发现写死换行等问题))
2、超级链接 确保正确跳转,在正确窗口打开;鼠标经过超级链接变成手型指针 链接邮件打开可填写内容发送 搜索打开能填写内容搜索(字母汉字数字特殊字符 字数 空)
3、图片正确 图片正确载入和显示 图片文本环绕(缩放浏览器查看环绕) 图片过多的载入网页性能
4、表单是指网页中用于输入和选择信息的文本框、列表框和其他域。
表单测试 接收正确和错误数据 enter键确认
5、网页其他功能 如计算器 广告 搜索等
6、灰盒测试 html页面测试 动态内容 数据库驱动网页 服务器性能和加载 安全性
7、配置和兼容性测试:硬件平台浏览器软件和版本 浏览器插件选项分辨率和色深 文字大小
8、易用性测试:不停移动的元素、下载时间过长、非标准的链接颜色、孤页、导航支持、复杂的网站地址(URL)
自动化测试:
宏录制和回放:最基本的测试自动化类型是录制第一次执行测试用例时的键盘和鼠标操作,然后在需要重新执行这些测试时回放一次。
测试文档:
文档规定:测试项目——测试特性——测试负责人
测试用例:组织 重复性(回归测试) 跟踪(bug修复) 测试证实
标识符 测试项 输入 输出 环境 特殊过程操作 用例之间的依赖性 bug优先级
报告问题:
软件测试员的职责:尽快报告软件缺陷 有效描述软件缺陷(短小、单一、注意描述缺陷出现的环境(如android/IOS 版本 商户通/电销))
缺陷不一定会被修复:无足够时间 不算真正的软件缺陷 修复风险大 bug优先级低
线上回归时记得使用外网!!
分离和再线缺陷:记录再现过程中的每一步/ 查找时间依赖和竞争条件的问题,特定状态如第一次运行/边界条件缺陷,数据溢出等问题在软件重启后可能会消失/其他硬件通信
bug周期:open-fix-close/open-delay-reopen-fix-close 当与产品产生bug定义冲突,需注明产品确认不修复