<软件测试>软件测试

1.软件测试基础

  • 软件测试工程师:查找错误和缺陷,然后要求开发人员进行修改,保证软件质量。
  • 漏洞(360安全漏洞):硬件,软件,协议的具体实现或系统安全策略存在缺陷,从而可以使攻击者在未授权的情况下破坏系统。
  • 千年虫问题:年份存2年,超过百年会出现bug。1900→2000
  • 开发和测试的比例:4:1→10:1
  • 手工测试、功能自动化测试、性能自动化测试、白盒测试
  • 1-3-5年规划:手工测试工程师,功能自动化测试工程师,性能测试工程师
  • 需要的技术:计算机操作系统,软件开发技术、软件测试技术、自动化工具

1.1 Windows操作系统及网络基础

  熟悉windows操作系统和计算机基础知识,能够搭建软件测试环境,熟悉网络协议。

  • 什么是软件:软件=程序+文档
  • 什么是软件缺陷:
    • 软件未出现说明书要求的功能
    • 软件出现了说明书指明不应该出现的错误 
    • 软件出现了说明书未提到的功能
    • 软件未实现说明书虽未明确提及但应该实现的功能
    • 软件难以理解,不易使用,运行缓慢或者从测试员角度看,最终用户会认为不好。 
  • 什么是软件测试:在现有软件中寻找缺陷的过程
  • 软件测试的历史:defect(缺陷),bug(臭虫),debug(调试)
  • 计算机层次:计算机硬件,操作系统,应用软件 
  • 裸机包含软件:BIOS(Basic input/output system 基本输入输出系统)
  • 常见操作系统:Windows ,linux , unix , IOS
  • 软件分类:系统软件,应用软件
  • 硬件测试软件:3DMark  
  • 常见数据库管理软件:SQLserver,Oracle,Mysql
  • 软件结构分类:单机软件,分布式软件(BS,CS)
  • 进制转换:十进制,八进制,二进制,十六进制
  • 逻辑代数:与,或,非

