WEB_B/S结构两个开发模型测试版本

目的:后面测试基础理论抽象概念,准备示例

      Web知识,中间件,数据库

      功能测试 自动化 性能测试

 

模式1:全生命周期的迭代过程

WEB_B/S结构两个开发模型测试版本

登录模块的开发过程 指定计划 风险分析 实施工程 客户评估 阶段

注册模块的开发过程 指定计划 风险分析 实施工程 客户评估 阶段

 

程序版本1.0:登录模块

  1. 用户需求 用户故事story

文字用语 生活化 不专业 口语 可能混乱

“弄一个登录模块的软件, 利用软件, 跟测试人员解释 数据库 中间件 web 关系。利用模块 静态测试 手工 自动化 性能测试”

 

  1. 开发人员 读懂 用户需求,编写 XXX软件需求规格说明书

文字用语 专业

开发人员分析用户原始需求story,提炼需求要点,转成 需求规格说明书

 

软件需要的功能模块:登录模块

                    B/S结构 java

  • 只完成了 功能性的描述)

 

    开发上面文字登录模块功能表达,和 客户 理解 一致?

静态界面原型(未成型之前,提前 客户 先了解软件界面)

     登录静态界面原型.html (只有基本外观 没有具体功能实现)

 

    测试:静态测试 不需要运行软件

          对找检查列表 查看 需求规格说明书文档编写 和 原型 是否满足用户需求

          对找检查列表 查看 文档编写:bug 比如 没加入 非功能性的描述

          登录静态界面原型.html :多次最终用户沟通

            如果 修改 文字 或 原型界面;项目;消耗的成本 改代码 低

 

          测试人员(尽早和不断进行软件测试) 评审开发编写需求文档(黑盒 静态测试)

 

  1. 开发人员 概要设计文档:总体设计: 需求规定,运行环境,基本设计概念,系统结构等总体设计的内容

WEB_B/S结构两个开发模型测试版本

  采用环境  jdk  sql server tomcat 实现登录

 

  测试:静态测试 不需要运行软件

        对概要设计文档进行评审

        最终用户不参与

  但是,测试人员 编写 针对登录模块 测试需求,测试计划 ,测试用例文档(测试准备)

 

 

4. 开发人员  项目详细文档:说明 一个软件 各个层次,以及 每一个 程序 每一个 模块 每一个页面的内容:

 

Web项目工程: 编码框架选择 MVC模式

 

     View 视图层

        Index.html  显示登录页面

        登录错误.html

        登录成功页面.html

 

     controller 控制层

         处理登录请求和响应的java servlet文件

 

      model 模型层

         处理数据库建立连接的java 文件

         处理对数据库进行 登录查询  java文件

 

     测试:静态测试 不需要运行软件

           对详细设计文档进行评审

           最终用户不参与

  但是,测试人员 编写 针对登录模块 测试需求,测试计划 ,测试用例文档(测试准备)

 

       数据库的设计 文档(数据字典)

           需要那些表,表里面哪些字段,类型

           多个表之间联系

 

  1. 具体编码

针对 登录模块代码 编码方式 (自顶向下)

步骤1:View 视图层 登录页面进行编码 HTML

        代码 作用:对登录页面,用户名和密码输入

                 :登录成功或失败 时需要显示的内容页面

 

步骤2:controller 控制层; 登录页面form action 指向的后台代码内容 java

         代码 作用:接受从 登录页面 传递过来的数据

                    在吧数据 传递给 数据库服务器

                    再接受数据库的查询结果

                    最后 将 结果 传递给 视图层 用户查看

 

步骤3:model 模型层 进行数据库的链接 和 查询语句的传递 java + sql

       代码 作用:数据库的链接 用户名和密码, 端口 ip等

                  查询语句

 

 

测试:v1.0 版本 登录模块 进行 功能测试

再前面编码过程中,测试人员 编写下面的 登录 功能 测试用例,测试准备阶段

当编码发布完成,达到 测试就绪点; 执行测试

 

黑盒测试 动态测试

 

1. 用户存在    fei   123456        

2. 用户不存在  some 123456

每一个用例代表对软件的一次执行操作,包括需要的数据和必要的步骤

 

