软件测试基础知识(2)——软件测试分类详介(上)
黑盒测试与白盒测试
黑盒测试也是功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据和输出数据。
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是指打开盒子,去研究里面的源代码和程序结果。
白盒测试也是接口测试的一种。
灰盒测试是介于白盒测试和黑盒测试之间的一种,灰盒测试多用于集成测试阶段,不仅关注输入、输出的正确性,同时也关注程序内部的情况。
单元测试(Unit Testing)
单元测试,又称模块测试。对软件的组成单位进行测试,其目的是检验软件基本组成单位的正确性。测试的对象是软件测试的最小单位:模块。
-
测试阶段:
编码后或者编码前
-
测试对象:
模块
-
测试人员:
白盒测试工程师或开发人员
-
测试依据:
代码和注释+详细文档
-
测试方法:
白盒测试
-
测试内容:
模块接口测试、局部数据测试、路径测试、错误处理测试、边界测试
集成测试(Integration Testing)
单元测试是一个模块内部的测试,集成测试是在模块之间进行测试(至少两个)
-
测试阶段:一般是单元测试之后
-
测试对象:模块间的接口
-
测试人员:白盒测试工程师或开发工程师
-
测试依据:单元测试的文档+概要设计文档
-
测试方法:黑盒测试与白盒测试(灰盒测试)
-
测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能的正确性、全局数据结构、单模块缺陷对系统的影响
系统测试(System Testing)
-
测试阶段:集成测试阶段之后
-
测试对象:整个系统(软件、硬件)
-
测试人员:黑盒测试工程师
-
测试依据:需求规格说明文档
-
测试方法:黑盒测试
-
测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
系统测试是从完整的角度,广面去看待问题,不再看模块
虽然系统测试包括冒烟测试和回归测试,但三者之间是有严格的先后顺序的,即:先冒烟、再系统、后回归。
软件测试基础知识(3)——软件测试分类详介(中)
回归测试与冒烟测试
回归测试:指修改了旧的代码之后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
在整个软件测试过程中占有很大的工作比重,软件开发的各个阶段都会进行多次回归测试。随着系统的庞大,回归测试的成本越来越大,通过正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。
冒烟测试:该术语来自硬件,指对一个硬件或一组硬件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试,也可以理解为该种测试耗时短,仅用一袋烟的功夫就足够了。
验收测试(Acceptance Testing)
-
测试阶段:系统测试通过后
-
测试对象:整个系统(包括软硬件)
-
测试人员:主要是最终用户或者需求方
-
测试依据:用户需求、验收标准
-
测试方法:黑盒测试
-
测试内容:同系统测试(功能、各类文档文档等)
针对买回来的新手机以及它的美颜功能来进行测试。
-
当买回来的手机,它的美颜功能有问题时,我们只针对美颜功能的代码进行测试,就是单元测试。
-
对于新买回来的手机,检测手机通讯录是否可以增添、删除、更改手机号码,打电话时需要手动的输入电话,也可以在手机中查找,这就是集成测试。
-
新手机都会有一个合格标签,原因是出厂前手机厂商会对某一个型号的手机功能全部测试一遍,包括手机硬件本身,手机自带的APP等,这个叫系统测试。
-
当修好新买回来的手机的美颜功能以后,用户除了会查看美颜功能是否完好,还会查看其他功能是否也完好,这个叫回归测试。
-
对于新买回来的手机,我们做的第一件事是将常用的手机功能试一遍,第二件事情就是讲所有功能都试一遍,这个叫冒烟测试。
-
对于新买回来的手机,一般都有7天包退,30天包换,我们一般都是在7天内把手机的所有功能都试一遍,这叫验收测试。
软件测试基础知识(4)——软件测试分类详介(下)
静态测试(Static testing)
静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。
动态测试(Dynamic testing)
动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性、健壮性、等性能。
动态测试有三部分组成:构造测试用例、执行程序、分析程序的输出结果。大多数软件测试都属于动态测试。
手工测试(Manual testing)
手工测试是由人一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一种。
-
优点:
自动化测试无法代替探索性测试、发散思维类无既定结果的测试。
-
缺点:执行效率慢,量大易错。
自动化测试(Automation Testing)
自动化测试,就是在预设条件下运行系统或应用程序,评估运行结果。简单来说,自动化测试就是是把人为驱动的测试行为,转化为机器执行的一种过程。
自动化测试有:测试自动化、性能测试自动化、安全测试自动化。(一般情况下,我们说的自动化是指功能测试的自动化)
自动化测试按照测试对象来分,还可以分为接口测试、UI测试等。接口测试的产出投入比要比UI测试高。
性能测试
通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
目标对产品的性能进行测试,检验是否达标、是否能够保持。指标包括并发用户、响应时间、吞吐量、资源利用率等。
负载测试
数据在超负荷环境下运行,测试软件系统是否能够承担。这种超负荷主要指多并发用户。一般使用自动化工具,人为生成大数据量,利用工具模拟频繁并发访问。主要考察响应时间、交易容量、资源使用率等
压力测试
指系统不断施加越来越大的负载(并发,循环操作,多用户,网络流量)的测试,通过确定一个系统的瓶颈或者不能接收的性能点,来确定系统能提供的最大服务级别的测试
兼容性测试
测试软件在一个特定的硬件、软件、操作系统、网络等环境下系统能否正常运行,检验被测软件对其他应用软件或者其他系统的兼容性。
持续分享工业领域相关知识:
易择扣得EasyCode专注于工业领域智能化、自动化研发。