1.2 软件测试基础理论(重点)

  掌握软件测试的核心技术,熟悉整个测试流程,相关文档的编写,测试管理工具QC的使用。

  • 软件缺陷和缺陷报告

    • 测试人员的职责
    • 编写缺陷报告
    • 缺陷报告的处理流程  
  • 测试人员的职责
    • 编写测试计划
    • 编写测试用例(重点)-1000条用例
    • 执行测试,发现缺陷提交缺陷报告--50条
    • 验证所发现的缺陷是否得到修改
    • 编写测试总结报告--测试客观事实说话--3篇
  • 编写缺陷报告
    • 用缺陷报告告诉开发人员所发生的问题(记录,跟踪)
    • 1.缺陷编号(defect ID): 
    • 2.缺陷标题(summary):描述缺陷
    • 3.缺陷发现者(Detected By):发现者
    • 4.发现缺陷的日期(Detected on date)
    • 5.缺陷所属的模块(subject):在测试哪个模块的时候发现bug
    • 6.发现缺陷的版本(Detected in release):在测试哪个版本的时候发现bug
    • 7.指派给谁处理(Assigned to):给开发经理
    • 8.缺陷的状态(status):
      • new:新提交或新发现的bug
      • open:确实存在该缺陷,开发组承认的bug
      • rejected:不认识是缺陷,开发组不承认bug
      • fixed:已经修复的bug
      • close:返测成功的bug,归档的bug
      • reopen:返测不成功的bug,重新open该bug
      • 缺陷报告处理流程
      • 一个缺陷的生命周期:New-open-fixed-closed
    • 9.缺陷的严重程度(severity):对软件的影响
      • Urgent:造成系统死机,重启,崩溃的缺陷
      • Veryhigh:非常严重的缺陷
      • High:大的缺陷
      • Medium:中等程度
      • Low:小的缺陷
      • Bug level definition(bug 等级定义)
    • 10.缺陷的优先级(priority):希望修复bug的优先度
    • 11.缺陷描述(description):把发现缺陷的步骤,使用的数据记录下来,使程序猿根据描述清楚所发生的事情
      • 1.在“第一个数”文本框中输入:10
      • 2.在“第二个数”文本框中输入:0
      • 3.点击“/”按钮
      • 4.在“错误提示对话框”中点击“确定”按钮
      • 预期结果:“错误提示框”关闭,程序继续运行
      • 实际结果:程序关闭  
    • 缺陷报告的用途
      • 1.记录bug
      • 2.对bug进行分类
      • 3.跟踪bug
      • 4.对bug进行分析统计
    • 如何识别缺陷
      • 1.通过测试用例中的预期结果进行判断
      • 2.看需求,通过缺陷的5点定义识别
      • 3.沟通(开发,需求,用户)
    • 一个缺陷报告只提交一个缺陷
    • 缺陷描述清晰,准确,易读,使用最少的步骤,保证能重现
    • 对缺陷的严重性,优先级划分准确,客观
    • 认真审核,避免出错,不要夸大缺陷,
    • 小的缺陷也要报告,及时报告缺陷
    • 对于不可重现的缺陷也要报告
    • 不做任何评价
    • 截图技巧:
  • 测试用例
    • 测试用例:主要记录测试的过程、步骤、输入的数据,预期结果等内容。是执行测试之前由测试人员编写的指导测试的重要文档。
    • 解决的问题:测什么,怎么测和如何测试的问题
    • 写测试用例需要的东西:需求文档,开发文档,用户手册,与相关人员讨论,结合开发出的软件写
    • 测试用例应该包含的:用例编号,测试目的,用例描述,预期结果
    • 编写用例的方法
      • 1.等价类划分

        • 根据程序对数据的要求划分若干个区域,从少数代表性数据作为测试用例。每一类代表数据在测试中的作用等价于这类中的其他值
        • 应用场合:只要有数据输入的地方
        • 思想:利用具有代表性的数据代表一类用于测试
        • 概念:
          • 有效等价类:对程序有意义,合理的输入数据集合。得到正确的计算结果
          • 无效等价类:对程序无意义,不合理的输入数据集合。错误提示或不让输入
        • 如何使用等价类划分编写测试用例
          • 1.明确测试对象:一个控件一个控件去测,保证其他控件正确
          • 2.根据需求划分等价类
            • 有效等价类:-99----99之间的整数
            • 无效等价类:非整数,不在区间内,
          • 3.细化等价类
            • 把第二步中不是特别细致的进行详细划分
            • 有些情况不是根据显式需求,而是根据数据存储方式理解
            • 有效等价类:正负数分开(正负数存储补码区别)
            • 无效等价类:非整数(小数,字母,符号,汉字,空)
          • 4.建立等价类表(熟练之后只需要这步)
              • 编号                   数据要求
              •   1                       <99
              • 2                       小数
              • 3                       字母
              • 。。。                  。。。
          • 5.编写测试用例
          • 编写等价类表→编写测试用例  
          • 正数的补码是其本身,负数的补码是其正数按位取反加1.                  
      • 2.边界值
        • 应用场合:只要有数据输入的地方,有效和无效数据的分界点,需要单独拿出来测试。

          • 有数据范围的:-99----99
          • 有字符个数要求:要求1-20个字符
          • 边界值一般和等价类一起应用
        • 测试用例写法:用例编号,用例数值,预期结果,实际结果,被测边界
        • 如何使用:把边界值(3个点)单独写用例
        • 具体表
          • 控件名称,数据要求,有效等价类,无效等价类,边界值,所属用例  
        • 用例的优化:对于不同控件的有效等价类及有效边界值可以尽可能在一条用例中测试。不同控件的有效等价类(边界)可以组合。  
          • 用例编号,测试目的,用例描述,预期结果,实际结果  
          • 等级类划分经验
            • 1.有效等价类可以在需求中找到
            • 2.无效等价类
              • 为空
              • 重复
              • 超出范围  
              • 填写项允许格式(整数,小数,字符)
              • 小数点位数要求    
      • 3.因果图
        • 应用场合:在一个界面中,有多个控件,需要考虑控件的组合关系,组合会产生输出结果。
        • 因果图核心
          • 1.因---原因,input
          • 2.果---结果,output
          • 使用图形的方式,分析软件输入和输出的对应关系。
        • 图形符号
          • 1.基本图形:输入和输出的对应关系

            • a-b 恒等
            • a~b 非
            • a,b v d 或
            • a,b ^ d 与
          • 2.约束(限制条件)图形:单独限制输入或输出
            • E a,b,c 互斥,至多只有1个1(无默认值)
            • I  a,b,c 包含,至少存在一个1
            • O a,b,c 唯一,有且仅有1个1(有默认值)
            • R a,b 要求  , a,b必须同时为1或为0(自动登录--记住密码自动勾选)
            • M a,b 屏蔽,a,b必须相反
        • 使用因果图分析程序  
          • 1.找出所有输入条件(编号)
          • 2.明确所有输出结果(编号)
          • 3.明确所有输入的制约关系及组合关系--简单的排列组合

            • 哪些能组合---决定测试用例的数量
            • 哪些不能组合
          • 4.明确所有输出之间的制约关系及组合关系--简单的排列组合
            • 哪些能组合
            • 哪些不能组合  
          • 5.找出什么样的输入会产生哪种输出,组合的对应关系
          • 6.根据因果图,写出判定表,按照输入输出确定相应的情况
          • 7.根据判断表设计测试用例
          •  
          •                       
        • 局限性:每个控件的条件(或取值)最好为2-3个
          • 复选框
          • 单选框
          • 按没按下
          • 有3个选项的下拉列表    
      • 4.判定表
        • 适合判定表发的条件

          • 以判定表的形式给出或很容易转换成判定表
          • 条件排列顺序不影响结果
          • 规则排列顺序不影响结果
          • 当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。(列之间没有关系)
          • 如果规则要执行多个操作,这些操作的执行顺序无关紧要。(转账,先转账后提醒或先提醒后转账无所谓)
        • 判定表的组成
          • 条件桩(输入)
          • 动作桩(输出)
          • 条件项(什么输入--组合)
          • 动作项(条件项输入对应的输出)   
                
      • 5.正交排列法
        • 由来:拉丁方→数独
        • 正交拉丁方:2个不同的拉丁方叠合在一起,形成n^2个有序数对
        • 应用场合:在一个界面中有多个控件,每个控件有多个取值,不可能也没有必要进行穷举,如何使用最少最优的组合进行测试
        • 正交表:Ln(mk) -----n代表行数,k代表列数(控件的个数),m代表每个控件包含的取值个数
        • 正交排列法分析
          • 1.分析需求:列出控件及其取值
          • 2.根据控件和控件的取值个数,选择一个合适的正交表,通过m和k确定
            • 通过k控件的个数确定正交表的次幂
            • 通过m控件的取值确定正交表的底
          • 3.把控件及其取值映射到正交表中
          • 4.根据正交表,编写用例
            • 正交表的一行转化成一条用例
          • 常用正交表----去查 
        • 局限性
          • 正交表个数有限,并且一般要求每个控件取值相等,在实践中很难
        • 正交表选择数据的思想
          • 公平
          • 均匀      
      • 6.场景法
        • 模拟用户操作软件时的场景,用于测试系统的业务流程
        • 应用场合
          • 1.界面特点:没有太多填写项,主要通过鼠标的点击,双击,拖拽等完成操作
          • 2.把自己当做用户使用该软件可能会遇到的情景
        • 主要目的:测试软件的主要业务流程,主要功能的正确性和主要错误处理能力
        • 核心概念
          • 1.基本流(正确流):模拟正确操作流程
          • 2.备选流(错误流):模拟错误操作流程
        • 场景法是基于等价类划分的一种操作方法(技术层面)
        • 场景法的应用是基于软件业务(需求)的深入理解(业务层面)
        • 场景法分析程序
          • 1.根据需求找到基本流和备选流:找到所有正确操作流程和错误操作流程
          • 2.列出场景:把每个基本流和备选流当做一个场景
          • 3.根据场景编写测试用例
          • 可以根据流程图进行分析              
      • 7.测试大纲方法
        • 多个窗口,每个窗口有多个操作,
        • 步骤
          • 1.列出每个窗口的输入动作
          • 2.找到各个窗口之间的联系,并据此编写测试用例
        • 大纲是一种着眼于需求的办法,为了列出各种测试条件,就需要转为大纲的形式
        • 在根和每个叶节点之间存在唯一路径,每条路径定义一个特定输入条件集合,用于定义测试用例。
          •    
          •      
      • 8.状态转换图(工作中几乎没用)
    • 测试用例的用途:
      • 防止遗漏
      • 版本重复测试
      • 监督过程
      • 评估结果 
      • 提高效率
      • 缩短周期 
    • 测试用例方法选择的综合策略
      • 最重要

        • 1.场景法:测试主要业务流程,主要功能和错误处理
        • 2.等价类划分:少数代表某一类 
      • 重要
        • 1.边界值:对分界点及两边的点进行测试
        • 2.判定表(因果图):考虑多个控件的组合会产生不同的输出组合
      • 次重要
        • 1.正交排列法:判定表的简化,数量大无法全部测试的情况
        • 2.测试大纲法:类树形的方法 
    • 软件测试的基本理论
      • 软件开发阶段划分

        • 需求分析(要求了解)

          • 根据客户的要求,产生需求规格说明书 

            • 引言

              • 编写目的
              • 项目背景 
                • 用户组织结构 
                • 用户相关业务  
            • 任务概述
              • 目标
              • 运行环境
              • 条件和限制
            • 功能需求
              • 功能描述
              • 数据流图级数据元素描述(数据字典)
                • 职工基本信息  
            • 性能需求
              • 数据精确度
              • 时间特性
              • 适应性
            • 运行需求
              • 安全性
              • 用户界面
              • 接口要求
              • 故障处理及恢复要求
              • 其他要求
            • 参考资料                   
        • 概要设计(初步设计图)
          • 系统分析员审查软件计划,软件需求分析文档,提供最佳推荐方案
          • 概要设计说明书 
            • 引言

              • 编写目的
              • 项目背景
              • 定义(标准)
              • 参考资料
            • 任务概述
              • 目标
              • 运行环境
              • 需求概述
              • 条件与限制  
            • 现状
              • 组织机构
              • 参与角色
              • 现有系统概述
            • 总体设计
              • 系统平台
              • 协同办公自动化系统
              • 。。。(各种系统展开)
            • 接口设计
              • 外部接口
            • 数据结构设计
              • 逻辑结构设计
            • 系统架构设计
            • 发布打包设计
            • 报表设计
            • 出错设计
            • 数据安全性设计
            • 操作安全性设计                             
        • 详细设计(详细设计图)
          • 为每个模块确定使用的算法,并用适当的工具(流程图)表达算法实现的过程,写出模块详细过程性描述
          • 详细设计说明书
            • 引言

              • 编写目的
              • 项目背景
              • 定义
              • 参考资料
            • 总体设计
              • 需求概述
              • 软件结构
            • 程序描述
              • 系统平台
              • 。。。            
        • 编码(完成设计图)  
          • 程序猿跟你详细设计,利用编程语言编写程序
        • 四个阶段引入的缺陷比例
          • 需求说明书:56%
          • 程序设计:24%
          • 编码阶段:14%
          • 其他:6%      
      • 软件测试阶段划分
        • 单元测试

          • 单独功能进行测试  
          • 依据:详细设计文档
          • 以黑盒测试(功能测试)为主,重点核心模块可以进行白盒测试(检查代码)
          • 可能需要编写驱动模块或桩模块
            • 驱动模块:模拟被测模块的上一级模块 
            • 桩模块:模拟被测模块的下一级模块
          • 在实际工程中,为了节约项目成本,单元测试经常只由开发人员完成  
        • 集成测试
          • 也叫组装测试,在单元测试的基础上,将所有的程序模块进行有序的,递增的测试
          • 主要验证程序单元或部件的接口关系(调用关系),逐步集成为符合要求的系统
          • 集成测试有很多版本,拿到一个新版本,必须先做一个冒烟测试
          • 冒烟测试:利用较少的时间(0.5-2天),较少的人(1-3人,经验更丰富)对软件的主要功能进行测试,主要判断该软件是否值得一测
          • 一个新版本的测试思路
            • 1.冒烟测试:判断是否值得测试
            • 2.返测:对发现的缺陷是否修复进行测试
            • 3.回归测试:对上一个版本的用例,在重新执行一遍,保证软件旧功能正确
            • 4.对新添加的功能进行测试   
        • 系统测试
          • 在真实或模拟系统运行的环境下,检查完整程序系统能否和系统(硬件,外设,网络,系统软件,支持平台)正确配置,连接,并满足用户需求。
          • 目的:验证和确认是否达到原始目标,对集成的硬件和软件系统进行测试
          • 对整个系统进行全面完整的过程
          • 在系统测试之前一般有“确认测试”
          • 确认测试:大型的冒烟测试+确认相关文档是否齐全(尤其是交给用户的文档) 
        • 验收测试
          • 用户接受度测试,用户体验测试,UAT(user acceptance test)
          • α测试:由最终的用户在开发的环境中,对软件进行测试(可以由开发方自主完成)
          • β测试:由最终的用户在实际的环境中,对软件进行测试使用
          • 对于没有固定用户群体的公共类软件(办公软件,游戏,输入法)一般存在公共测试,公测版本,让用户免费体验,发现bug,由用户反馈。
          •   
        •   
      • 软件测试模型
        • 概念:测试模型体现的是开发和测试的对应关系  
        • 常见模型
          • V模型(最重要的)

            •   
            • 优缺点
              • 优点:测试阶段明确,包括单元级和用户级,与开发关系明确
              • 缺点:容易理解成,测试只是开发后的一个工作,不符合越早测试和不断测试原则
            • 深入理解:
              • 越早测试:在编码前,需要对相关需求文档,开发文档进行测试,越早测试
              • 计划性:根据相关文档,在测试执行前编写各个阶段的测试计划,测试用例等    
          • W模型  
            •   
            • 双V,同样体现了开发和测试的对应关系
      • 软件测试的分类                                              