当前 手工执行

 

Bug 1. 非功能质量特性,易用性,易操作,默认焦点的位置

       onload="document.getElementById('bb').focus()"

修改完bug后,进行 重新测试 回归测试

 

    修改bug,提高软件质量,后续编写 注册模块,避免相似bug

 

 

 

程序版本2.0:登录模块 集成 注册模块

  1. 用户需求 用户故事story(提交 登录模块版本后, 第二次沟通, 获得用户 描述 注册模块的 原始需求)

文字用语 生活化 不专业 口语 可能混乱

“第二个故事, 和 注册有关的, 快点 ,内容少”

 

2.  开发人员 读懂 用户需求,编写 XXX软件需求规格说明书

文字用语 专业

开发人员分析用户原始需求story,提炼需求要点,转成 需求规格说明书

   

前面 的规格说明书 基础上继续 编写 继续完善;

可能:增加 性能方面的要求

      增加 易用性方面的要求

      {遗漏: 对用户名输入数据 基本格式要求:必填  最长10个字符  数字和字母 }

[需求规格书文档,一致不断的编写,所有的原始都满足]

 

和登录相似,注册 静态界面原型.html

 

测试:静态测试 不需要运行软件

          对找检查列表 查看 需求规格说明书文档编写 和 原型 是否满足用户需求

          对找检查列表 查看 文档编写:bug 比如 没加入 非功能性的描述

          注册静态界面原型.html :多次最终用户沟通

            如果 修改 文字 或 原型界面;项目;消耗的成本 改代码 低

 

          测试人员(尽早和不断进行软件测试) 评审开发编写需求文档(黑盒 静态测试)

 

  1.  开发人员 概要设计文档:总体设计: 需求规定,运行环境,基本设计概念,系统结构等总体设计的内容

WEB_B/S结构两个开发模型测试版本

  采用环境  jdk  sql server tomcat 实现登录

 

  测试:静态测试 不需要运行软件

        对概要设计文档进行评审

        最终用户不参与

  但是,测试人员 编写 针对登录模块 测试需求,测试计划 ,测试用例文档(测试准备)

 

 

5  开发人员  项目详细文档:说明 一个软件 各个层次,以及 每一个 程序 每一个 模块 每一个页面的内容:

 

Web项目工程: 编码框架选择 MVC模式

 

     View 视图层

        Index.html  显示登录页面

        登录错误.html

        登录成功页面.html

        注册页面.html

        注册失败.html

 

     controller 控制层

         处理登录请求和响应的java servlet文件

         处理注册请求和响应的java servlet文件

 

      model 模型层

         处理数据库建立连接的java 文件

         处理对数据库进行 登录查询  注册插入  java文件

 

     测试:静态测试 不需要运行软件

           对详细设计文档进行评审

           最终用户不参与

  但是,测试人员 编写 针对登录模块 测试需求,测试计划 ,测试用例文档(测试准备)

 

       数据库的设计 文档(数据字典)

           需要那些表,表里面哪些字段,类型

           多个表之间联系

 

 

  1. 具体编码

针对 注册模块代码 编码方式 (自底向上)

步骤1:model 模型层 进行数据库的链接 和 查询语句的传递 java + sql

       代码 作用:数据库的链接 用户名和密码, 端口 ip等

                  查询语句

 

 

步骤2:controller 控制层; 注册页面form action 指向的后台代码内容 java

         代码 作用:接受从注册页面 传递过来的数据

                    在吧数据 传递给 数据库服务器

                    再接受数据库的查询结果

                    最后 将 结果 传递给 视图层 用户查看

 

步骤3:View 视图层 注册页面进行编码 HTML

        代码 作用:对注册页面,用户名和密码输入

                 :注册成功或失败 时需要显示的内容页面

 

测试:v2.0 版本 注册模块 进行 功能测试

设计 验证 模拟 用户使用软件 注册 各种情况 – 文档化  - 用例

 

2-1黑盒动态测试

 

注册模块  新用户合法用户  fei001 111111 用例1  优先级高 跑通

注册模块  非法用户        fei  111111  用例2  优先级低  bug跑通

注册模块  默认输入焦点的位置:用户名  用例3  优先级低 跑通

