文章目录

  • 一、测试基础
    • 1、什么是软件测试
    • 2、软件测试的目的、意义
    • 3、测试原则
    • 4、测试对象介绍
    • 5、测试级别
    • 6、系统测试分类
    • 7、常见的系统测试方法
      • 1)按测试对象进行分类
      • 2)按测试对象是否执行进行分类
      • 3)按测试手段进行分类
  • 二、软件质量
    • 1、软件质量
    • 2、软件测试流程
    • 3、常见的软件架构
      • 1)两种架构的比较

一、测试基础

1、什么是软件测试

两个依据(需求、测试用例),两个方法(手工、自动),一个对比(预期结果比实际结果的对比)

2、软件测试的目的、意义

初期:尽量多的发现缺陷生成相关规范
中期:尽量早的发现缺陷
后期:尽量预防问题,通过以往的经验积累
控制成本(贯穿始终)尽量少的时间和人力发现更多的缺陷

3、测试原则

所谓测试原则指的是我们在执行测试工作时必须要遵守的一些规则

  1. 测试证明软件存在缺陷:无论执行什么样的测试操作都能证明当前软件是有缺陷的
  2. 不能执行穷尽测试:有些功能是没有办法将所有的测试情况都罗列出来,所以任何的测试操作都有结束的时间
  3. 缺陷存在群集现象:对于软件功能来说,核心功能占20%(比如 QQ),非核心是80%(QQ炫舞等衍生品)。在实际工作中我们会集中测试20%的核心功能,所以这个部分发现缺陷的几率就会高于80%。因此我们就会遇到缺陷都集中在20%功能模块里的现象。
  4. 某些测试需要依赖特殊的环境:例如ipthone手机在寒冷的区域会出现异常关机,是因为当时测试时未在这种环境下测试
  5. 测试应尽早介入:为了更多的发现和更好的解决软件中的缺陷,我们追求测试工作尽早的开展
  6. 杀虫剂现象:同样的一个测试用例不能重复的执行多次,因为软件会对它产生免疫;即对于某个出现问题,开发人员会就这个问题去解决,所以测试时需要换为同一类型的另外的问题测试
  7. 不存在缺陷谬论:任何软件不可能是完美的

4、测试对象介绍

对于当前的测试行业来说我们最经常测试的主体就是软件(主体功能),但是需要我们明白的是一个软件也不仅仅只有功能需要测试。
我们可以将软件分为三个部分组成:功能集合、使用说明书、配置数据
对于一款软件来说从无到有需要不同的过程,我们可以将这个过程分为不同阶段,然后每个阶段都会有相应的测试对象
下列为各个阶段对应的测试对象:

  1. 需求阶段:各种需求规格说明书(这个过程分析要实现什么功能,这些功能在现有的资源上是否可以实现)
  2. 软件架构设计:API接口文档(接口测试)
  3. 编码实现阶段:源代码(白盒测试、单元测试)
  4. 系统功能使用:软件功能主体(当前行业做的最多的一种测试)

5、测试级别

软件开发都会依据相应的开发模型,在这个开发模型中会有人为定义的开发步骤,我们把这个开发步骤称为测试级别。
常见的级别分类为:

  1. 单元测试(UT unit test):在软件测试中,单元指的是组成软件最小的底层代码结构,一般就是类、函数、组件
  2. 集成测试(IT ingertaion test):将多个单元块组合到一起,然后验证它们之间沟通的“桥梁”是否能正常工作(接口测试)
  3. 系统测试(ST system test):这是当前行业做的最多的一种测试,由测试人员充当用户然后对软件功能主体进行测试
  4. 验收测试
    1. alpha测试–内测
    2. beta测试–公测
    3. UAT测试–由客户派出对于业务非常精通的人员来使用该软件,从而对功能进行测试
    4. 验收测试的核心就是让用户为当前软件’买单‘

6、系统测试分类

  1. 功能测试:验证当前的软件主体功能是否可用
  2. 兼容性测试:验证当前软件在不同的环境下是否还可以使用(不同操作系统中、不同终端上、不同浏览器)
  3. 安全测试:验证软件是否只是对授权用户提供功能使用
  4. 性能测试:相对于当前软件消耗的资源,它的产出能力

7、常见的系统测试方法

1)按测试对象进行分类

  1. 白盒测试

    • 指的是把盒子打开,研究里面的源代码和程序结构
  2. 黑盒测试
    • 又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和输出数据
  3. 灰盒测试:介于两者之间(接口测试)
  4. 上述三种方法当中的“盒”指的就是被测对象

