zoukankan      html  css  js  c++  java
  • 关于软件测试的基础知识

    什么是测试?

    测试是为了发现错误而执行一个程序或者系统的过程。

    测试的基本过程:
    用户需求→需求分析→概要设计→详细设计→编码和实现→测试→运行维护

    测试和调试的区别:

    测试是破坏性的,调试是建设性的。

    测试的基本原则:

    1、测试可以显示缺陷的存在;

    2、穷尽测试是不可能的;

    3、测试要尽早介入;

    4、测试对象中发现的80%的缺陷来自20%的模块;

    5、同样的测试用例被重复使用多次,将不能发现新的缺陷;

    6、测试活动依赖于测试对象的背景;

    7、不存在缺陷并不代表是有用的系统。

    代码检查包括代码走查、代码审查等

    软件质量包括六个方面:功能性、可靠性、易用性、效率、可维护性和可移植性。

    静态测试是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。

    动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。

    白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。

    黑盒测试:是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收和正确的输出。

    软件测试的方法:
    (1)按程序内部结构:黑盒测试、白盒测试
    (2)按运行程序:静态测试、动态测试
    (3)按阶段划分:单元测试、集成测试、系统测试、验收测试

    白盒测试中的逻辑覆盖方法有以下6种:
    语句覆盖:使程序中每个可执行语句至少执行一次
    判定覆盖:使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。
    条件覆盖:使每个判断中每个条件的可能取值至少满足一次。
    判定-条件覆盖:使得判断条件中的所有条件可能至少执行一次取值,同时,所有判断的可能结果至少执行一次。
    条件组合覆盖:使得所有可能的条件取值组合至少执行一次。
    路径覆盖:覆盖程序中的所有可能的执行路径。
    语句覆盖:A:T,B:T(A^B=T)
    判定覆盖:A:T,B:T ; A:F,B:F ; (A:T,B:F ; A:F,B:T)(A^B=T;A^B=F)
    条件覆盖:(A=T,A=F;B=T,B=F)
    判定条件覆盖:(A^B=T,A^B=F,A=T,A=F,B=T,B=F)

    黑盒测试有两种基本方法,即通过测试和失败测试。
    黑盒测试的测试用例设计方法
       等价类划分方法
       边界值分析方法
       错误推测方法
       因果图方法
       判定表驱动分析方法
       功能图分析方法
    等价类划分可有两种不同的情况:有效等价类和无效等价类。

    灰盒测试,把软件当做黑盒测试,但是通过简单查看软件内部工作机制作为补充。

    基本路径测试法包括以下5个方面:
    程序的控制流图:描述程序控制流的一种图示方法。
    程序环形复杂性:环形复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本独立路径数目边。
    导出测试用例:通过程序的控制流图导出基本路径集,列出程序的独立路径。
    准备测试用例,确保基本路径集中的每一条路径的执行。
    图形矩阵:是在基本路径测试中起辅助作用的软件工具,利用它可以实现自动地确定一个基本路径集。

    复杂度V(G)=链数-节点数+2

    bug的级别:致命,严重,一般,建议。
    bug有哪些内容:标题,新建人,状态,级别,系统版本,指派人,模块,提交日期,详细内容。
    bug的生命周期:新建、打开、待验、解决、关闭

    开发的流程:
    1、可行性分析和项目开发计划
    2、需求分析
    3、概要设计
    4、编码
    5、测试
    6、维护
    产生的文档:可行性分析报告、项目开发计划

    测试过程:
    1.单元测试
    2.集成测试
    3.系统测试
    4.验收测试:包括alpha和beta测试

    alpha测试是在用户组织模拟软件系统的运行环境下的一种验收测试,由用户或第三方测试公司进行的测试,模拟各类用户行为对即将面市的软件产品进行测试,试图发现并修改错误。

    Beta测试是用户公司组织各方面的典型终端用户在日常工作中实际使用beta版本,并要求用户报告异常情况,提出批评意见。

    测试阶段:

    单元测试:完成对最小的软件设计单元模块的验证工作,只有在保证模块作为一个独立运行单元能够正确运行的条件下,后续的测试才可能进行。单元测试通常情况下是面向白盒的。

    集成测试:把经过单元测试的模块按软件结构组合在一起作为一个系统或一个子系统来综合测试。

    系统测试:测试软件系统和其他的系统元素组合后成完整的计算机应用系统的功能、性能、执行强度、安全性等是否达到规定标准。

    验收测试:根据产品规格说明书严格检查产品,确保开发的软件产品符合用户的各方面要求。

    性能测试指标:
    响应时间:从应用程序发出请求开始,到客户端接收到最后一个字节数据为止所消耗的时间。
    并发用户数:同一时间段内访问系统的用户数量。
    吞吐量:单位时间内系统处理的客户请求数量。
    性能计数器:描述服务器或OS性能的一些数据指标,如CPU、内存占用率等。

    无须多想只要懂怎么去拼命
  • 相关阅读:
    Docker生态会重蹈Hadoop的覆辙吗?
    刘志强博士:专业涵养 奉献情怀
    Sublime Text3前端必备插件
    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解
    jvm的stack和heap,JVM内存模型,垃圾回收策略,分代收集,增量收集(转)
    Eclipse安装MAT插件
    tomcat内存泄漏存入dump文件
    CSS中behavior属性语法简介
    get/post时中文乱码问题的解决办法
    Java序列化的机制和原理
  • 原文地址:https://www.cnblogs.com/dearflt/p/9381899.html
Copyright © 2011-2022 走看看