测试基础知识总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录:
第一章、软件工程学
第二章、软件测试基础
第三章、基于生命周期软件测试
第四章、软件测试分类与分级
第五章、软件缺陷管理(*)常见缺陷状态说明(*)第六章、软件测试过程及管理(*)测试计划(*)第七章、软件静态测试
第八章、动态测试
第一章、软件工程学
1.软件的定义:软件由数据:该程序能够具体满意地处理信息的数据结构程序:当运行
时,能够提供所要求功能和性能的指令或计算机程序集合;文档:描述程序功能需求以及程序如何操作和使用文档。
2.软件危机的产生:软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需
求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
3.软件危机的原因1)需求不明确2)缺乏正确的理论指导3)软件开发规模越来越大4)
软件开发复杂度越来越高
4.消除软件危机的办法对计算机软件有一个正确的认识(软件≠程序)充分认识到软件
开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目推广使用在实践中总结出来的开发软件成功技术和方法开发和使用更好的软件工具
5.软件工程
方法
项目计划与估算需求分析数据结构总体设计编码、测试与维护等
工具
软件工具软件支撑环境计算机辅助软件工程(CASE)等
过程
方法使用的顺序需交付的文档变更管理里程碑管理等
软件生命周期(*)SRS:计划,分析,设计,编码,测试,运行和维护。
软件生命周期模型(*)
瀑布模型:
V模型强调软件开发的协作和速度,将软件实现和验证有机地结合起来,在保证较高的软件质量情况下缩短开发周期。
迭代模型:
4.1
敏捷开发的定义是一种以用户的需求进化为核心、迭代、循序渐进的开发方法。
敏捷开发的特点:变强调软件开发对未来可能出现的变化和不确定性做出全面反应早总体目标是尽可能早地、持续地对有价值软件的交付
快主要是用于需求模糊或快速变化的前提下,小型开发团队的软件开发活动
软件开发主流技术
主机终端模式
文件服务器模式
C/S模式客户/服务器模式
胖客户/瘦服务器
QQ、微信、王者荣耀
B/S模式浏览器/服务器模式
瘦客户/胖服务器
Web QQ、洛克王国
第二章、软件测试基础
(一共有三个)现代定义:是对软件需求分析、设计、编码的最终复查的一系列过程,是软件质量保证的关键步骤
目的:1.发现缺陷,提高质量2.验证是否满足需求3.建立软件质量的信心
3.测试的7个原则:1.测试显示缺陷存在2.穷尽测试是不可能的3.测试尽早介入
4.缺陷集群性
5.杀虫剂悖论
6.测试活动依赖于测试背景
7.没有失效不代表系统是可用的
缺陷的原因1.人本身容易犯错误2.时间的压力3.复杂的外部系统4.技术的革新5.复杂的代码6.复杂的系统架构
软件测试工作是验证软件系统是否满足软件用户的需求
测试流程
工具
商业化的测试工具:
●测试管理工具: HP ALM/QC
●自动化测试工具: HP UFT(QTP & Service Test)
●性能测试工具: HP Loadrunner
●安全测试工具: HP Fortify、WebInspect
开源测试工具:
●Testlink、禅道、Mantis、BugZilla、selenium、Jemeter、
JUnit、CppUnit
认识误区
1.软件开发完成后进行软件测试
2.软件发布后如果发现质量问题,那是软件测试人员的错
3.软件测试是软件开发的对头
4.软件测试是没有前途的工作,只有程序员才是软件高手
5.期望用测试自动化代替大部分人工劳动
6.认为软件测试文档不重要
第三章、基于生命周期软件测试
生命周期测试方法意味着测试与软件开发平行
生命周期测试应伴随整个软件开发周期,此时测试的对象不仅仅是程
序,需求、功能和设计同样要测试
软件开发的所有阶段进行测试,被设计用来减少测试成本
测试与开发同步进行,有利于尽早地发现问题,同时缩短项目的开发
建设周期
2、软件生命周期的六个阶段:
①需求:(需求阶段测试很重要)
验证和确认需求说明书、制定测试计划
测试需求、组织团队、测试计划
②设计:(包括概要设计和详细设计)
验证和确认设计文档、模型等,测试设计及评审
测试方案、测试案例等
③编程:代码、评审、搭建环境、单元测试
测试案例及缺陷等
④测试:执行测试、缺陷管理
缺陷报告和测试报告
⑤安装:安装测试、确认产品
安装程序、安装文档、用户手册等
⑥维护:培训、维护、变更管理、测试
维护手册、测试报告等
第四章、软件测试分类与分级
软件测试分类:一般分类
是否关心内部结构
白盒测试、黑盒测试、灰盒测试
开发过程级别
单元测试、集成测试、系统测试、验收测试
是否执行程序
静态测试、动态测试
执行过程是否需要人工干预
手工测试、自动化测试
测试实施组织
开发测试、用户测试、第三方测试
软件配置缩写为CSCI分类
计算机软件配置项:定义
是为独立的配置管理而设计的且能满足最终用户要求的一组软件,简称软件配置项
软件开发过程中,代码、文档、报告等工作成果