进阶篇

  • 1.按照测试对象划分
    • 1.1界面测试(UI测试)
    • 1.2可靠性测试
    • 1.3容错性测试
    • 1.4文档测试
    • 1.5兼容性测试
    • 1.6易用性(用户体验测试)
      • (1)符合标准和规范
      • (2)直观性
      • (3)灵活性
      • (4)舒适性
      • (5)实用性
    • 1.7安装卸载的测试
    • 1.8安全测试
    • 1.9性能测试
    • 1.10内存泄漏(可积累错误)
    • 1.11界面常见错误
  • 2.按照是否查看代码划分
    • 2.1黑盒测试
    • 2.2白盒测试
    • 2.3灰盒测试
  • 3.按照开发阶段划分(软件测试V模型)
    • 3.1单元测试
    • 3.2集成测试
    • 3.3系统测试
    • 3.4验收测试
  • 4.按照实施组织区划分
    • 4.1 α测试
    • 4.2 β测试
    • 4.3 第三方
  • 5 按照是否运行划分
    • 5.1 静态测试
    • 5.2 动态测试
  • 6.按照是否手工划分
    • 6.1手工测试
    • 6.2 自动化测试
  • 7.按地域划分
JUNIT 是JAVA测试框架

测试技能图

1.按照测试对象划分

1.1界面测试(UI测试)

定义:界面直接和用户交互,界面设计的好坏决定了用户使用软件的直观感受。

作用
保证界面和UI设计稿一致性,正确性。
测试界面每一个功能的正确性(从上到下,从左到右)
界面布局排版合理(字体大小、是否斜体、图片布局排版、清晰程度…)
界面控件功能是否正常(滚动条、按钮、文本框…)
要进行界面的不同分辨率的测试

同一个web页面的不同页面大小下测试:
页面从小到大变化过程中衔接丝滑,让用户可接受;
页面的字体不模糊不消失,不重影;
页面的图片不消失,排版布局合理;
页面的功能可以正常使用;

1.2可靠性测试

可靠性=正常运行时间/(正常运行时间+非正常运行时间)

一般软件可靠性要求99.9%,一年时间,软件出现故障的时间为52min;
特殊软件,比如军事系统99.999%,一年时间,软件出现故障的时间为5min;
非实时软件 邮件系统,可靠性比较低。

如何进行软件的可靠性测试?
让软件运行一段时间,统计其正常运行时间和非正常运行时间然后使用公式计算。
软件自身和软件所部署的环境(硬件,软件系统,网络等)有问题导致软件无法正常运行,都属于软件非正常运行的时间。
软件可靠性影响因素:软件本身,外界因素(电,网络,硬件设备,软件系统等)

如果是因为硬件系统原因发生故障使软件发生故障,这个时间是否计算到软件可靠性?
算。

1.3容错性测试

什么是容错性:因为自身或外部的一些异常操作使系统发生异常,系统能够自我处理这种错误操作或异常的能力。


数据级别:人民币0.09,25时30分,5月32日

校验级别:输入账号6~16位,最多输入16位,17位就输入不进;
        大小写校验,空格校验,前后信息一致校验
        查询信息前后空格自动过滤
       
界面级别:一些复杂的操作或危险性较高的操作会给用户提示信息;
        危险的按钮直接屏蔽或者禁用;
       
环境级别:断电断网,硬件设备出问题,是否可以无缝切换(用户无感知)到备用服务器;

灾难恢复性测试:人为让系统发生故障,测试系统能够很快恢复稳定能力,数据恢复的能力,不丢失用户信息

1.4文档测试

定义:整个开发过程中产生的各种文档,需求文档,设计文档,功能文档,用户使用手册进行测试
文档的正确性,一致性,专业术语,完整性。
文档和软件功能对比

1.5兼容性测试

平台的兼容性(APP:不同系统IOS/Android,不同品牌手机,不同系统版本;web网页:各种浏览器,操作系统的兼容性;)

