测试方法
黑盒测试
黑盒测试通过软件的外部表现来发现缺陷和错误。黑盒测试方法把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程,仅针对程序是否能适当地接收输入数据、是否能产生正确的输出信息等进行测试。
白盒测试
通过对程序内部结构的分析与检测来寻找软件问题的方法称为白盒测试,又称结构测试。白盒测试可以把程序看成是一个装在透明的白盒子里的代码,测试人员清楚地了解程序的内部结构和处理过程,通过检查程序的内部结构及逻辑路径是否正确、检查软件内部动作是否符合软件设计说明书的规定来发现程序中的缺陷。
灰盒测试
灰盒测试是介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的正确性,同时也关注程序内部表现,但这种关注不像白盒测试那样详细和完整,只是通过一些表面的现象、事件和标志来判断程序内部的运行状态。因此,可以这样定义灰盒测试,灰盒测试是基于程序运行时的外部表现同时又结合程序内部逻辑结构来设计用例、执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。
测试手段
手工测试
手工测试有其不可替代的地方,因为人具有很强的判断能力,而工具没有。
手工测试不可替代的地方至少包括以下几点:
测试用例的设计:测试人员的经验和对错误的判断能力是工具不可替代的。
界面和用户体验测试:人类的审美观和心理体验是工具不可模拟的。
正确性检查:人们对是非的判断、逻辑推理能力是工具不具备的。
自动化测试
自动化测试通过编写测试代码来代替手工的重复性测试工作,对经常需要多次回归的测试用例进行代码化,可以提高测试效率、解放人力。为了使线上环境更加稳定,可以将软件的核心功能与业务脚本化,进行线上巡检,使线上生产环境更加稳定。
UI自动化测试:UI(User Interface,用户界面,亦称使用者界面)是指对软件的人机交互、操作逻辑、界面美观的整体设计,是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。 UI层的自动化测试工具非常多,比较主流的是QTP、Robot Framework、Watir、Selenium等,其中,Selenium是目前比较常用的UI自动化测试工具。
接口自动化:接口自动化容易实现,维护成本低,有着更高的投入产出比,是每个公司开展自动化测试的首选,目前接口自动化测试在企业中的应用越来越广泛。
单元自动化测试:单元自动化测试可以使用单元自动化测试工具或框架来实现,不同的语言其单元测试框架也不同,几乎所有的主流语言都有其对应的自动化测试工具或框架,如Java的Junit、testNG,C#的NUnit,Python的unittest、Pytest等。不过单元自动化测试对测试工程师的编码能力要求较高,大部分公司在这个层级都无法很好地推行自动化测试。