软件测试面试题 (一)

软件测试是干什么的?

软件测试包括评估和验证软件产品的功能。一般来说,它用于检查软件产品是否符合预期的需求,并确保产品没有缺陷。软件测试是通过预防缺陷、降低开发成本和减少性能问题,目的是提升产品的质量。

软件测试的分类有哪些?

软件测试可以通过许多不同的方式进行。一些测试由软件开发人员执行,而一些则由专门的质量保证人员负责。软件测试两种类型:功能测试和非功能测试。

功能测试包含:单元测试、集成测试、系统测试、界面测试、回归测试和用户验收测试;

非功能测试包括:文档测试、安装测试、可靠性测试、安全性测试和性能测试,其中性能测试又包括:负载测试、压力测试、耐久性测试和尖峰测试。

软件测试类型及工作内容

单元测试:对代码中的独立单元(如函数、方法)进行测试,以确认其功能的正确性。

集成测试:测试不同软件模块之间的交互,以确保它们集成后能够正常工作。

回归测试:确保由于新代码更改而不会破坏过去正常工作的现有功能/特性。

系统测试:对完整软件进行端到端测试,以确保整个系统按预期工作。

冒烟测试:快速测试,确保软件在最基本的层面上能够工作,并且在启动时不会崩溃。其名称源自硬件测试,其中简单插入设备并查看是否冒烟。

性能测试:通过检查在特定负载和环境下的响应时间和吞吐量,确保软件按用户期望的性能运行。

用户验收测试:确保软件满足客户或用户的需求。这通常是软件上线前的最后一步,即进入生产环境。

压力测试:确保在负载增加时,软件性能不会下降。在压力测试中,测试人员会将软件置于大量请求或严苛内存条件下,以验证其是否能够正常运行。

可用性测试:评估软件的可用性。通常由一组样本终端用户执行,他们使用软件并提供关于软件使用易或难的反馈意见。

安全测试:比以往任何时候都更为重要。安全测试试图破解软件的安全检查,以获取机密数据。对于基于网络的应用程序或涉及资金的任何应用程序,安全测试至关重要。