软件本身兼容性:软件对本身功能前后的兼容性,比如开发的新功能不能影响老功能,也不能影响后续功能的开发。

软件对用户数据的兼容性:比如数据库中某一张表增加字段,不能影响用户之前的数据存储;

软件对第三方软件的兼容性:不影响其他软件的使用,如果和第三方软件有交互,数据要有兼容。

1.6易用性(用户体验测试)

(1)符合标准和规范

严重错误(红色)
警告(黄色)
提示

(2)直观性

让用户直接看到自己的操作,或者预期的结果

(3)灵活性

定义:用户根据自己的习惯选择适合自己的操作方式。
手机键盘:九宫格、手写、26键,五笔等
灵活性==复杂性,两者之间弄一个平衡点。

(4)舒适性

定义:让用户对自己进行的操作有感知,不产生焦虑情绪

安装一个软件:进度条

(5)实用性

1.7安装卸载的测试

能正常使用不同的方式进行安装和卸载(应用APP,命令行,软件包,第三方助手)
软件可以正常安装和卸载
软件更新
安装软件时断网断电,死机等异常情况下,软件的响应
安装软件内存不足是否有提示
卸载软件暂停、是否可以继续卸载
卸载软件到一半,取消卸载,看软件是否可以正常使用
卸载过程中异常情况的测试(断网断电,死机等)
卸载后软件的数据文件是否清理干净

1.8安全测试

安全是指信息安全,指网络和系统保护用户的数据、隐私不被侵犯和泄露。
防病毒,防黑客攻击
SQL注入、
防爬虫

1.9性能测试

检查系统是否满足需求规格说明书中规定的性能。
通常表现在以下几个方面:
内存泄漏
资源瓶颈
系统运行速度越来越慢(TPS,HTTP,吞吐量,响应时间)
系统运行受外界影响越来越大
死锁
查询,加载信息速度很慢

1.10内存泄漏(可积累错误)

内存泄漏会导致系统运行越来越慢

导致原因:

  1. 内存分配后,忘记回收
  2. API函数使用不正确,无法回收
  3. 内存分配方式有问题,无法回收

1.11界面常见错误

不合适的快捷键:快捷键要用键盘可以打出来
文字丢失
文字的截断(就是显示不清楚,有遮挡)
没有对齐
文字自动换行
文字重叠
重复的快捷键

2.按照是否查看代码划分

2.1黑盒测试

定义:黑盒测试不关心软件内部代码的实现,不关心代码的逻辑结构(相当于代码这一部分是看不见的),只关心输入输出是否符合预期

好处

  1. 不用看代码(不懂代码的人也可以进行测试)
  2. 黑盒测试测试系统的功能,站在用户的角度去使用功能,有利于培养用户思维–产品经理
  3. 黑盒测试的测试用例是按照需求设计的,不容易遗漏需求。
    用例方法
    等价类,边界值,场景法,因果图,错误猜测法,正交法

2.2白盒测试

定义:针对代码进行的测试分析和测试代码的逻辑和结构,实现的功能,看是否符合用户的需求。

用例方法
语句覆盖,路径覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖,判定和条件组合覆盖

2.3灰盒测试

介于白盒测试和黑盒测试之间

3.按照开发阶段划分(软件测试V模型)

3.1单元测试

针对软件组成最小的单元模块进行测试(类,方法)

测试阶段:编码前(TDD),编码后
测试对象:组成软件的最小单元模块
测试方法:白盒测试
测试人员:白盒测试工程师或开发人员
测试依据:详细设计文档(软件测试V模型)
测试内容:模块的接口,局部数据的测试,边界测试,异常测试,路径测试

**编码前(TDD):**测试驱动开发,测试人员先写测试代码,空跑代码,开发人员依据异常写代码,直到测试用例代码通过

3.2集成测试

按照一定的策略把单元模块组合起来形成一个大的功能模块对这个功能进行的测试叫做集成测试

