软件测试基础
Posted Eric%258436
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试基础相关的知识,希望对你有一定的参考价值。
** 如有错误,感谢指正**
如有错误,感谢指正,请私信博主,有辛苦红包,拜“一字之师”。
请根据目录寻找自己需要的段落
导语:本博客为个人整理Java学习记录帖,如有错误,感谢指正。系统学习,欢迎持续关注,后续陆陆续续更新~
Java 交流qq群 383245788。群内有一些资源和大佬,欢迎进来交流。
本文旨在学习交流,个人软件测试基础学习心得
入门学习,持续更新
软件测试
软件测试理论
软件测试分类
按照测试阶段划分
单元测试:又称模块测试,针对软件设计中的最小单位-程序模块,进行正确性检查的测试工作。单元测试需要从程序内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
单元定义:C中指一个函数,Java中指一个类,在图形化的软件中,单元一般指一个窗口,1个菜单。
集成测试:又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块的接口部分。
系统测试:把整个软件系统看为一个整体进行测试,测试的依据是需求说明书。到了系统测试阶段,软件基本是成型的。
验收测试: 校验软件是否符合用户需求。
α测试
- Alpha 内测版
- 通常只在内部交流
- 一般来说,bug较多。
β测试
Bate公测版本,免费向所有用户开放测试版本。γ测试
Gamma版本,接近正式发布版本。
按照是否需要查看源代码分类
黑盒测试:又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重测试软件的功能需求,只关心软件的输入与输出数据。
白盒测试
不但要关注功能,还要关注代码是如何实现的。
灰盒测试
介于黑盒和白盒之间的一种测试
按是否运行分类
静态测试
不允许软件,静态观察软件是否符合预期
动态测试
运行软件,在运行过程中测试
按是否自动化分类
人工测试
通过测试工程师手工对软件进行测试
自动化测试
通过程序自动测试软件是否有bug
其他分类
冒烟测试
对软件最基本的流程和工作做一个粗略的测试,看最基本的流程是否能跑通。
回归测试
当修复一个bug后,把之前测试用例,在新的代码下,再次进行测试。
随机测试
对软件重要功能,进行复测
探索性测试
一般了解和学习项目,一边测试项目。
软件质量模型
- 软件质量,就是软件与明确地和隐含地定义得需求相一致得程度。
- ISO 9126软件质量模型是评价软件质量的国际标准,这个模型是软件质量标准的核心,对于大部分的软件,都可以考虑从这这6个特性和27个子特性去测试、评价一个软件。
- 功能性
功能的正确性、功能的安全性、功能的依从性- 可靠性
软件要有容错性、出现错误后可以很快恢复- 易用性
软件界面是否流程、提示是否友好、用户使用功能是否得当- 效率
软件一定是要高效的- 维护性
- 可移植性
适应不同的系统
软件开发过程模型
- 在软件开发的几十年实践中,逐渐形成了许多软件开发模型来描述和表示一个复杂的开发过程,如瀑布模型、快速原型模型、螺旋模型。
- 软件测试与软件开发模式有着紧密联系,软件测试人员应当充分理解软件的开发模式,以便找准自己的位置,从而发挥自身价值。
- 瀑布模型
- 需求分析
研发分析需求说明书
判断需求的可实现性- 概要设计
用到具体的技术点
大致模块划分- 详细设计
详细到可以为编码做支持
类和类关系,类的设计
函数设计
各个接口的细节
数据库表的关系,字段关系- 编码
依托于详细设计进行编码操作- 软件测试
- 软件维护
软件上线后需要持续维护
- 瀑布模型的特点
线性模型,每一步都按照顺序执行
文档驱动,每一步都有文档产出- 瀑布模型的优点
开发的每个阶段比较清晰
当前一阶段完成后,只需关注后续阶段- 瀑布模型的缺点
依赖于早期的需求调查,不适应需求的变化
风险往往延后显露,失去及早纠正的机会
- 快速原型开发
- 特点:
快速构建软件原型
支持用户参与- 优点:
克服瀑布模型的缺点,更好地满足用户的需求并减少由于软件需求不明确带来的项目开发成本- 缺点:
不适合大型系统的开发(适合开发小型的,灵活性高的系统)
- 螺旋模型
- 螺旋模型的特点
引进了风险评估活动- 优点
螺旋模型很大程度上是一种风险驱动的方法体系- 缺点
采用螺旋模型需要具备相当丰富的风险评估经验和专门的知识
测试过程模型
测试用例
测试用例设计方法
以上是关于软件测试基础的主要内容,如果未能解决你的问题,请参考以下文章