1.3 功能测试项目实训

2.1 JAVA程序设计

2.2 数据库技术

2.3 软件开发项目实训

3.1 功能测试工具QuickTest Professional

  熟练掌握功能测试自动化工具QTP ,学会使用VBScript编写测试脚本,提高测试效率

3.2 功能测试工具Qtp项目实训

3.3 白盒测试技术与白盒测试工具

4.1 性能测试工具LoadRunner

4.2Linux操作系统及网络环境

4.3 性能测试工具LR项目实训

4.4综合项目测试

原文地址:https://www.cnblogs.com/shuimohei/p/11949465.html

时间: 2024-11-14 11:07:54

<软件测试>软件测试的相关文章

软件测试概述

• 不论软件的生产者还是软件的使用者,均生存在竞争的环境中: 软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局. 用户为了保证自己业务的顺利完成,当然希望选用优质的软件. 软件带来错误的原因很多,具体地说,主要有如下几点: • 交流不够.交流上有误解或者根本不进行交流 • 软件复杂性 • 程序设计错误 • 需求变化 • 时间压力 • 代码文档贫乏 • 软件开发工具 什么是软件测试 软件测试就是在软件投入运行前,对软件需求分析.设计规格说明和编码的最终复审

软件测试——Peer Review

一.什么是peer review peer review是一种通过作者的同行来确认缺陷和需要变更区域的检查方法.需要进行同行评审的特定产品在定义项目软件过程的时候被确定并且作为软件开发计划的一部分被安排的进度. 二.背景 这周三老师在课上安排了peer review,每5-6个人一个小组,自己进行分工,并对样例软件进行peer review. 三.peer review的图解及分工 Moderator (主持人) 主持人的主要职责,在评审会前负责正规技术评审计划和会前准备的检查:在评审会中负责调