测试阶段:单元测试后
测试对象:集成模块
测试方法:灰盒测试
测试人员:黑盒测试工程师或开发人员
测试依据:概要设计文档(V模型)
测试内容:整个模块功能的正确性,单元模块之间接口的正确性,全局数据结构测试,单个模块的缺陷对整个功能模块的影响,模块之间功能的冲突

3.3系统测试

当软件开发完成,系统的全面的对软件的功能进行测试

测试阶段:集成测试后
测试对象:整个系统
测试方法:黑盒测试
测试人员:黑盒测试工程师
测试依据:需求设计文档
测试内容:系统的功能,界面,易用性,可靠性,容错性,可移植性,安全性,兼容性,性能,安装和卸载
  回归测试:当系统引入新的代码的时候要查看新的代码是否影响了旧的功能(修改BUG,更新,自动化)
  冒烟测试:正式测试之前,对软件系统的基本流程和核心功能进行测试,如果测试通过,才同意正式测试   准入原则

回归测试和冒烟测试属于系统测试

3.4验收测试

软件上线前的最后一道测试,由用户和产品经理发起

测试阶段:系统测试后
测试对象:整个系统
测试方法:黑盒测试
测试人员:用户/产品方
测试依据:用户需求  V模型
测试内容:系统的功能,界面,易用性,可靠性,容错性,可移植性,安全性,兼容性,性能(包含一些文档,用户使用手册,功能测试文档)

4.按照实施组织区划分

4.1 α测试

定义:让用户或除了开发和测试人员以外的公司内部人员到开发现场去进行测试。
测试环境:开发环境

α测试先于β测试之前

4.2 β测试

定义:实际用户在实际使用环境下进行测试,不限时间,不限地点

α测试和β测试区别:测试环境不同;时间集中程度不一样;α测试先于β测试之前

4.3 第三方

第三方软件测评机构对软件进行测试,使用业界的规范和标准进行测试

5 按照是否运行划分

5.1 静态测试

不运行代码,分析代码的风格,是否符合公司的标准规范,分析代码的结构、逻辑、算法方法的实现是否符合用户的需求;
只能看代码

5.2 动态测试

运行代码,执行测试用例进行测试。

6.按照是否手工划分

6.1手工测试

手工执行测试用例,查看测试结果

缺点:量大容易出错,测试效率比较低
优点:不可替代的,无法被自动化测试代替,手工测试的过程人为可控,有利于做探索性实验

6.2 自动化测试

机器按照预先设定好的条件去执行测试,这些条件包括正常和异常的方面。

预先设定好的条件:自动化测试脚本(UI自动化,接口自动化,性能自动化)

不是所有的项目都适合自动化。

哪些项目不适合自动化测试?
自动化的价值和意义:节省人力
自动化脚本运行运用率越高,越有价值。
自动化不适合于项目不稳定,功能频繁变动的项目

7.按地域划分

软件国际化:开发软件的时候使用了一种工程技术,使得软件在适用不同国家的语言,风俗使用情况的时候不用去改变软件的源码就可以做到。(软件国际化测试,软件本地化测试)
例:
Windows操作系统,苹果手机

