码迷,mamicode.com
首页 > 其他好文 > 详细

测试基础

时间:2019-12-11 17:36:33      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:软件安装   需求分析   迭代   gui   型号   集成   功能   分析   列表   

软件测试的目的

尽早介入发现bug,减少返工,降低成本;持续改进进程,帮助需求定义和设计;扩大市场;对产品质量进行全面评估,为产品发布、部署、鉴定、决策提供信息;预防缺陷

软件的生命周期

需求调研→需求分析→软件设计→程序编码→软件测试→上线→运行维护→下线

收集市场需求→确定软件开发的目标和可行性→设计软件系统,如系统框架、数据库→将软件设计的结果转换成计算机可运行的代码→测试发现软件中的bug→上线→解决产品使用过程中出现的问题→下线

项目组成员

产品经理;项目经理;设计人员;开发人员;测试人员;配置管理员;QA;运维技术支持

调研整理需求、建立产品;关联产品、建立项目;根据需求制定设计方案;使用计算机语言实现开发设计;测试软件是否满足需求;安装部署、负责上线;保证质量;解决产品实验过程中的问题

软件开发模型

瀑布型:每个环节结束才能开始下一环节,对每个环节的文档输出质量要求较高,强文档弱沟通

原型:提前跟客户确认,在需求分析阶段可以体现工作完成的样子,对原型图要求较高,对每个阶段文档输出要求较低

敏捷模型:以人为核心、迭代、循序渐进,不要求所有文档质量达到CMMI认证标准

螺旋模型:在瀑布型的每个开发阶段前分析风险

RUP模型:模型复杂,耦合度高

软件测试模型

V模型:[优]包括低层(验证源码的正确性)和高层测试(使系统满足用户需求);[缺]在编码阶段之后,不能体现尽早原则

W模型:[优]尽早提交测试文档以获得更多的检阅时间,尽早面对规格说明书的挑战,尽早找出缺陷,改进项目质量;[缺]需求变更,需停止测试

H模型:测试内容不只是执行测试,软件测试是个独立的过程,贯穿整个生命周期,有利于分工、降低成本、提高效率

X模型:定位了探索性测试,不用进行事先计划

前置模型:体现开发与测试相结合,在设计阶段进行测试计划和设计,让验收测试和技术测试独立

软件测试阶段

需求测试:检查《需求规格说明书 》SRS

单元测试:对软件基本组成单元进行测试、检测软件模块对《详细设计说明书 》LLD 的符合程度

集成测试:对单元之间以及第三方以及单元和第三方接口之间进行测试,检测软件模块对《概要设计说明书 》HLD 的符合程度        集成策略:渐增式:自底向上(从程序最底层的模块开始,通过开发一个驱动模块来调用并检测被调用模块)、自顶向下(从主程序开始,需要开发桩模块代替被调用模块)

系统测试:将已经集成好的软件系统作为基于计算机系统的元素,与软件、硬件、操作人员结合在一起,与《需求规格说明书》作比较,发现软件不符合需求的地方

确认测试:验证软件的功能、性能、其他特性 是否符合用户需求

验收测试:以用户为主,由项目组成员、用户代表或系统其他利益相关者,根据合同、《需求规格说明书》、《验收测试计划》验收产品

α测试和β测试:α测试由公司内部人员模拟用户对即将上市的产品进行测试;β测试由用户在一个或多个场所进行测试,准备向全体用户发布最终产品

UAT测试:用户接受度测试,验证系统的可用性

回归测试:修改完bug后进行的测试    目的:验证缺陷得到了正确的修复,同时对系统的变更对以前的功能没影响    策略:选择重复测试、完全重复测试

冒烟测试:在软件正式测试前进行功能的基本测试    目的:确认软件基本功能正常,可以进行后续的正式测试

软件测试类型

功能测试:验证系统是否能正常使用并满足需求

性能测试:包含以下:


负载测试:系统所能承受的最大用户数

压力测试:系统所能承受的最大负载,在高负载情况下能否稳定工作

容量测试:面向数据,使系统承受超额的数据容量来发现它能否正确处理确定的数据容量

稳定性测试:系统长时间运行的稳定性和性能相关指标是否符合需求


安全性测试:验证产品是否符合安全需求定义和产品质量标准的过程(系统的登录、用户管理、防火墙、系统数据、web安全、数据库安全、内部通信协议)

GUI测试:图形用户界面,采用图形方式显示的计算机操作用户界面

可用性测试:又叫易用性测试,包括过分复杂的功能或指令、困难的安装过程……(总结:对用户不方便)

安装卸载测试:根据软件测试特性列表、软件安装、软件卸载、配置文档、设计安装过程、设计卸载过程的测试用例,发现软件在安装过程中的问题

异常测试:通过人工手段使系统产生软、硬件异常,验证系统异常前后的功能和运行状态,达到检验系统的容错、排错和恢复能力

文档测试:检验用户文档的完整性、正确性、一致性,包括用户手册、使用说明、用户帮助文档

网络测试:在网络环境下和其他设备对接,进行功能、性能等方面的测试

兼容性测试:软件本身的兼容性(历史版本的数据、功能),不同平台的兼容性(Linux的很多版本),软件对运行设备的兼容性(Android多个型号),软件和设备其他软件的兼容性(软件和微信)

 

软件测试流程

产物:计划、方案、用例、缺陷报告

从需求介入,参与需求评审,确定测试需求,制定测试计划,设计测试方案,执行测试用例,bug跟踪管理,测试报告

测试计划阶段:测试计划(包含 测试范围、测试时间、参与人员、使用工具等,由测试经理写)

测试设计阶段:测试方案(包含 怎么执行测试工作、测试过程用到哪些测试工具)

测试实现阶段:测试用例

测试执行阶段:缺陷报告、测试报告(包含 测试结果文档)

软件测试方法

黑盒测试:只考虑整体特性,不考虑内部具体实现,主要测试功能

白盒测试:利用被测对象的内部具体实现信息    实现方法:静态分析:(代码检查法、静态结构分析法、静态质量度量法)  动态分析:(逻辑覆盖法:语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖、路径覆盖;基本路径测试法:由程序源代码作为基础导出控制流图)

灰盒测试:既利用被测对象的整体特性,又利用被测对象的内部具体实现信息,是黑盒测试和白盒测试的综合

静态测试:不运行被测系统,采用其他手段检测被测软件,考虑程序是否满足编码规则、语法是否一致完整,考虑文档(需求文档、设计文档)描述是否规范、准确,考虑程序和文档之间的一致性

动态测试:按照设计好的数据和步骤运行被测系统

人工测试:测试活动(评审、测试设计、测试执行)由人工完成

自动化测试:通过计算机模拟人的测试行为        意义:运行新版本的前一版本进行测试(提高回归测试效率),可以运行更多更频繁的测试(冒烟测试),执行手工测试完成困难或不可能完成的测试(大并发测试),更好利用资源

软件质量

QA:quality assure 质量保证

QC:quality control 质量控制

QM:quality manage 质量管理

软件测试与QA区别

性质:测试  技术,QA  管理

对象:测试  软件研发产品,QA  软件整个过程

手段:测试  事后检查,QA  预防缺陷

测试基础

标签:软件安装   需求分析   迭代   gui   型号   集成   功能   分析   列表   

原文地址:https://www.cnblogs.com/ff3288688799/p/12023133.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!