2)按测试对象是否执行进行分类

  1. 静态测试:指的就是测试不可行的(测文档)
  2. 动态测试:将软件运行在真实的使用环境中进行测试

3)按测试手段进行分类

  1. 手工测试:由测试人员手动的对被测对象进行验证,优点可以灵活的改变测试操作及环境。
  2. 自动化测试:所谓自动化主要有两种形式,一种是自己写测试脚本,另外一种就是通过第三方的工具对被测对象进行测试。优点就是可以高效率的去执行一些人工无法实现的操作

二、软件质量

1、软件质量

描述当前软件是否好用,在当前的软件行业里我们所采用的一套标准是基于ISO组织制定的。
需要我们记忆的就是软件质量的六大特性

  1. 功能性:软件需要满足用户显式或隐式的功能
  2. 易用性:软件易于学习、易于上手使用,容易吸引用户
  3. 可靠性:指的就是软件必须实现需求中指明的功能
  4. 效率性:类似于软件的性能
  5. 可维护性:要求软件具有将某个功能修复之后还可以继续使用的功能
  6. 可移植性:当前软件可以从一个平台移植到另一个平台上使用的能力

功能靠用,效率可以

2、软件测试流程

根据团队、公司的习惯,业务流程的不同,软件测试流程都不同。
下面为尽可能多的流程

  1. 需求分析

    1. 当前阶段的核心目的就是梳理清楚我们需要设计的点是什么
    2. 需求的来源:需求规格说明书、API文档、竞品分析、个人经验
  2. 设计用例
    1. 用例就是用户为了测试软件的某个功能而执行的操作过程
    2. 设计用例是有方法的(等价类、边界值、判定表。。。。)
  3. 评审用例:对当前用例进行添加或者删除
  4. 配置环境
    1. 环境:指的是当前被测对象运行所需要的执行环境,作为测试人员需要具备配置环境的能力(一般情况下都会使用一键安装的集成环境)
    2. 环境分类:操作系统、服务器软件、数据库、当前软件底层代码的执行环境
  5. 执行用例
    1. 一般在执行用例之前我们会做一个冒烟测试(这种测试的核心就是快速对当前软件的核心功能或者主体执行流程进行验证,如果冒烟测试阶段有问题,则可以将此版本回退给开发)
    2. 如果冒烟测试通过那么才会开展全面的测试
  6. 回归测试及缺陷跟踪
    1. 回归测试指的是当我们将某个缺陷提交给开发之后,由他们进行修复,修复完成之后需要测试人员再次对其进行测试
    2. 缺陷跟踪:指的就是当测试人员发现某个缺陷之后需要一直对其进行状态的跟踪
  7. 输出测试报告
    将当前的测试过程中产生的数据进行可视化的输出,方便其他人去查看
  8. 测试结束
    将整个测试过程中产生的文档进行整理归档,方便后续版本使用

3、常见的软件架构

所谓的软件架构我们可以理解为是用来指导我们软件开发的一种思想,目前来说最常见的两种架构模式就是B/S 、C/S
B/S:淘宝
C/S:王者荣耀,QQ

1)两种架构的比较

  1. 标准
    相对于C/S架构,B/S架构两端都是使用现成的成熟产品,所以B/S会显示的标准一些
    (比如说淘宝为B/S架构,浏览器和服务器都是现成的,但是C/S架构中的客户端可以自定义开发,所以相对于B/S现成来说,不那么成熟标准)
  2. 效率
    相对于BS架构来说,CS中的客户端可以分担一些数据的处理,因此执行效率更高一些(比如断网之后,打开淘宝什么都没有,但是打开微信或者QQ还有数据)
  3. 安全
    BS架构当中的数据传输都是以HTTP协议进行的输出,而HTTP协议又是以明文传输,可以被抓包,所以相对于CS架构来说,BS就是不那么安全
  4. 升级
    BS架构只需要在服务器端将数据更新,前台只需要刷新页面就可以,CS架构两端都需要更新
  5. 开发成本
    相对于BS架构来说,CS架构中的客户端需要自己开发,所以开发成本相对来说高一些

