软考-第9个小时-web应用测试
整体一句话:这张图是 Web 网站当年主流的搭建技术分类,考试就考定义、特点,不用深挖开发。 一共 6 块:
1. 静态页面 vs 动态页面
- 静态页面(HTML) 页面写死了,所有人打开看到一模一样的内容,服务器直接把写好的 html 文件发给你,不会根据你是谁、输入了什么改变内容。 例子:介绍公司简介的页面,不管谁打开文字图片都不变。
特点:没有数据库查询,加载快
- 动态页面 会根据访问的人、输入的内容,返回不一样的页面。 例子:登录后看 “我的订单”,A 用户看到 A 的订单,B 用户看到 B 的;搜索商品,输入不同关键词出来不同结果。
特点:要跑程序、查数据库
✅ 考试一句话区分:静态所有人看一样;动态因人而异。
2. 网络开发技术
列出老牌网页开发语言:HTML、ASP、ColdFusion、PERL、JSP
- HTML:做静态页面
- ASP、JSP、ColdFusion、Perl:用来写动态网页(现在很多已经淘汰,教材是老版本,只需要认名字)
JSP 就是 J2EE 体系里的网页技术,后面会和 J2EE 串起来
3. CGI(通用网关接口)
CGI 是一套老的协议规范:让 Web 服务器(比如 Apache)可以调用后端程序。 简单理解:浏览器发请求给 web 服务器,服务器通过 CGI 去启动一个程序处理请求(查数据库、计算),再把结果返回网页。 书上写的两种交互方式(背这个): ① Linux/UNIX 系统:靠标准输入输出传递数据 ② Windows 系统:靠 profile 配置文件传递数据
小考点:CGI 不是语言,是接口规范。
4. J2EE(Java EE)
Java 的企业级 Web 开发平台(咱们前面学的 WebLogic、WebSphere 中间件,就是跑 J2EE 程序的!对上了!) 作用:给企业系统提供能力:数据库存取、事务完整性、消息传递。 适合银行、电商这种重要业务,要求交易不能出错。
对应之前中间件:WebLogic/WebSphere 就是 J2EE 应用服务器
5. .NET
微软的一套开发平台 核心是以 Web Service 为核心,配套三个协议:SOAP、UDDI、WSDL
- SOAP:消息传输协议
- WSDL:用来描述这个 web 服务有哪些接口、怎么调用
- UDDI:早期用来查找 Web 服务的注册库(现在很少用,只考试记名字)
6. Web Service
一种跨系统调用的技术,不同语言、不同平台的系统之间互相传数据。 规定:用 XML 格式传递消息 举例子:A 系统是 Java 写的,B 系统是.NET 写的,互相不通;用 Web Service,XML 当中间语言,就能互相调用接口、交换数据。
📌 串联前面的知识点(非常关键)
J2EE 程序 → 部署在 WebLogic / WebSphere 中间件上,然后我们去做负载压力测试,监控中间件线程池、JVM 内存。这条链路就连起来了。
✅ 极简背诵版(做题用)
- 静态页面:内容固定,所有人访问相同;动态页面,按需生成,内容因人而异
- 开发语言:HTML、ASP、JSP、Perl 等
- CGI:网关接口,打通 web 服务器和后端程序
- J2EE:Java 企业平台,支持数据库、事务、消息;运行在 WebLogic/WebSphere
- .NET:微软平台,基于 Web Service,SOAP/WSDL/UDDI
- Web Service:跨平台接口,XML 传输消息
❓高频考题坑
❌ 误区:JSP = 静态页面 → 错,JSP 属于动态
❌ 误区:CGI 是编程语言 → 错,CGI 是接口规范
❌ 误区:Web Service 是一种编程语言 → 错,是一种通信调用技术
Web 系统测试策略(4 大分类,软考背诵版,大白话拆解,和你前面学的串起来)
总览:Web 测试从4 个不同角度划分,不是 4 套独立测试,只是分类视角不一样!
一、按系统架构(按整个 Web 链路位置划分)
Web 链路:用户电脑(客户端) ↔ 网络 ↔ 后端服务器
- 客户端的测试:就是浏览器这边 测浏览器兼容、页面展示、JS 脚本、Cookie、页面渲染、表单输入(咱们之前说的兼容测试就在这里)
- 服务器端的测试:中间件、业务程序、数据库这一侧 性能压测、接口、服务逻辑、线程池、数据库缓冲区(你之前学的负载压力、WebLogic 监控都属于这一块)
- 网络上的测试:网络链路 带宽、延迟、丢包、弱网、WAN 仿真(压测里的网络模拟)
一句话:用户那头、网线、服务器那头
二、按职能(按后端提供的不同服务模块划分)
- 应用功能的测试:业务功能,登录、下单、查询、提交表单
- Web 应用服务的测试:Web 服务本身,Web Service、中间件服务、接口调用
- 安全系统的测试:注入、XSS、越权、HTTPS、权限
- 数据库服务的测试:数据增删改查、事务、缓存缓冲区、数据一致性
三、按软件的质量特性(这个是最常考!)
就是 Web 测试五大类,你上一小时刚学过:
- 功能测试:功能对不对
- 性能测试:负载、压力、并发、响应时间、吞吐量(重点!)
- 安全性测试
- 兼容性测试
- 易用性测试:页面导航、提示、操作体验
✅ 考试简答高频:Web 质量特性就是这 5 条
四、按照开发阶段(跟着开发流程走)
- 设计的测试:需求、页面设计、架构设计评审(还没写代码)
- 编码的测试:写代码阶段,单元测试、代码检查
- 系统的测试:全部开发完成,整套系统联调测试(我们做的压测、功能大测都在这里)
Web 应用设计的测试分类(大白话讲解,软考背诵版)
注意:这是【设计阶段的测试】(还没写代码,审方案、图纸、架构文档,对应上一张图里:按开发阶段 → 设计的测试) 一共三大块:总体架构设计测试、客户端设计测试、服务器端设计测试
1. 总体架构设计的测试(看整套大框架合不合理)
检查 3 点:
- 瘦客户端 / 胖客户端选型合不合适
- 瘦客户端:就是浏览器(网页,不用装 APP),大部分 Web 网站都是
- 胖客户端:要单独安装客户端软件(桌面程序)
- Web 架构各个组成部分能不能满足业务需求(Nginx、中间件、数据库集群这些组件搭配)
- 服务器怎么分配、部署分布(几台应用服务器、数据库是否主从)是否满足需求
👉 一句话:整套系统搭什么架构、机器怎么布,合不合适
2. 客户端设计的测试(浏览器侧页面、导航、功能方案评审)
分三块:功能设置、信息组织结构、页面设计
- 功能设置 规划要提供哪些服务:信息查询服务、办公自动化、互联网访问支持等,看规划的功能是不是符合需求
- 信息组织结构设计(网站导航结构,高频考点) 三种结构:
- 线性结构:一页看完再下一页,像看书,顺序不能乱
- 分层结构(树形):首页→一级菜单→二级页面,绝大多数网站都是这个
- 非线性结构:自由跳转,类似超链接,随便点到处逛
- 页面设计 检查:页面风格统一、界面友好;兼容多种浏览器;文件命名规范;页面布局合理 👉 这里就对应之前的兼容性测试、易用性测试的前期设计审查
3. 服务器端设计的测试(后端服务方案)
三点:
- 容量规划的测试 预估并发、访问量,看服务器的承载规划够不够(和负载压力测试挂钩:提前设计阶段就要想好未来能扛多少用户)
- 安全系统设计的测试 安全方案评审:权限、防注入、加密、HTTPS、防火墙策略等安全设计
- 数据库设计的测试 表结构、字段、索引、主外键、事务设计、缓存方案是否合理(就是咱们之前数据库资源监控那部分的前置设计检查)
✅ 背诵精简版(简答直接写)
Web 应用设计的测试分为:
- 总体架构设计测试:检查胖 / 瘦客户端选型、Web 架构组成、服务器部署方案
- 客户端设计测试:功能设置、信息组织结构(线性、分层、非线性)、页面设计(一致性、浏览器兼容、布局)
- 服务器端设计测试:容量规划、安全系统设计、数据库设计测试
Web 应用开发测试方法(图 9-5,大白话 + 背诵版)
定位:这是编码阶段的测试(对应上一张大图:按开发阶段 → 编码的测试,写代码的时候做的测试,单元、代码检查) 分成三大类:代码测试、组件测试、JUnit 单元测试
1. 代码测试(原理:基于规则检查)
就是扫网页源码、页面元素,检查页面基础元素,一共 5 项:
- 源代码规则分析 按预先定好的编码规范检查 HTML、前端代码,看写法有没有违规。
- 链接测试(高频考点) 检查三件事: ① 链接跳转的目标是不是文档规定的页面 ② 链接指向的页面是不是存在(有没有死链、404) ③ 网站不要出现孤立页面:就是没有任何链接能点进去的页面
- 框架测试(frame 框架,老网页技术) 检查三点: ① 能不能跟着浏览器窗口缩放自动适配大小 ② 内容太长时,有没有滚动条 ③ 新页面是否在指定的框架里面打开
- 表格测试 检查网页里表格布局、单元格展示,边框、对齐、自适应是否正常
- 图形测试 图片:图片能不能正常加载、alt 提示文字、图片大小、排版位置
2. 组件测试
测 Web 里面各种交互组件、后端脚本组件,一共 6 个: ① 表单 Forms 测试:输入框、提交按钮、校验(必填、特殊字符) ② Cookies 测试:Cookie 能不能正常写入、读取、过期删除、会话保持 ③ 脚本测试:JS 脚本,逻辑是否正常,会不会报错 ④ CGI 测试:前面学的 CGI 网关程序 ⑤ ASP 测试:ASP 动态页面脚本 ⑥ ActiveX 控件测试:早年浏览器插件控件(老技术,认识名字就行)
3. JUnit 单元测试
Java 语言的单元测试框架(J2EE 体系配套),对后端 Java 代码的单个方法、模块做单元测试。
前面学的 J2EE、WebLogic 中间件跑 Java 程序,单元测试就用 JUnit。
✅ 精简背诵版(简答直接默写)
Web 应用开发测试分为:
- 代码测试(基于规则检查):源代码规则分析、链接测试、框架测试、表格测试、图形测试;
- 组件测试:表单、Cookie、脚本、CGI、ASP、ActiveX 控件测试;
- JUnit 单元测试:Java 代码单元测试。
📌 串联前面的时序(非常重要,理顺整套流程)
Web 测试全流程顺序:
- 设计阶段测试(上一张图:架构、客户端页面、服务器设计评审)
- 编码阶段测试(本图:代码测试、组件测试、JUnit 单元测试)
- 编码完成后,进入系统测试(9-3 那张图:功能、性能、安全、兼容、易用,包含我们的负载压力测试)
📌 易混区分
- 设计测试:还没写代码,审方案
- 开发(编码)测试:代码写完一部分,查源码、链接、组件、单元
- 系统测试:全部拼好,整体测(压测就在这里)
Web 应用运行测试(图 9-6,背诵版,大白话讲解)
重点:运行测试 = 系统联调完成之后,上线前整套 Web 系统跑起来之后的测试,也就是【系统测试阶段】,就是咱们前面一直在学的一大块!一共 5 大类,刚好对应质量特性那 5 项。
1. 功能测试
分为链接质量保证、Web 功能测试技术 步骤:创建测试脚本、插入检查点、运行测试、分析结果 测业务能不能正常走通,链接、表单、流程是否正确。
2. 易用性测试
三点:
- 界面测试:布局、导航、提示文字、排版
- 辅助功能测试:比如无障碍、帮助说明、错误提示
- 图形测试:图片展示、图标、样式统一
3. 负载压力测试(核心!你花很久学的就是这个)
书上给的标准步骤,考试简答直接背: ① 确定交易执行响应时间 ② 估算系统最大并发用户数 ③ 模拟用户,从小负载逐步加压,加到系统扛不住 ④ 优化 Web 程序
和之前负载压力实施步骤是一套内容,这里是放在 Web 运行测试里的性能部分
4. 客户端配置与兼容性测试
- 浏览器的配置测试:浏览器缓存、Cookie、插件配置不同会不会影响页面
- 平台兼容性测试:Windows/macOS 等操作系统
- 浏览器兼容性测试:Chrome、Edge、Firefox 等不同浏览器
5. 安全性测试(两大块)
(1)安全测试体系 覆盖点:部署架构、输入验证、身份验证、授权、会话管理、敏感数据加密、参数篡改、日志审计等 测试场景:注册登录、在线超时、操作留痕、备份恢复
(2)应用及传输安全
- 应用安全测试:HTTPS/SSL 证书测试、服务器脚本漏洞检查、防火墙测试
- 传输安全测试:数据在网络传输过程会不会被窃听、篡改(SSL 就是之前学的)
✅ 极简默写版(简答题)
Web 应用运行测试包含:
- 功能测试:链接质量、业务功能验证;
- 易用性测试:界面、辅助功能、图形测试;
- 负载压力测试:逐步加压,测响应时间、最大并发承载能力;
- 客户端配置与兼容性测试:浏览器配置、平台、浏览器兼容;
- 安全性测试:安全体系测试、应用及传输安全测试(HTTPS、漏洞、防火墙)。
浙公网安备 33010602011771号