注册模块  用户名输入框    为空    用例4 能够成功 违反需求 bug

注册模块  用户名输入框    长度11  用例5 能够成功 违反需求 bug

注册模块  用户名输入框    数字和中文 用例6 能够成功(实现登录)

       : 某些页面采用编码格式gb2312   某些页面采用编码格式 utf-8

       : 错误页面 重新登录 提交没有乱码; 欢迎 登录页面 提交有乱码

 

注意:新增注册模块,原来 登录模块,公用一个数据库表,2个相关模块

一个模块的变化 增加,另外相关模块产生影响

回归测试 原来 登录模块用例

1. 用户存在    fei   123456    跑通    

2. 用户不存在  some 123456  跑通

 

  

【新增代码后,原有的代码,不小心修改】

WEB_B/S结构两个开发模型测试版本

表示:请求的web资源 在服务器 找不到

服务器:loginError.htm ;请求的是loginError.html

 

 

开发:v2.0 版本 修改 1. 编码问题

                修改 2. 对注册 登录 表单进行  js + 正则进行 格式校验

V2.2  再次将 上述 8个用例 进行 重新回归测试

 

 

 

2-2白盒静态测试 工具扫描 checkStyle

 

  集成测试过程: 黑盒白盒(动态) + 白盒测试(静态) = 灰盒测试

 

 

 

模式2:只是进行 需求部分的 敏捷

   模型 1 2 : 强调 迭代   强调 与用户的沟通   强调拥抱变化  弱化文档  - 敏捷宣言

   敏捷开发 – 实现方式 - 可持续的集成

 

  1. 用户需求 用户 第一个 故事story 获得 原始 登录需求

2.  开发人员 读懂 用户需求,编写 XXX软件需求规格说明书 界面原型的设计

针对 第一个 故事  原始 登录需求

 

  1. 用户需求 用户 第二个 故事story 获得 原始 注册需求

2.  补充  XXX软件需求规格说明书 界面原型的设计

 

 

只进行 需求部分的 敏捷 持续集成 迭代

 

 

3. 开发完成内容:

进行后续的 整体概要设计 详细设计 编码实现

在编码的过程中,A 程序员 开发 登录

                B 程序员 开发 注册

 

3. 测试完成内容:

开发的过程中,同时,测试人员:基于 需求规格说明书 编写  登录 注册  黑盒动态测试用例

哪个模块 先开发完成 , 先进行 哪个模块的 测试 (H模型)

 

 

 

登录模块为例:自动化功能测试 自动化性能测试

自动化功能:反复 人工执行 动作

            动作行为 – 》 自动化脚本

            e.g v1.0 ~ v2.0 需要反复执行登录测试用例

            前提: 手工 进行 登录操作 是否有bug

 

Selenium 自动化工具

 

QTP 自动化工具

WEB_B/S结构两个开发模型测试版本

 

登录接口定义

接口地址:http://192.168.1.228:8080/somePro_v1/LoginServlet

提交方式:post

数据格式:

字段

说明

备注

username

用户名

默认 fei

pwd

密码

默认 123456

 

响应结果:

包含“登录成功”字符串

 

没有图形化页面或界面,测试接口功能是否正确?

使用第三方工具 伪造发送请求,开发的接口是否符合定义文档的要求

发送的数据:1用例 合法

            2 用例 非法

WEB_B/S结构两个开发模型测试版本

?对于服务器web项目工程代码,不能准确判断,请求的来源 真实用户还是虚拟用户

 

LR 自动化性能测试工具

进行了功能的验证后,没有问题后

登录模块 时间响应 

JUnit 后面的时间 包括 客户端呈现时间 + 服务器处理响应时间

LR 关注:服务器处理响应时间 (工具加压过程中,没有客户端动作)

 

VuGen 虚拟用户产生器:录制 捕获 优化 获得 单用户进行登录的请求脚本

WEB_B/S结构两个开发模型测试版本

 

Controller *控制器: 性能测试场景 设计 和 运行 ; 多用户

WEB_B/S结构两个开发模型测试版本

Analysis 只是提供 文字 和 图表报告。-》人工 进行 结果分析

WEB_B/S结构两个开发模型测试版本