软件测试不再黑盒— threadingtest带来第二代白盒覆盖率技术

软件测试不再黑盒- threadingtest带来第二代白盒覆盖率技术 穿线测试对于测试界的一个重大创新在于,在白盒测试理论出现数十年以后,上海零一拼装信息技术有限公司结合在测试理论方面十余年的潜心研究,率先提出了第二代覆盖率技术,这绝对不是一个口号,而是ZOA真正对于白盒测试的理解以及对于标准第三方测试服务的深度理解经过数年的基础研究以及2年有余的研发而推出的达到商用标准的技术.现在先让我们温习下经典的测试理论: 1.测试方法论 黑盒功能测试法 黑盒功能测试法, 是把要测试的软件看成一个 "黑

[ 测试思维 ] 探索式软件测试

非常不错的关于探索式软件测试的学习资料 1.探索式测试简析 作者:微软 史亮 http://pan.baidu.com/s/1c2D4tAo 2.探索式测试白皮书 作者:淘宝 季哥 http://pan.baidu.com/s/1qYFNG3y

软件测试的方法-------基于直觉和经验的方法

定义:基于直觉和经验的测试方法,不是严格意义上的科学测试方法,带有一定的随机性,测试结果不够可靠,甚至可以看作是没有办法的办法.但是,软件测试是具有社会性,呈现一定的不确定性.这时,采用直觉和经验往往能够发挥更好的作用.   1.Ad-hoc测试方法和ALAC测试 1.1.自由测试(Ad-hoc Testing)强调测试人员根据自己的经验,不受测试用例的束缚,放开思路.灵活地进行各种测试. 1.2.ALAC,是Act-like-a-customer(像客户那样做)的简写,是一种基于客户使用产品的

