关于软件测试,你了解多少?
首先软件是什么 ?
软件是指为了满足一些应用场景而使用相应的计算机语言开发的运行于计算机、芯片、手机等电子设备上的计算机程序。在我们的日常生活中,这些软件无处不在。例如:遥控玩具、电子手表、智能电视冰箱、手机或电脑的操作系统、IDE、数据库、浏览器、各类小程序、12306购票网站、计算机病毒、某宝某东等等。
软件测试是什么?
软件开发过程包括需求、计划、设计、编码、测试、部署、维护这些阶段,测试是整个过程中非常重要的一个环节,是保证软件质量的重要手段。软件测试定义:使用人工或自动化的手段来运行或测试某个系统的过程,目的在于检查软件是否满足规定的需求或明确预期结果与实际结果之间的差别。
软件测试有哪些类型?
软件测试按照不同的标准有不同的划分方法,如按照程序是否执行划分、按照用例的设计方法划分、按照开发阶段划分、按照实施组织划分、按照是否使用工具划分、按功能非功能划分等。
1. 程序是否执行划分
静态测试 :测试被测试对象时,该对象未部署在相应的运行环境中,而是处于源代码状态,对源代码进行特性分析,静态测试通常会进行代码检查、静态结构分析、代码质量分析等。可以由人工或工具来进行,如常见的如代码扫描(sonar qube)、code review等
动态测试 :计算机程序必须被部署在相应的运行环境中,通过输入测试用例,对其各种使用场景进行测试判定期望结果是否与实际结果一致。动态测试一般包括功能确认、接口测试、覆盖率分析、性能分析、内存分析等等
2. 用例设计方法划分
黑盒测试 :该测试方法是把被测试程序看成一个黑盒子,并且测试人员站在用户的角度出发以产品需求为基准来设计测试用例,检查程序是否实现产品需求预期的各项功能并检查其中的错误。
白盒测试 :该测试方法是在了解程序内部实现细节的情况下,针对特定条件、状态、逻辑设计测试用例,对软件的逻辑路径进行测试。
3. 按开发阶段划分
单元测试 :主要针对每个程序模块进行测试,以确保它们能够正常工作。
集成测试 :对已测试过的模块进行组装,进行集成测试,目的是检验与软件设计相关的程序结构问题。
确认测试 :检验所开发的软件能否满足所有功能和性能需求。
系统测试 :检验软件产品能否与系统的其他组件协同,并保证所测试功能正常;
验收测试 :检验软件产品质量的最后一个环节,主要突出产品需求提供方的作用,同时软件开发人员也需要参加。
4. 按是否使用工具划分
手工测试 :指测试人员部署好被测试软件并根据测试用例的操作步骤执行测试用例,观察软件运行的实际结果与用例的期望结果。
自动测试 :指使用各种辅助测试工具通过运行事先设计好的脚本代码等,测试被测试软件并自动生成测试结果的测试活动,这样可以提高测试效率节省成本等。
5.按功能非功能划分
功能测试 :评估该软件是否符合预期产品功能需求而进行功能验证测试活动。
非功能测试 :评估软件是否符合预期产品中非功能需求而进行的测试活动。如:性能测试、安全性测试、等。
性能测试 :一种非功能测试类型。概念:在特定的测试环境中,采用技术手段模拟真实用户访问被测试应用,以便考察被测试应用在资源使用率、扩展性、可靠性、突发性等方面性能指标的测试活动。
安全测试 :也是一种非功能测试类型。概念:在整个软件生命周期中,检验软件产品是否符合安全需求定义、产品质量标准的测试活动。