题设:给定一个带通配符问号的数W,问号可以代表任意一个一位数字。再给定一个整数X,和W具有同样的长度。问有多少个整数符合W的形式并且比X大?其中输入格式:为多组数据,每组数据两行,第一行输入W,第二行输入X,它们长度相同,且在[1..10]之间。输出格式:每行一个整数表示结果。

 

测试如此需求描述,如何思考?如何分析?如何设计?如何测试?

测试过程的PDCA如何实现?测试个人能力的PDCA曲线如何完成?

以小见大,浅析软件测试过程。

 

需求描述是什么?

把复杂的问题简单化:比较两个数的大小。

用自己的语言描述问题:

1、输入多组W、X数据,第组数据两行,第一行W,第二行X

2、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张图片

 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

N/A

N/A

N/A

     

N/A

N/A

N/A

N/A

N/A

     

y:适用;N/A不适用

     

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—如何设计、执行、实现?(过程计划,问题和风险)