软件测试知识点梳理

善于总结或许是对知识积累和理解最好的途径了,阴差阳错的入了测试的行,就想着一心的去做好自己选择的路。
先从测试的概念和基本方法来整理,可以大致的梳理一下思维导图:
软件测试知识点梳理_第1张图片

那接着就详细的做一下说明:


测试原则

测试有五大要素和两个目标:
软件测试知识点梳理_第2张图片

之前就听说过一句话:“软件测试不能测试你是对的,但可以验证你是没有错的”,所以采用有限的成本,资源,人力去尽大可能的验证一个软件或是说一个产品的合理性和准确性。


测试手段

1、 黑盒测试:将软件看成一个黑盒子,内部代码对于测试人员是不可见的,着重于根据可见的功能对输入输出的进行测试;
软件测试知识点梳理_第3张图片
主要设计方法:
软件测试知识点梳理_第4张图片

优点 缺点
易实施 覆盖率低
更贴近用户 复用率低,成本高

关注点:
1、是否有不正确或者遗漏的功能;
2、在接口上,输入输出对应是否准确;
3、是否有数据结构错误和外部信息错误;
4、性能上是否满足需求;


2、白盒测试:程序的设计对于测试人员是可见的,主要是针对于程序的逻辑结构进行测试,主要的逻辑单位包括有:语句、条件、条件组合、分支、路径。

优点 缺点
测试人员可以更好的理解程序原理 成本高
可以检测到每条分支和路径 无法验证遗漏功能和数据结构
可以检查出代码中的错误 不能验证需求

主要的测试方法:
1、代码检测法;
2、静态结构分析法;
3、静态质量度量法;
4、逻辑覆盖法;
5、基本路径测试法;


测试的手段还有:
灰盒测试:结合黑盒测试和白盒测试,对代码和功能同时进行检测。
静态测试:顾名思义,测试无需执行程序,通过评审软件文档或代码进行测试。
动态测试:通过动态运行程序,对程序的运行效率、准确性和健壮性进行测试。
手工测试:从用户视角,进行深度测试和主观判断测试,主流的手工测试包括:众包测试和探索式测试。手工测试易于发现缺陷,而且容易实施,且具备很大的创造性和灵活性。
自动化测试:使用工具对程序进行批量测试,主要方法包括单元测试、接口测试、性能测试等,由于是使用第三方工具进行检测,所以具备高速高效高复用的优点,同时覆盖率可以做到很高,准确率高,较为可靠。


测试模式

常见的传统的测试模式有瀑布模式、V模型、W模型、X模型、H模型,其中X模型支持迭代,不断对新版本进行重复性测试。

敏捷测试(Agile Test):顾名思义,打破传统测试模式的输出依赖前一阶段输入的模式,代表敏捷测试精神的敏捷宣言可以概括为:
*个体和交互 重于 过程和工具
可用的软件 重于 完备的文档
客户协作 重于 合同谈判
响应变化 重于 遵循计划*

基于脚本的测试–SBT(Script-based Testing):
SBT是基于脚本的测试,要依赖于测试用例进行测试,同时与ET(Exploratory Testing)进行交替使用。

SBT ET
系统性强,容易管理和控制 自由灵活,与ST互补
设计在先,执行在后 设计与执行并行
验证自己的思路,可预见性 与系统不断交互,容易发现新的缺陷

探索式测试覆盖率不高,通常是对某一模块或者流程分支进行局部探索式测试
检测的方向主要有以下五个:

1、输入:包括接收输入的内容、顺序,产生输出,接收数据,进行运算;
2、状态:有临时状态(运行时有效,阶段有效等)和永久状态(数据库保存,文件保存等);
3、代码路径:主要是对代码进行覆盖,主要采用白盒测试方法进行测试;
4、用户数据:采用真实的用户数据,对系统进行测试,采集真实的反馈结果;
5、执行环境:主要包括程序使用的操作系统、系统组网的网络拓扑结构,系统的配置参数,运行时的硬件设备等;

基于风险的测试–RBT(Risk-based Testing)

主要是对于质量风险(功能缺失、数据转化)的管理,辅助于风险管理相关文档,其中风险级别=风险可能性*风险严重度;


测试类型

功能测试:对功能进行测试。

主要可以从以下几个方面入手:
1、功能错误和遗漏;
2、界面问题;
3、性能错误;
4、数据及访问错误;
5、初始化及终止错误;

管理工具:
商用的主要有:QTP winrunner、SilkTest、Rational robot;
开源的:selenium、watir、Sikuli;

性能测试:对程序性能进行检测,包括程序的健壮性,稳定性,正确性等,主要的性能测试包括负载测试、压力测试、稳定性测试等。

性能指标可以从以下几个方面进行参考:
1、并发用户数(VU);
2、每秒事务数(TPS);
3、系统响应时间;
4、设备性能;

工具
LoadRunner、Silkperformer、Jmeter、WebLoad、Apache Bench、LoadUI

静态性能评估标准:主流的是网站性能工具YSlow,是Yahoo公司发布的基于特定标准对网站页面进行分析,并对网站进行A-F的评级。

应用性能管理:APM(Application Performation Management)可以对软件进行实时监控、性能管理、故障管理。

PS:性能测试工程师对于技术要求比较全面,同时需求量会比较大,之后小姐姐会陆续更新关于性能测试以及性能测试工具使用的博客,希望小朋友们可以持续关注。

安全测试:与之相对应的是渗透测试(模拟对软件系统的恶意攻击行为)

- 安全测试 渗透测试
测试方法
测试范围
难易程度

安全测试标准:OWASP(Open Web Application Security Project)
OWASP被视为web应用安全领域的权威参考,每年会公布全球十大安全漏洞OWASP Top 10作为参考和警示标准。
安全测试工具

名称 作用范围
Appscan web项目
Webinspect web项目
Nessus 服务器,主机类
Nmap 扫描主机,查看开放端口
MetaSploit 测试框架
WebScarab 基于代理截持
Fortify 白盒测试,基于源码进行静态分析
W3AF web扫描,开源的

兼容性测试

主要从以下四个方面进行分析:
1、软件本身的兼容性;
2、不同平台下的兼容性;
3、软件对于硬件设备的兼容性;
4、软件的互操作性;

文档测试

对于文档的完整性、正确性、一致性、易理解性、易浏览性、可靠性(软硬件)进行测试。

本地化测试:自身认为是最为人性化的测试之一了
内容主要包括以下几个方面:软件测试知识点梳理_第5张图片

部署测试

包括在不同的网络拓扑结构下,在不同软硬件环境中的测试,还有一些特殊情况包括网络中断,存储空间不足的一些自动化处理,需要一些基础数据的准备。


其他测试分类

回归测试:对测试结果进行迭代,防止新的bug被引入,一般采用自动化方式在关键模块进行。

Monkey测试:搞怪测试,最为著名的是安卓公司的随机触发测试。

A/B测试:为页面的某些功能提供两个版本,最终产品将采用用户点击多的模式进行发布。主要的工具有Google Analytics Content Experiments、Visual WebSite Optimizer.

你可能感兴趣的:(软件测试知识点梳理)