测试实践:
- 客户端测试(手工测试,自动化测试)
- web测试(手工测试,自动化测试)
- 服务端测试(更多的是关注性能测试,压力)
一.客户端测试:现在客户端越来越丰富,所以测试的内容也越来越多,越来越复杂,如今对测试的需求也是看越来越大
例子:计算器(单机版本,没有联网)
1.菜单,点击客户端界面的功能,测试功能点,对于不同人群可能有不同的需求,来测试不同的功能
二.web测试:
特点:所有的操作都在浏览器进行
例子:百度网站:
1.网站能不能打开,最基础的
2.根据所测试网站的功能来测试,百度的功能就是搜索,搜索最重要的就是准确定位(当然现在百度加上的广告就是有他自己的考虑)
3.搜索一个关键字:笔记本电脑(普通用户关注的是不同的电脑以及参数,不同的用户有不同的需求等)
作为测试工程师关注的是:
- 弹出网页的快慢
- 对于百度的竞价排名:在后台的测试工程师要考虑,排名是否是按照所给广告费高低从前往后排名的,第一个肯定是出价最高的,这是对应例如京东等用户的需求
例如淘宝,点击进去测试功能点
3.软件测试从需求开始:
软件测试经典的V模型:(左右对应,例如验收测设根据的是需求,类推)
左边:需求分析-概要设计-详细设计-编码(从上到下)
右边:验收测试-系统测试-集成测试-单元测设(从上到下)
开发人员自己做的:
需求分析-概要设计-详细设计-编码-单元测试-集成测试
(单元测试和集成测试开发人员做的多)
测试人员主要做的是系统测试:手工测试,自动化测试,性能测试,安全测试等
单元测试也可能有进行对核心代码自动化测试,性能测试等
验收测试和系统测试比较相似,但是测试的点没有系统测试多,主要加入了客户进行测试
则总结起来:测试工程师的工作:系统测试,部分的验收测试
4.测试工程师:最终关注用户需求
工作中可能会遇到的问题:
- 需求评审阶段我在,但是应该干什么:多提问,根据需求规格说明书多提问
- 不明白说的是什么,写不了测试用例
- 自己觉得是错的,但是开发的说没有问题
- 前后功能描述不一致
- 需求又变了,又得重新写
- 如果需求本身就是错的怎么办
答案:软件出现的问题很多时候就是需求阶段搞错了,需求非常重要
解决:站在用户的角度思考问题,前期的文档仔细阅读,看看同行的软件怎么做的,尽可能早的进行测试准备以及测试
5.级别:
- 普通测试工程师:按照需求点写测试用例
- 中级测试工程师:按照场景写测试用例
- 高级测试工程师:分析用户需求
6.软件测试的对象:
7.软件测试分类:
- 白盒测试:关注程序内部逻辑结构,即软件内部设计和程序实现;主要测试依据是设计文档(开发人员做的较多)
- 黑盒测试:关注软件功能,关心输入输出;主要测试依据是需求文档(通常由专门的测试工程师来做)
- 细分:
- 性能测试,自动化测试,安全测试在黑盒测试中用的较多,白盒测试也可用
- 单元测试在白盒测试中用的较多
- Alpha和Beta测试:实际上就是属于验收测试
- Alpha测试:是用户在开发环境下进行的测试(也可以是公司内部的用户在模拟实际操作环境下进行的测试)——这是在受控的环境下可进行的测试,目的:评价软件产品的FURPS(功能,可使用性,可靠性,性能和支持)
- Beta测试:用户在实际使用环境下进行的测试,与Alpha测试不同的是开发者一般不再现场——即在开发者无法控制的环境下进行的软件现场应用
- 测试理念:1.降低测试成本 2.用较低的代价实现有效的测试
- 提高测试效率:1.减少冗余的测试 2.减少无价值的测试
- 测试优先级:
- 软件的特色功能
- 用户最常用的功能
- 系统可以分块卖的话,销售时最昂贵的功能块
- 出错将导致用户不满或者索赔的功能
- 最复杂,最容易出错的程序
- 相对独立,应当提前测试的程序
- 最容易扩散错误的程序
- 全系统性能瓶颈所在程序
- 开发者最没有信心的程序(与开发者聊)
- 探索式测试:天马行空的测试,无限制(在上面测试之后)
- 软件测试关注重点:根据软件各种属性划分的测试重点:1.输入 2.状态(转换) 3.代码路径 4.用户数据 5.执行环境
- 合法输入和非法输入
- 明确知道
- 关注对非法输入程序的处理和反应
- 处理输入的三种方式:
-
-
-
- 输入筛选器 :作用:1.防止非法的输入值传递给程序 2.列表框,下拉框是常用的输入筛选器
- 测试输入筛选器的关注点:1.提供的输入选项本身是否正确 2.是否可以绕过筛选起的屏蔽二进入系统
- 例如:输入日期,地点的设计
-
-
4.使用输出来指导输入选择
5.状态:
6.用户数据:
7.运行环境: