📚
handbook
  • Introduction
  • 1.前言
    • 前言
    • 鸣谢
  • 2.环境篇
    • 工具部署和使用
      • 团队协作工具
        • Confluence
      • 开发工具
        • Docker
          • 镜像导入导出
          • 安装
        • Docker Compose
      • 持续集成工具
        • Gerrit
        • Sonarqube
          • 分析参数设定
          • Prerequisite
          • 服务端设置
        • Ubuntu Ci Deploy
          • ubuntu使用docker部署jenkins+sonarqube
        • 持续集成部署
      • 文本编辑工具
        • Gitbook相关注意事项
        • Markdown快速入门
      • 版本控制
        • Git
          • 1.基础
            • Git基础(一)
            • Git基础(二)
            • Git基础(三)
            • Git基础(四)
            • Git基础(五)
          • 2.命令详解
            • 命令速查
          • 3.进阶技巧
            • git技巧
      • 自动化测试工具
        • Appium
          • capability参数配置
          • 安装
          • 简介
      • 项目管理工具
        • Jira
    • 开发环境配置
      • 通用
        • Homebrew安装与使用
        • Git服务器添加SSH Key
        • koroFileHeader使用
        • nodejs与npm的安装
        • npm更换国内源
        • pip使用相关
        • PostgreSQL安装与使用
        • proxychain安装与使用
        • shell配置环境变量
        • snapd安装与使用
        • terminal走代理
    • 快捷键速查
      • shell常用快捷键
  • 3.语言篇
    • C
      • 代码规范
      • 语言技巧
    • Cpp
      • 代码规范
      • 基础知识
        • 理解C++中的左值和右值
      • 语言技巧
        • 并发编程
          • 简单的线程池实现
    • Golang
      • 代码规范
        • 避免使用转义字符串
        • 避免参数语义不明确
        • 嵌套式结构体
        • 函数的分组与顺序
        • 函数命名
        • 声明一致性
        • 导入别名
        • 使用字段名初始化结构体
        • 本地变量声明
        • map初始化
        • nil用法
        • 包命名
        • 命名Printf样式的函数
        • 减少嵌套
        • 缩小变量作用域
        • struct引用初始化
        • 测试表声明
        • 顶层变量声明
        • 不必要的else
      • 环境配置
        • 代码检查格式化工具
          • Go Fmt
          • Goimports
          • Golint
          • Go Vet
        • go mod详解
        • golang安装
        • Golang开发环境
        • Troubleshooting
      • 语言技巧
        • 如何分包
    • Java
      • 代码规范
      • 语言技巧
        • 注解编程
        • 动态代理
    • Js
      • 语言技巧
        • Rollup
    • Kotlin
      • 基础知识
        • 写给开发者Kotlin指引(一)
        • 写给开发者Kotlin指引(二)
    • Python
      • 语言技巧
        • Best Practice Of Python S Project Structure
  • 4.规范篇
    • Git message规范
  • 5.技术篇
    • Android技术
      • Hook
        • EdXposed例子
        • Android 10 上安装Magisk和EdXposed
      • Tinker
        • 1.Tinker及其使用
      • 准备
        • ADB连接设备步骤及注意事项
        • adb连接设备
        • aosp编译
      • 基础
        • Binder接口调用的鉴权方法
        • Make 及 Android 编译系统介绍
        • 使用Content Provider为其他应用提供数据
      • 源码阅读
        • Framework源码分析 Looper Handler
        • Framework源码分析 启动流程 ServiceManager的初始化
        • Framework源码分析 启动流程 Zygote启动SystemServer
    • JS Bridge
      • JSBridge初探
    • Kernel技术
      • kallsyms子系统
    • Test技术
      • 软件测试
        • jnekin+sonar 部署 问题总结
        • 性能测试基础
        • 软件测试的背景
        • 测试基础
        • 测试人员的核心竞争力
    • 操作系统原理
      • 处理器如何实现原子操作
Powered by GitBook
On this page
  • 第1章 软件测试的背景
  • 1.1什么是软件缺陷
  • 1.2为什么会出现软件缺陷
  • 1.3软件缺陷的修复费用
  • 1.4软件测试员究竟做什么
  • 1.5优秀的软件测试员应具备的素质
  • 第2章 软件开发的过程
  • 2.1软件项目成员需要哪些(常用的名称)
  • 2.2软件开发生命周期模式
  • 第3章 软件测试的实质
  • 3.1 测试原则
  • 3.2 软件测试的术语
  • 我喜欢最后期限。我特别喜欢它们飞驰而过时的呼啸声

Was this helpful?

  1. 5.技术篇
  2. Test技术
  3. 软件测试

软件测试的背景

第1章 软件测试的背景

1.1什么是软件缺陷

  1. 软件未实现产品说明书要求的功能。

  2. 软件出现了产品说明书指明不应该出现的错误。

  3. 软件实现了产品说明书未提到的功能。

  4. 软件未实现产品说明书虽未明确提及但应该实现的目标。

  5. 软件难以理解、不易使用、运行缓慢或者——从测试员的角度看——最终用户会认为不好。

    辅助术语: 产品说明书(product specification)。产品说明书有时又简称为说明或者产品说明,是软件开发小组的一个协定。它对开发 的产品进行定义,给出产品的细节、如好做、做什么、不能做什么。

1.2为什么会出现软件缺陷

  1. 产品说明书 :在许多情况下,说明书没有写;其他原因可能是说明书不够全面、经常更改,或者整个开发小组没有很好地沟通。

  2. 设计:这是程序员规划软件的过程。好比是建筑师为建筑物绘制蓝图。

  3. 编码:代码错误可以归咎于软件的复杂性的、文档不足、进度压力或者普通的低级错误。

  4. 其他:如:本来正确的当成缺陷,测试错误等,这类占比比较小。

1.3软件缺陷的修复费用

从开始到计划、编程、测试,再到公开使用的过程中,都有可能发现软件缺陷。而修复软件缺陷的费用也会随着进程而增加
越早期发现问题,解决越简单。

1.4软件测试员究竟做什么

软件测试员的目标是尽可能早地找出软件缺陷,并确保其得以修复。

1.5优秀的软件测试员应具备的素质

  1. 他们是群探索者:不怕进入新的环境,喜欢拿到新的软件。

  2. 他们是故障排除员:软件测试员善于发现问题的症结。喜欢解密。

  3. 他们不会放过任何蛛丝马迹:软件测试员总在不停的尝试。他们可能会碰到转瞬即逝或者难易重现的问题。他们不会当做是偶然而轻易放弃。

  4. 他们具有创造性:他们的工作是要设想出富有的创意甚至超常的手段来寻找缺陷。

  5. 他们是群追求完美者:他们力求完美,但是当知道某些无法企及时,不去苛求,而是尽力接近目标。

  6. 他们判断准确:软件测试员要决定测试内容、测试时间,以及看到的问题是否是真正的缺陷。

  7. 他们注重策略和外交:软件测试员知道如何去和开发交流。

  8. 他们善于说服:测试员要善于清晰地表达观点,说明软件缺陷为何必须修复,并推进缺陷的修复。

第2章 软件开发的过程

2.1软件项目成员需要哪些(常用的名称)

  1. 项目经理、程序经理或者监制人员:自始至终驱动整个项目。

  2. 架构师或者系统工程师:产品小组的的技术专家。

  3. 程序员、开发人员:设计、编写软件并修复软件的缺陷。

  4. 测试员或质量保证:负责找出并报告软件产品的问题。

  5. 技术人员、用户协助专员、用户培训专员、手册编写员或者文案专员:编制软件产品附带的文件和联机文档。

  6. 配置管理员或构建员:负责把程序编写的代码及技术作者写的全部文档资料组合在一起,合成为一个软件包。

2.2软件开发生命周期模式

  1. 什么是软件开发生命周期模式 软件产品从最初构思到公开发行的过程称为软件开发生命周期模式。

  2. 对于项目而言没有哪个模式一定是最好的。一下四种是最常用的模式:

    大爆炸模式: 计划、进度安排和正开发过程几乎没有,所有精力都花在开发软件和编写代码上。 优点:简单

    边写边改模式:在大爆炸模式基础上更进一步,考虑到了产品需求。

    瀑布模式:从构思到最终产品要经历一系列步骤。而这些步骤是分开的,一旦进入某个步骤,就要完成该步骤的任务,才能向下走,不能回溯。

    螺旋模式:该模式包含一点瀑布模式(分析、设计、开发和测试的步骤)、一点边写边改的模式和一点爆炸模式。该模式发现问题早、成本低。

第3章 软件测试的实质

3.1 测试原则

一些原则或者公理,可以视为软件测试和软件开发的“交通规则”或“生活常识”

    1. 完全测试程序是不可能的,输入量大、结果多、执行路径多等原因
    2. 软件测试是有风险的行为:数量巨大的可能测试减少到可以控制的范围,以及如何针对风险做出明智的抉择,哪些测试重要,哪些不重要。
    3. 测试无法显示潜伏的软件缺陷:可以报告软件缺陷存在,却不能报告软件不存在缺陷。任何情况下都不能保证软件缺陷没有了。
    4. 找到的缺陷越多,就说明软件缺陷越多:某个模块问题很多,那个和它有关联的模块也可能有很多问题。
    5. 并非所有软件缺陷都要修复:时间,风险或者不值得修复。
    6. 产品说明书从没有最终版本:行业变化很快,需求变化也很快。
    7. 软件测试员在产品中不受欢迎:软件测试员的工作就是检查和批评同事的工作,挑毛病,公布问题。没人喜欢。
    8. 软件测试是一个讲究条理的技术职业:越来越专业,方法也越来越完善。

3.2 软件测试的术语

确认和验证

    确认:是保证软件符合产品说明书的过程。
    验证:是保证软件满足用户要求的过程。

测试和质量保证

    测试:软件测试员的目标是尽可能早地找出软件缺陷,并确保缺陷得以修复。
    质量保证:软件质量保证人员的主要责任是创建和执行改进软件开发过程并防止软件缺陷发生的标准和方法。

我喜欢最后期限。我特别喜欢它们飞驰而过时的呼啸声

Previous性能测试基础Next测试基础

Last updated 4 years ago

Was this helpful?