软件测试

一个团队在做一个软件的时候,必定离不开软件的测试,首先就是找出代码的Bug,也就是软件的错误.缺陷.Bug也可以分解为症状.程序错误.和根本原因.症状即是从用户的角度看,软件出了什么问题.程序错误乃是从代码的角度看,代码的什么错误导致了软件的问题.根本原因,错误的根源,即导致代码错误的根本原因.另外,我们测试设计游两类方法:黑箱和白箱,所谓黑箱/白箱就是指软件测试设计的方法,不是软件测试的方法.黑箱指的是在设计测试的过程中,把软件系统当作一个"黑箱",无法了解或使用系统的内部结构及知识

软件测试笔记(一)理论篇

有句话是这么说的:能动手就别哔哔,尤其是在工作节奏堪比跑马的今天,大家都推崇实干精神,能解决问题就好,去他的理论.但是无可否认的是,良好的理论素养无论是解决工作中遇到的问题,还是未来的职业发展,都帮助甚大.本文整理汇总了软件测试行业中常见的一些测试理论,供大家参考. 1.软件测试按照测试分类有:黑盒测试和白盒测试. 黑盒测试 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用.在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,

软件测试本学期授课内容大致安排

总课时16次课,一次课2课时,实验课7次. 课程内容: 概述(2次课) 白盒测试技术(2次课) 黑盒测试技术(3次课) 软件测试流程.策略与管理(2次课) Web网站测试(2次课) 软件自动化测试(3次课) 性能测试(2次课) 实验内容: 实验1:测试的实例程序的设计 实验2:结构性测试 实验3:功能性测试 实验4:综合性测试 实验5:性能测试 其中实验1~3.5均要求在实验室完成,下课时由学委统一整理拷贝,提交给老师. 实验4由老师提出需求,6名同学左右同学担任开发2-3个小项目,其余同学担任

