软件测试 - 功能测试(测试理论+用例设计)

一、测试理论基础

1.软件的定义

软件:是计算机程序程序所用的数据以及有关文档资料的集合
软件分为 系统软件 和 应用软件
系统软件:是生成、准备和执行其他程序所需要的一组文件和程序,比如:操作系统
应用软件:计算机用户为解决某些具体问题而购买的、开发或研制的各种程序或软件包,比如APP

2.应用架构

C/S架构:必须安装一个客户端才能使用的软件(client-server)
      缺点:每次更新,必须更新服务端和客户端
B/S架构:只需要一个浏览器,就可以访问的服务(browser-server)

3.什么是软件测试

软件测试:
使用人工和自动手段来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清楚预期结果实际结果之间的差别;

测试目的:        
(1).发现程序(软件)存在的代码或者业务逻辑错误
(2).检验产品是否符合用户需求
(3).提高用户体验

以最小的人力、物力和时间,找到软件中潜在的错误和缺陷。

4. 测试的分类 *

 (1).按测试技术划分:黑盒测试、白盒测试、灰盒测试

  • 黑盒测试
    • 黑盒测试:也称功能测试数据驱动测试,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
    • 黑盒测试方法:等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。
  • 白盒测试
    • 白盒测试:也称为结构测试逻辑驱动测试,白盒测试法检查程序内部逻辑结构,对所有的逻辑路径进行测试,是一种穷举路径的测试方法。
    • 白盒测试原则:
      • (1)保证一个模块中的所有独立路径至少被测试一次;
      • (2)所有逻辑值均需要测试真(true)和 假(false)两种情况;
      • (3)检查程序的内部数据结构,保证其结构的有效性;
      • (4)在上下边界及可操作范围内运行所有循环。
    • 白盒测试方法:
      • 语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
  • 灰盒测试
    • 大概知道代码逻辑实现,不需要看懂所有的代码

(2).按测试对象是否运行划分:动态测试、静态测试

  • 静态测试
    • 不用运行程序的测试,包括代码检查、静态结构分析、代码质量度量、文档测试等等,它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具(Fxcop)自动进行。
  • 动态测试
    • 需要执行代码,通过运行程序找到问题,包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等。

(3).按不同的测试手段划分:手工测试、自动化测试

  • 手工测试
    • 点工
  • 自动化测试
    • 工具+代码

(4).按测试包含内容划分:功能测试、界面测试、安全测试、兼容性测试、易用性测试、性能测试

  • 功能测试
    • 测试软件的功能是否符合需求,通常采用黑盒测试方法,一般由测试人员独立执行。
  • 界面测试
    • 也称UI测试,测试用户界面布局是否合理,整体风格是否一致,界面文字是否正确,命名是否统一,页面否美观,文字、图片组合是否完美等。
  • 安全性测试
    • 验证应用程序的安全等级和识别潜在安全缺陷的过程。目的是为了查找软件自身程序设计中存在的安全隐患,并检查应用程序对非法侵入的防范能力(登录、防攻击、sql注入
  • 兼容性测试
    • 兼容性测试是指检查被测软件在不同的硬件平台上、不同的应用软件之间、不同的操作系统中、不同的网络环境中是否可以正常运行的一种测试。
  • 易用性测试
    • 这种测试方法,不是去测试软件能不能用,而是去测试软件好不好用,用户学习成本高,所以主观性比较强烈。一般要根据多个用户的测试反馈信息,才能评价易用性到底好不好。(人性化、舒适、是否符合用户使用习惯、比较主观)
  • 性能测试
    • 一般性能测试:相应速度,对资源(CPU/内存)的利用
    • 压力测试:高负载的情况下进行的,目的不是为了获取性能指标,而是想要了解系统是否稳定
    • 负载测试:通过不断调试并发数获取性能瓶颈。(极限
    • 强度测试:为了确定系统在最差工作环境的工作能力,或用于验证在标准工作压力下的各种资源的最下限指标

(5).按测试阶段划分:单元测试、集成测试、系统测试、验收测试(α测试、β测)

  • 单元测试
    • 完成最小的软件设计单元模块、类、函数、方法)的验证工作,目标是确保模块被正确的编码,使用过程设计描述作为指南,对重要的控制路径进行测试以发现模块内的错误,通常情况下是白盒测试,对代码风格和规则、程序设计和结构、业务逻辑等进行静态测试,及早的发现和解决不易显现的错误。
  • 集成测试
    • 通过测试发现与模块接口有关的问题(模块与模块之间的调用)。目标是把通过了单元测试的模块拿来,构造一个在设计中所描述的程序结构,应当避免一次性的集成,而采用增量集成。(接口测试
  • 系统测试
    • 是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。
  • 验收测试
    • 是一项确定产品是否能够满足合同或用户所规定需求的测试。验收测试包括α测试、β测试、γ测试。
    • α测试
      • 是指软件开发公司组织内部人员模拟各类用户对即将面市软件产品进行测试,试图发现错误并修正。α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的用户操作方式。经过α测试调整的软件产品称为β版本。(内测版本,bug多)
    • β测试
      • 是由软件的多个用户实际使用环境下进行的测试,这些用户返回有关错误信息给开发者。一般只提供给特定的用户群来测试使用。(公测版本)
    • γ测试
      • 此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行。(候选发布版本)

其他测试:回归测试、冒烟测试、探索性测试/自由测试

  • 回归测试
    • 回归测试是指在代码发生修改之后重新测试先前的测试用例以保证修改的正确性。
  • 冒烟测试
    • 指针对最基本的功能最主要的业务流程核心功能)进行测试。比如电商购物流程:注册、登录、选商品、加入购物车、支付、订单管理。
  • 探索性测试
    • 是敏捷世界里的一种重要测试方法,作为一个研究性的工具,它是用户故事测试和自动化回归集的重要补充。(靠经验、积累、测试思维

5.测试的原则

  • 1.证明软件中存在缺陷
  • 2.不能穷尽测试
  • 3.测试应用尽早介入
  • 4.28原则
  • 5.不存在缺陷谬论
  • 6妥善保存一切文档

6.测试的流程

  • (1).需求分析
    • 阅读需求文档,熟悉项目;参与需求评审
  • (2).制定测试计划和测试方案
    • 测试计划:测试整个项目的总体规划,比如:测试范围,进度安排,人力物力安排,整体的测试策略,风险评估,风险规避..
    • 测试方案:被测目标,测试工具选取,测试方法,测试重点 
    • 遵循 5W 1H 原则:why when who what where how
  • (3).设计测试用例
    • 常用测试方法:等价类,边界值,场景法...
  • (4).测试用例评审
    • 参与人员一般有:产品经理,开发,测试
  • (5).执行测试用例
    • 开发完成后,开始执行测试用例,发现Bug,提交给开发人员,开发人员修复完成后,重新指派给测试人员,测试人员开始回归测试,通过就关闭,没有通过就继续修复Bug;

  • (6).编写测试报告
    • 对测试情况做个总结(发现了多少bug,修复了多少bug,还有哪些没修复...࿰

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值