软件测试进阶(黑白盒测试)相关推荐

  1. 软件测试 -- 进阶 1 软件测试思想

    思维决定行为,行为决定结果. -- 培根<习惯论> 软件测试 -- 入门,阐述了软件测试是什么以及所关联的基础知识,让初识者对软件测试有一个初步认知.形成软件测试基础知识框架. 软件测试 ...

  2. 软件测试实验4白盒测试,软件测试实验报告白盒测试

    <软件测试实验报告白盒测试>由会员分享,可在线阅读,更多相关<软件测试实验报告白盒测试(8页珍藏版)>请在人人文库网上搜索. 1.软件测试与质量课程实验报告实验3:白盒测试姓名 ...

  3. 软件测试中的白盒测试分析

    伴随着软件测试技术的迅速发展,白盒和黑盒测试在测试行业中运用的越来越多.白盒测试相对于黑盒测试在很多地方是不同的,白盒趋向于对软件结构和代码进行测试,可以设计出测试用例. 可靠的软件白盒测试工程师可以 ...

  4. 软件测试 -- 进阶 8 软件测试流程和过程

    盖天下之事,不难于立法,而难于法之必行:不难于听言,而难于言之必效.-- 明 · 张居正     释译:天下大事,困难的不在于要制定什么法律,而在于立了法就一定要执行:重要的不在于说什么,而在于说之后 ...

  5. for循环软件测试,软件测试3.9白盒测试_循环测试

    <软件测试3.9白盒测试_循环测试>由会员分享,可在线阅读,更多相关<软件测试3.9白盒测试_循环测试(10页珍藏版)>请在人人文库网上搜索. 1.白盒测试,循环测试,循环测试 ...

  6. 软件测试进阶之路_心得体会

    PS:由于读这本书的时候感触很深,因此想对自己这段时间的工作做一个小小的总结以及在自己经常看到的地方立下FLAG来督促自己的持续学习与进步(向测试开发工程师努力) 本文中引用了一部分<软件测试进 ...

  7. 学习日志之software engineering(14)——黑白盒测试

    V&V过程要处理的对象是Failure,Fault和Defect Failure是由一个或多个Fault引起的,其结果是用户运行程序得到的结果不理想. Fault可能会引起Failure但是也 ...

  8. linux操作系统测试面试题,软件测试进阶面试题之Linux基础

    随着移动互联网的发展,软件测试求职者越来越多,针对根据市场需求,本文整理了一些关于Linux基础的软件测试进阶面试题,希望能够帮助学生和软件测试程序员提升面试能力. 1.如何查看 CPU 信息? /p ...

  9. 『软件测试5』测开岗只要求会黑白盒测试?NO!还要学会性能测试!

    浅谈软件测试中的性能测试 一.

最新文章

  1. php+redis+两种驱动,redis的php驱动两种方式
  2. NAACL19笔记:自然语言处理应用的实用理解(多图解链接)
  3. 小马智行L4无人车今日量产下线,这比融资更具里程碑意义
  4. pythonif语句缩进_Python中多行IF语句缩进的代码样式?
  5. OpenCV Laplacian算子
  6. 0宽字符加密_使用 Go 语言实现凯撒加密
  7. php实现多进程、多线程
  8. java——HashMap的实现原理,自己实现简单的HashMap
  9. 2010.8.12 CString最大可以多大?
  10. 菜鸟,下一代分布式体系架构的设计理念
  11. Codevs2157 配对
  12. 解决:building 'twisted.test.raiser' extension安装scrapy报错
  13. 海美迪盒子android升级包,海美迪H5固件升级ROM系统刷机包下载_刷机教程
  14. 如何做好手机APP测试?APP测试流程及解决方案
  15. 计算机桌面通过网络在拼接屏上显示,拼接屏与电脑之间的连接方法
  16. Linux 内存管理 | 连续分配方式 和 离散分配方式
  17. 水溶性CdTe/CdSe/ZnS量子点 深紫外发光光谱PL620nm-820nm
  18. U-Net论文阅读(逐句翻译+精读)
  19. 危化品柜颜色如何区分?
  20. 数据结构系列笔记——图

热门文章

  1. 单因子模型到多因子模型
  2. 普通路由器与网关NAT路由器的区别
  3. JavaScript 变量声明详解: var, let, const
  4. HDFS常用命令hdfs dfs
  5. 360 safe.php,防止网站被黑,增强网站安全文件:360_safe3.php-防SQL注入代码
  6. 【Javascript】【注意事项】script标签不能自闭合
  7. linux 亚马逊服务器排查当前时间相差8小时及解决方案
  8. 资料搜集-JAVA系统的梳理知识9-高级计算机网络
  9. 《动手搭建智能家居系统》——2.5 遥控设备
  10. 入侵检测系统 Intrusion detection system