一、软件测试基础
1、软件:
(1)软件的定义:
软件(程序、文档、数据)也是产品,做的是软件项目。
(2)软件的类型:
①纯软件产品(下载安装包即可使用的)
②软硬件结合的产品(智能家居,如小爱)
2、软件测试:
(1)软件测试的定义:
利用测试工具按照测试方案和测试流程对产品进行功能(最基本的测试,例如截图)和性能(速度:快不快、响应时间、资源占用率:卡不卡)测试。
根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
(2)软件测试的标准定义:
使用人工和自动手段来运行或者测试某个系统的过程,其目的在于检验它是否满足规定的需求或者弄清预期结果与实际结果之间的差别。(功能超出预期算bug、性能超出预期算惊喜)
(3)软件测试的目的:
测试软件是否正确实现了用户的需求(功能),并使系统达到用户可以接受的程度(性能)。
(4)软件测试的类型:
web测试(功能测试、性能测试、安全测试、自动化测试)
app测试(功能测试、自动化测试、接口测试、服务器性能测试)
云产品测试(功能测试、性能测试、自动化测试、可靠性测试)
游戏测试(功能测试、性能测试、自动化测试、接口测试、体验测试)
络软件测试(功能测试、性能测试、自动化测试)
络设备测试(功能测试、性能测试、自动化测试、安全测试)
3、测试人员职责:
尽可能早的发现软件缺陷,并确保其得以修复。
4、软件生命周期:
软件定义阶段:①计划——②需求分析
软件开发阶段:③设计——④编码——⑤测试
软件维护阶段:⑥运行、维护
①软件计划阶段工作内容【项目经理】:确定软件的功能/性能/可靠性以及接口等方面的设想并研究该项目的可行性及解决方案。对资源、成本、可取得的效益和开发进度作出评估并制定完成开发任务的实施计划。
③软件设计阶段工作内容【开发工程师】:设计是软件工程的技术核心,分为概要设计(HLD)以及详细设计(LLD)。
④编码阶段工作内容【开发工程师】:通过计算机编码语言把软件设计实现。
⑤测试阶段工作内容【测试工程师】:检验软件是否符合需求,达到质量要求,分为单元测试,集成测试,系统测试等。
⑥运行和维护阶段工作内容:当软件错误/软件升级,增加功能/提高性能等情况下便需要进行运行维护。
5、软件测试在软件开发中的作用:
项目规划阶段:负责整个测试阶段的监控
需求分析阶段:确定测试需求分析,制定系统测试计划。
概要设计和详细设计阶段:制定集成测试计划和单元测试计划。
编码阶段:开发相应的测试代码或测试脚本。
测试阶段:实施测试,并提交相应的测试 告。
6、软件缺陷产生原因:
编程错误、时间压力、设计、软件复杂程度、需求变更、缺乏沟通
7、测试用例:
(1)定义:
指对一特定的软件产品测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本的等,并形成规范文档。
(2)例子:
二、软件测试流程
1、流程图:
V模型流程图
W模型流程图
2、流程介绍:
①单元测试【研发】:
目的:
检测程序模块中有无故障存在
对象:
软件设计的最小单位,与程序设计和编码实现关系密切。
②集成测试(灰盒测试):
目的:
发现与接口有关的模块之间的问题。
方法:
a、非增式集成测试法
①对每一个模块进行单元测试
②按程序结构图将各模块连接起来,作为一个整体程序进行测试。
b、增式集成测试法
逐个把待测模块连接到已测模块集(或其子集)上,对待测模块进行测试,知道最后一个模块测试完毕。
③确认测试:
目的:
对软件产品进行评估以确定其是否满足软件需求的过程。
④系统测试:
目的:
针对系统中各个组成部分进行的综合性检验,证明系统的性能。
测试人员要求:
a、系统开发人员不能进行系统测试
b、系统开发组织不能负责系统测试
⑤验收测试【用户】:
目的:
客户方或者用户进行验收,表明软件系统符合用户期望。
三、质量管理体系
CMM(1-5)、CMMI(1-5)【大公司VS小公司】
软件质量模型(外部和内部质量):
(1)功能性:适合性、准确性、互操作性、保密安全性、功能性的依从性
(2)可靠性:成熟性、容错性、易恢复性、可靠性的依从性
(3)易用性(用户):易理解性、易学性、易操作性、吸引性、易用性的依从性
(4)效率(性能):时间特性、资源利用性、效率的依从性
(5)维护性:易分析性、易改变性、稳定性、易测试性、维护性的依从性
(6)可移植性(兼容性):适应性、易安装性、共存性、易替换性、可移植性的依从性
四、软件测试方法/策略
1、按程序(源代码)内部结构,分为:
②灰盒测试【集成测试】:介于白盒测试和黑盒测试之间的测试,最常见的就是集成测试
③黑盒测试【功能测试、不测代码】:不关心软件内部;只关心输入输出,主要测试依据是需求文档
2、按是否执行被测程序,分为:
①静态测试(测试文档和源代码):对软件进行分析、检查和测试时不实际运行被测试的程序
②动态测试:通过运行软件,来检验软件的动态行为和运行结果的正确性。
五、软件测试环境/工具
1、软件测试环境:
测试环境=硬件+软件+ 络+数据准备+测试工具
(1)硬件环境(主要是指PC机、笔记本电脑、服务器、各种PDA终端等。不同的机器类型,不同的机器配置,必然会导致不同的反应速度,因此测试软件时要考虑硬件配置):
①客户端环境/PC端:
机型:台式机、笔记本、一体机(不同的配置)
品牌:排行榜单前十
型 机型:搭载不同的硬件配置(CPU、处理器、主板、电源、显卡……)
②服务器端环境:
机型:top榜单前50-100
品牌:华为、OPPO 、vivo、小米、魅族、三星、(苹果)
建议京东查询服务器,查看参数及配置。构造一个数据。
(2)软件环境(主要是软件运行的操作系统。例如:WPS在Window 7下,或者Window 10下测试,可能会存在兼容性的问题):
①客户端:
a、PC端:
Windows:win xp、win vista、win 7、win 8、win 8.1、win 10(win 7和win 10为主测系统)
OSX(Mac):10.以上系统
Linux:Redhat、Ubuntu、centos、openSUSE等
b、移动端:
Android:Android5.0以上,最新10.
iOS:iOS9.0以上,最新13.
(3) 络环境(主要指C/S结构还是B/S结构。不同的 络类型,不同的传输速度,必然会导致不同的收发速度,因此测试软件时不能忽视 络的因素):
①PC端:
有线 和无线
a、有线 (LAN和WAN):考虑不同的宽带和速率
b、无线 (WiFi):考虑不同的加密方式、不加密vs加密
备注:LAN局域 (剩下的n个 口一样的)、WAN广域 (一个 口不一样的)。需考虑弱 和无 的情况。
②移动端
电信 络和无线
电信 络:
运营商:中国移动、中国联通、中国电信
络:2G、3G、4G、5G
络制式:WCDMA、TD-LTE
备注:需考虑 络切换,及弱 和无 的情况
(4)数据准备(主要指测试数据的准备。测试数据的准备应考虑数据量和真实性,包括正确和错误的数据。当无法取得真实数据时应尽可能模拟出大量的数据)
2、软件测试工具:
(1)概念:目前市场上的测试工具很多,可分为:静态测试工具、动态测试工具、黑盒测试工具、白盒测试工具、测试执行评估工具、测试管理工具等等。对测试工具的选择,应根据测试需求和实际条件来选择、购买或自行开发相应的测试工具。
(2)注意:搭建软件测试环境还应注意以下几点:
①尽量模拟用户真实使用环境
②测试环境不要安装与被测软件无关的其他软件
③最好安装杀毒软件,确保操作系统没有病毒
④测试环境应与开发环境独立搭建
(3)种类:
①白盒测试工具:对代码的测试
②黑盒测试工具:对功能和性能的测试
③测试管理工具:对测试计划、测试用例、测试实施进行管理
④其他测试工具:针对数据库的测试等
(4)常用工具列表:
Rational Administrator:用于创建新的Project,包括需求、测试及缺陷跟踪的数据库创建并建立关联
ClearQuest:变更管理及缺陷跟踪
TestManager: 测试计划制定及执行工具
Quantify: 白盒测试工具,用于性能瓶颈分析
Fiddler :抓包测试工具,用于Web接口测试
RequisitrPro :需求分析工具
Robot :自动测试工具,加上VT可以做并发测试
TestFactory :可靠性测试,非常耗时
BugFree: 缺陷管理及缺陷跟踪
LoadRunner: 性能测试工具
VMware Workstation :虚拟机服务器
六、软件测试文档
1、测试计划:指明范围、方法、资源以及相应测试活动的时间进度安排的文档。
2、测试方案:指明进行测试设计所使用具体测试技术的文档。
3、测试用例:指明为完成一个测试项的测试步骤、执行条件、预期结果等内容的文档。
4、测试 告:指明执行测试结果, 告软件质量的文档。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!