zoukankan      html  css  js  c++  java
  • 软件测试概述

    1.软件测试的概念及分类

    软件测试的定义:
    通过手工或自动化的手段来运行或测定某个软件产品系统的过程,目的在于检测软件产品是否满足规定的需求,或者弄清楚预期结果与实际结果之间的差别。

    软件测试基本介绍:

    软件测试的目的

    1.是为了发现程序中存在的错误而执行程序;
    2.是为了证明程序有错,而不是证明程序无错误。

    软件测试工作流程:

    软件测试的阶段划分:

    软件测试类型划分:

    • 功能测试
    • 用户界面测试
    • 兼容性测试
    • 安装、卸载测试
    • 安全性和访问控制测试
    • 故障转移和恢复测试
    • 性能测试
    • 分布测试

    功能测试:
    测试软件各个功能模块处理是否正确,业务逻辑是否正确,数据流转、呈现、处理和存储是否正确。

    用户界面测试:
    测试用户界面是否美观,界面设计是否人性化、易操作,提示是否友好完善,不同
    屏幕分辨率下各界面显示是否正确、美观,软件支持的不同语言版本下,各界面显示的文字是否正确、美观等。

    兼容性测试:
    主要测试浏览器兼容性、操作系统兼容性、硬件兼容性。

    安装、卸载测试:
    正常情况下软件安装完成后可以正常运行,可以完全卸载;
    用户无权限、硬件资源不满足等异常情况下能够给出准确的提示信息。

    安全和访问控制测试:
    分应用程序级别、系统级别两个层次。

    应用程序级别主要是用户登录、数据和功能权限控制的正确性。
    系统级别主要是服务器的访问控制和用户权限设置。
    故障转移和恢复测试:

    主服务器不能服务—>备用服务器接管服务
    主服务器恢复服务—>备用服务器停止服务
    性能测试:
    包括负载测试、压力测试、并发测试、可靠性测试、失效恢复测试等。

    发布测试:
    测试软件产品附带的各种说明书、帮助文档等。

    2.软件测试入行指导和职业发展之路

    软件测试入行要掌握的知识和技能
    测试从业人员的持续学习
    测试从业人员职业发展之路
    软件测试入行要掌握的知识就和技能:

    软件测试相关的概念、术语、测试工作流程
    与人沟通、表述看法的能力
    测试用例设计方法
    基本的程序逻辑结构
    基本的数据库操作
    服务器日志查看方法
    测试从业人员的持续学习:

    软件所服务行业的业务知识
    公司软件测试涉及的相关工具
    提高个人工作效率和质量的工具
    提高测试团队工作效率的方法或工具


    测试产业人员职业发展之路:

    3.软件测试的生命周期及原则

    • 软件测试的生命周期
    • 软件测试的原则

    软件测试的生命周期:

    软件测试的基本原则:
    站在用户的角度,从需求出发,对软件进行全面的、深入的测试,尽早、尽可多地发现Bug,并跟踪和分析软件中存在的问题,对不足之处提出质疑和改进意见。

    软件测试的具体原则:
    1、准备详尽的测试工作计划,并及时维护。
    2、所有测试的标准都应该建立在需求之上。
    3、事先定义好产品的质量标准,并不遗余力的去执行。
    4、尽可能早的开始测试工作。
    5、避免让程序员测试自己的程序。
    6、测试用例是设计出来的,不是写出来的。
    7、对发现错误较多的程序段,应进行更深入的测试;对于出错多的程序员编写的程序同样需要给予特别关注。

    4.常用的软件测试模型

    模型的概念:
    通过主观意识借助实体或者虚拟表现、构成客观阐述形态、结构的一种表达目的的物件。在软件行业来说就是:对系统实现步骤或系统知识的抽象表示。

    模型的作用:

    参与构造软件的人员之间沟通的基础
    指导具体的软件实现过程
    管理者制定相关工作计划的基础
    常用的软件测试模型:

    V模型
    W模型
    X模型
    H模型

    V模型:

    W模型:

    X模型:

    H模型:

    5.软件测试的阶段划分

    • 软件测试的各个阶段
    • 软件测试各阶段工作重点

    软件测试的各个阶段:

    单元测试:
    单元模块内的功能测试、边界测试、容错测试、界面测试、控制流和数据流测试,以及模块内的业务流程测试等。

    集成测试:
    系统集成以后的相关接口测试、功能测试、容错测试、约束测试,跨模块的业务流程测试等。

    系统测试:
    系统性的初始化测试、功能测试、业务处理和数据处理测试、性能测试、压力测试、安装卸载测试等。

    验收测试:
    在用户现场和用户一起对系统进行功能确认、用户需求确认、备份恢复测试、安全性测试等。

    回归测试:
    系统使用过程中发现问题修改完成以后,测试对应的问题是否修改好了,测试新修改的功能是否引发新的缺陷,测试与修改代码相关的其它程序功能是否依然正确。

    边界值:

    什么是边界? 边界是指对于输入等价类和输出等价类而言,稍高于其边 界值及稍低于其边界值的一些特定情况。 边界值分析法也是一种常用的黑盒测试方法。

    • 如何解决这类问题 • 找到测试数据的边界点,也就是有效等价类和无效等价 类的边界点,对边界点数据专门进行测试。 • 一般情况下,需要对边界值(0和100)以及边界值两 边的数(-1和1以及101和99)分别进行测试。

    题目:输入的参数值必须大于等于0同时小于等于100的整数 正确代码: num>-1或num>=0 num<101或num<=100 错误代码: num>=-1或num>0或num>=1 num<=101或num<100或num<=99 选中了-1 选中了1 选中了101 选中了99

     边界值 • 确定边界情况(输入或输出等价类的边界) • 选取正好等于、刚刚好大于或刚刚好小于边界值作为测试数据 • 边界值的取值依据输入范围区间不同而有所不同,但是都需要 把上点值、离点值和内点值取到。(闭两边、开中间)

    边界值的方法小结  

    • 1、如果输入条件规定了值的范围,则应取刚到到这个范围的边界值,以及刚刚超 越这个范围边界的值作为输入数据。

    • 两位整数加法器数的范围为-99—99,则应测试-99,-100和99,100

    • 2、输入条件规定了值的个数 • 姓名要求1—20个字符,需要测试0、1、2个字符和19、20、21个字符

    • 某商品信息查询系统,每页最多显示10条商品信息,我们就应该准备商品信息,使能够 查询出9、10条、11条、1条、0条商品记录

    • 边界值和等价类区别:边界值分析不是从某等价类中随便挑一个作为代表,而是这个等 价类的每个边界都要作为测试条件

    因果图和判定表:

    检查程序输入条件的各 种组合情况

    • 特点:

    • 考虑输入条件的相互制约及组合关系

    • 考虑输出条件对输入条件的依赖关系 

    因果图的核心

    • 因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。 所谓的原因就是输入,所谓的结果就是输出。

    • 因果图的“因”——输入条件

    • 因果图的“果”——输出结果

    • 因果图法要注意考虑:

    • 所有输入/输出条件的相互制约关系以及组合关系

    • 输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生怎样 的输出结果,即“因果关系

     

     

     

     

     

     

     

  • 相关阅读:
    [LeetCode] Sqrt(x)
    [LeetCode] Rotate Array
    【经典算法】贪心算法
    【经典算法——查找】二分查找
    ARP(Adress Resolution Protocol): 地址解析协议
    【经典算法】分治策略
    [LeetCode] Recover Binary Search Tree
    [LeetCode] Convert Sorted Array to Binary Search Tree
    python数据类型之字典(dict)和其常用方法
    简单了解hash
  • 原文地址:https://www.cnblogs.com/Martinaoh/p/13070402.html
Copyright © 2011-2022 走看看