基于代码开发过程的软件测试分析
2016-07-10 18:39
543 查看
题设:给定一个带通配符问号的数W,问号可以代表任意一个一位数字。再给定一个整数X,和W具有同样的长度。问有多少个整数符合W的形式并且比X大?其中输入格式:为多组数据,每组数据两行,第一行输入W,第二行输入X,它们长度相同,且在[1..10]之间。输出格式:每行一个整数表示结果。
测试如此需求描述,如何思考?如何分析?如何设计?如何测试?测试需求的PDCA过程如何实现?测试个人能力的PDCA曲线如何完成?以小见大,浅析软件测试过程。 需求描述是什么?把复杂的问题简单化:比较两个数的大小。 用自己的语言描述问题: 1、输入多组W、X数据,第组数据两行,第一行W,第二行X2、W、X两个位数相同(10位以内)的整数3、W带有通配符:? 4、输出W>X的个数,每行一个整数结果
有问题吗?1、W中的通配符“?”个数有限制吗? 2、控制台的命令行行式实现?还是图形化界面?3、……(更多的问题)
测试过程实现测试分析1、核心问题是什么? 比较输入数据的大小 -- 如何将复杂的问题简单化?如何抓住对象问题的核心?2、开发实现猜想(构建自己的原型) 1)命令行:输入数据-->逻辑处理-->输出结果 2)图形化:界面设计-->输入数据-->逻辑处理-->输出结果 3)逻辑处理:按位比较大小并判断个数? 4)面向过程?面向对像? 3、哪里会出错? 1)数据与数据交互模块:输入、输出(可以统通为接口:内部或外部) 2)数据逻辑处理模块 4、为什么会出错? 1)数据格式处理异常 2)核心逻辑处理缺陷 5、会出什么样的问题 1)直接问题:输出结果不正确 2)间接问题:问题处理的效率 6、测试分析输出 1)需求核心描述 2)需求限定条件 3)假想问题列表 测试设计1、测试的优先级 1)核心逻辑处理 2)处理过程限定 3)最终实现形式 2、逻辑处理(测试假想)
1)判断W输入的正确性、有效性 -- 1 2)判断X输入的正确性、有效性 -- 1 3)比较W和X:>、=、<(大于、等于、小于) -- 2 4)输出最终结果 3、测试方法 1)黑盒测试:输入数据,查看结果 2)白盒测试:核心逻辑,处理效率 3)灰盒测试:经常用到的,集成了白盒与黑盒测试的特点,增加测试覆盖率,提高测试效率和效果4、测试数据描述 方法:等价类、边界值......
5、完善测试设计(测试设计评审过程) 1)发现差异:开发者与实现者的沟通,发现理想与现实的差异 2)充实设计:发现差异,充实测试设计,弥补测试设计缺陷6、测试设计输出 1)测试计划:明确描述测试实现的6W1H 2)测试用例 测试实现1、测试执行 1)执行测试设计输出,记录测试过程 2)提交问题、跟踪问题、验证问题修改 3)验证并实现测试目标 2、测试总结与回顾 1)需求分析理解 2)测试设计盲点 3)测试效果满意度:测试目标达成度、干系人满意度 测试不是简单的点点鼠标、敲敲键盘,需要不断的总结、思考才能成长与进步。测试是门艺术,测试是个过程,测试是门科学。 注: 1、PDCA:
1)P (plan) 计划,确认方针和目标,制定方法和规则。
2)D (Do) 执行,根据计划,执行计划,实现计划目标。
3)C (check) 检查,分析和总结计划执行的结果,确认效果,发现问题,明析问题。
4)A (action) 处理,问题的改进与处理,标准化先进成果,更正和改进不足,提出下轮PDCA循环。
2、6W1H:
1)Who—责任人?
2)For whom—干系人?(关键人、合作者)
3)Why—对像的详尽描述?(需求的分析、理解)
4)What—目标是什么? (时间、成本、范围、质量)
5)Where—从哪里来到哪里去,环境如何?
6)When—关键时间限制?(关键节点时间计划)
7)How—如何设计、执行、实现?(过程计划,问题和风险)
测试如此需求描述,如何思考?如何分析?如何设计?如何测试?测试需求的PDCA过程如何实现?测试个人能力的PDCA曲线如何完成?以小见大,浅析软件测试过程。 需求描述是什么?把复杂的问题简单化:比较两个数的大小。 用自己的语言描述问题: 1、输入多组W、X数据,第组数据两行,第一行W,第二行X2、W、X两个位数相同(10位以内)的整数3、W带有通配符:? 4、输出W>X的个数,每行一个整数结果
有问题吗?1、W中的通配符“?”个数有限制吗? 2、控制台的命令行行式实现?还是图形化界面?3、……(更多的问题)
测试过程实现测试分析1、核心问题是什么? 比较输入数据的大小 -- 如何将复杂的问题简单化?如何抓住对象问题的核心?2、开发实现猜想(构建自己的原型) 1)命令行:输入数据-->逻辑处理-->输出结果 2)图形化:界面设计-->输入数据-->逻辑处理-->输出结果 3)逻辑处理:按位比较大小并判断个数? 4)面向过程?面向对像? 3、哪里会出错? 1)数据与数据交互模块:输入、输出(可以统通为接口:内部或外部) 2)数据逻辑处理模块 4、为什么会出错? 1)数据格式处理异常 2)核心逻辑处理缺陷 5、会出什么样的问题 1)直接问题:输出结果不正确 2)间接问题:问题处理的效率 6、测试分析输出 1)需求核心描述 2)需求限定条件 3)假想问题列表 测试设计1、测试的优先级 1)核心逻辑处理 2)处理过程限定 3)最终实现形式 2、逻辑处理(测试假想)
1)判断W输入的正确性、有效性 -- 1 2)判断X输入的正确性、有效性 -- 1 3)比较W和X:>、=、<(大于、等于、小于) -- 2 4)输出最终结果 3、测试方法 1)黑盒测试:输入数据,查看结果 2)白盒测试:核心逻辑,处理效率 3)灰盒测试:经常用到的,集成了白盒与黑盒测试的特点,增加测试覆盖率,提高测试效率和效果4、测试数据描述 方法:等价类、边界值......
全是数字 | 全是“?” | 不全为“?” | 第1位 | 数字、?、其它字符组合 | 数字取值范围 | 0~9999999999 | ||||
第1位是? | 第1位不是? | 0 | 非0 | 每位取值范围 | 0~9 | |||||
W | N/A | y | y | y | N/A | y | N/A | |||
X | y | N/A | N/A | N/A | N/A | y | N/A | |||
y:适用;N/A不适用 |
1)P (plan) 计划,确认方针和目标,制定方法和规则。
2)D (Do) 执行,根据计划,执行计划,实现计划目标。
3)C (check) 检查,分析和总结计划执行的结果,确认效果,发现问题,明析问题。
4)A (action) 处理,问题的改进与处理,标准化先进成果,更正和改进不足,提出下轮PDCA循环。
2、6W1H:
1)Who—责任人?
2)For whom—干系人?(关键人、合作者)
3)Why—对像的详尽描述?(需求的分析、理解)
4)What—目标是什么? (时间、成本、范围、质量)
5)Where—从哪里来到哪里去,环境如何?
6)When—关键时间限制?(关键节点时间计划)
7)How—如何设计、执行、实现?(过程计划,问题和风险)
相关文章推荐
- PHP中静态(static)调用非静态方法详解
- PHP引用(&)使用详解
- elipse和editplus的快捷键
- PHP引用(&)初探:函数的引用返回
- PHP的大括号(花括号{})使用详解
- Android WIFI Debug AndroidStudio/Eclipse无需Root无线调试
- spring声明式事务总结
- spring,mybatis事务
- PHP与MYSQL学习笔记--基础篇1
- 1107. Social Clusters (30)
- Notepad++下Python的自动补全
- 新浪微博XSS攻击源代码下载(2012.06.28_sina_XSS.txt)
- 简单工厂模式
- Java面向对象总结(16.7.10)
- PHP正则表达式详解(二)
- java中Arrays类中,binarySearch()方法的返回值问题
- 编码和Python的bytearray , bytes
- springmvc+hibernate泛型抽取基础Dao与Service
- C++ 判断一幅图片中的两个矩形区域是否邻近
- ThreadPoolExecutor详解-FixedThreadPool