软件测试--基础知识1--测试简介、软件质量等相关推荐

  1. 软件测试基础知识大全【乐搏TestPRO】

    在很多人的认知里,软件测试入门门槛低,简单易学.确实,软件测试基础知识更偏向于理论方法的学习,及部分常用工具的学习. 接下来的70个基础知识讲解,弄明白后这些问题后,软件测试入门也基本掌握了.本篇共分 ...

  2. 【软考软件评测师】软件测试基础知识

    [软考软件评测师]软件测试基础知识 软件测试基础知识 [软考软件评测师]软件测试基础知识 一. 软件测试的概念 1)软件测试定义的发展 2)软件测试的目的 3)软件测试的对象 4)对于测试组织者和实施 ...

  3. 软件工程与软件测试基础知识_这是我在软件工程工作九个月中学到的知识

    软件工程与软件测试基础知识 I've been working for about nine months at Dexter as a software developer. I wrote a b ...

  4. Linux基础知识与文件系统简介

    Linux基础知识与文件系统简介 参考文献:Ubuntu Linux 基础教程 Linux是在什么样的历史背景下出现的 Linux的诞生与发展与UNIX系统.Minix系统.Internet.GNU计 ...

  5. fiddler模拟服务器响应,2020军队文职计算机知识:【软件测试基础知识】如何使用fiddler模拟接口服务器...

    [导语]2020军队文职计算机知识:[软件测试基础知识]如何使用fiddler模拟接口服务器已发布,为助力各位考生做好2020年军队文职招聘考试准备,中公部队文职考试网提供了军队文职专业科目和综合辅导 ...

  6. 软件测试基础知识面试题目(25题英文题目)

    软件测试基础知识面试题目(25题英文题目) 1. Verification is:  a. Checking that we are building the right system b. Chec ...

  7. 软件测试基础知识 - 测试开发需要哪些知识,需要具备什么能力

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 需要的知识 软件测试基础理论知识,如黑盒测试.白盒测 ...

  8. 软件测试基础知识——适合初学者

    软件测试基本概念 1.软件=程序+文档,软件测试=程序测试+文档测试. "程序"是指能够实现某种功能的指令的集合,"文档"是指软件在开发.使用和维护过程中产生的 ...

  9. 软件测试基础知识整理,都给你准备好了

    目录 1.软件测试基本概念 2.软件测试分类 3.测试工程师 4.软件测试工具简介 1.软件测试基本概念 1.软件=程序+文档,软件测试=程序测试+文档测试. "程序"是指能够实现 ...

最新文章

  1. js Object.keys()
  2. springboot整合spring Cache(redis)
  3. docker mysql5.7 主从_docker-compose mysql5.7.30 主从
  4. 图像基础知识 —— Opencv图像处理
  5. ActiveMQ安装配置
  6. Kubernetes详解(三)——Kubernetes集群组件
  7. IEEE1588工业以太网交换机
  8. 华为发布会2019鸿蒙,鸿蒙,来了!华为正式发布鸿蒙OS操作系统
  9. 苹果id注册显示无法连接服务器失败原因,apple id连接服务器失败怎么办
  10. Python四舍五入问题详解
  11. java短信验证码功能发送的验证码如何校验_如何实现java手机短信验证功能
  12. 基于51单片机1602温度显示时钟
  13. 软件------关于spacedesk分屏软件的使用说明(包括下载和具体启动方式)
  14. 【学习笔记】Python之 pdf 下载、合并
  15. 本地小说阅读网站打造
  16. mysql 常用sql调优_MySQL 常用SQL优化
  17. STM32-RCC的功能和使用
  18. Java实现Linux的md5加密,Linux_详细讲解:Linux系统GRUB的MD5加密方法,1、用grub-md5-crypt成生GRUB的md5密 - phpStudy...
  19. 二叉树--Huffman编码树--优先队列解法
  20. Xftp连接失败,解决办法

热门文章

  1. 中国水果粉市场趋势报告、技术动态创新及市场预测
  2. 关于Ghost的使用
  3. 国家精品课程相关网址
  4. Es搜索引擎概述和语句案例
  5. ABOV E-PGM+提示 “No valid license” or “Received an invalid 32bit LOCTL
  6. 行无疆电商讲述拼多多店铺dsr评分怎么提高
  7. 马云连续三年蝉联中国首富
  8. python在线运行调试-Python调试工具
  9. 机器人按照给定的指令c语言,【高训工控】专业课堂第二十四期——工业机器人调试基础:程序的构造与组成...
  10. Vue 合同模板_vue源码逐行注释分析+40多m的vue源码程序流程图思维导图