软件测试职业规划的思考

前言 入软件测试行至今已经8年多,承领导们的信任与重用,同事的支持与信任,我的职业发展算是相对较好,从入行到各类测试技术岗位,再到测试总监,每一步都刚刚好.最近在自身职业发展瓶颈,人生十字路口,静坐反思,重新审视个人规划与测试人员发展的这个问题,问回自己:你为什么做软件测试工程师?胡思乱想之下有了此文. 一.软件测试起源 网上有一些经典的软件事故,大家感兴趣可以自己搜索一下,我搜了几个列举如下: 简单总结:软件出现缺陷(BUG)导致经济或其他损失,因此有了软件测试. 由此可知软件测试目的:发现缺

你真的懂软件测试吗?

所谓金山银四,又是一波求职月,不安的因素在悸动.测试行业也是如此,作为软件测试员的我也在寻求更好的职业机会,软件测试岗同时也在做筛选,所谓优胜劣汰. 那么面临跳槽季,想在测试行业大展身手的你,真的懂软件测试嘛?小黑板,划重点~ 1.基础知识掌握 这部分,属于对自身的基础能力考查.也是进入测试行业的标准,包括:软件测试原理.软件测试的测试方法了解(刚入行,先了解起来).掌握常见的测试工具(如:UI自动化测试工具TestWriter.开源测试工具QTP.selenium等)等. 2.测试流程掌握 新