前言

在我们使用各种App访问各个网站时,偶尔会出现软件崩溃,加载缓慢,或者出现报错的情况,而这两年,我们也见过了很多大厂的App出现问题,比如美团外卖,比如阿里云和微信都出现过问题,而要避免出现上述这些大的问题,就需要我们在软件上线之前尽可能的发现软件的问题,这就是我们所说的测试,即对软件进行测试,发现问题找到原因就是我们软件测试的目的。

软件缺陷

在了解什么是软件测试之前,我们先要了解一下软件缺陷,因为软件测试的目的就是找到软件缺陷,找到原因,并协助解决。

软件缺陷:就是我们熟知的“Bug”。即计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。

缺陷的表现形式:

  • 软件没有实现产品规格说明书所要求的功能模块;

  • 软件中出现了产品规格说明指明不应该出现的错误;

  • 软件实现了产品规格说明中没有提到的功能需求;

  • 软件没有实现虽然产品规格说明没有明确提及但应该实现的目标;

  • 软件难以理解、不易使用、运行缓慢、用户体验不友好。

产生软件缺陷的原因:

  • 需求不清晰;

  • 系统结构较为复杂;

  • 对程序逻辑路径或者数据范围考虑不全面;

  • 确保设计时间的精准同步;

  • 存在系统性、可靠性的隐患问题;

  • 系统运行环境的复杂;

  • 通信端口较多时影响系统的安全性、适用性;

  • 设计技术系统兼容的问题。

软件测试

定义:软件测试是为了发现错误而执行程序或系统的过程。

软件测试应该遵循以下原则:

  • 全面性:覆盖所有可能情况和用例,包括正常和异常情况。

  • 独立性:测试应该独立于开发,由专门的测试团队或者专业测试人员进行。

  • 早期开始:测试应该从软件开发的早期阶段就开始,早发现缺陷,成本更低。

  • 缺陷集中:当发现缺陷时,应集中在问题的根源而不是表面修复,以避免同类问题再次出现。

  • 尽可能自动化:使用自动化测试工具提高效率、减少人为错误。

  • 持续改进:测试流程和策略应不断改进,以适应不断变化的软件和需求。

软件测试策略

软件测试策略是软件工程过程的一个软件测试的模板,也就是把特定的测试用例方法放置进去的一系列步骤:

软件测试包含的特征:

  • 测试从模块层开始,然后扩大延伸到整个基于计算机的系统集合中;

  • 不同的测试技术适用于不同的时间点;

  • 测试由开发人员及独立的测试组来管理的;

  • 测试和调试是不同的活动,但是调试必须能够适应任何测试策略。

软件测试的分类

软件测试有多种分类方法,我们这里介绍几种常用的分类法:

软件开发阶段划分

  1. 单元测试

指对软件中的最小可测试单元进行检查和验证,单元测试需要从软件的内部结构出发设计测试用例。多个模块可以独立地进行测试。

  1. 集成测试

组装测试/联合测试:将所有模块按照设计要求组装成子系统或者系统进行集成测试。

  1. 系统测试

将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试 和确认测试,系统测试是针对整个产品的测试。

  1. 验收测试

交付测试:确保软件准备就绪。

按测试技术划分

  1. 白盒测试:结构性测试/透明盒测试/逻辑驱动测试/基于代码的测试。

  2. 黑盒测试:功能测试:通过测试每个功能是否都能正常使用。

  3. 灰盒测试:介于白盒测试和黑盒测试之间的一种测试方法:不仅关注输出、输入的正确性,同时也关注程序内部的情况。

被测试软件是否实际运行划分

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

  • 对于代码测试:主要测试代码是否符合相应的标准和规范;

  • 对于界面测试:主要测试软件的实际界面与需求中的说明是否相符;

  • 对于文档测试:主要测试用户和需求说明是否符合用户的实际需求。

  1. 动态测试:指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性、健壮性等性能。

测试类型划分

  1. 功能测试,主要针对产品需求说明书对软件进行测试,验证软件功能是否符合需求,包括对原定功能的检验以及测试软件是否存在冗余功能、遗漏功能。

  2. 界面测试,主要对系统的界面进行测试,测试用户界面是否友好,软件是否方便易用、系统设计是否合理、界面位置是否正确等问题。

  3. 性能测试,主要测试系统的性能是否满足用户需求,即在特定的运行条件下验证系统的能力状态。性能测试主要是通过自动化的测试工具模拟正常、峰值、异常负载状况、对系统的各项性能指标进行测试。

  4. 强度测试,迫使系统在异常的资源配置下运行。目的是找出因资源不足或者资源争用而导致的错误。

  5. 压力测试,主要是在超负荷环境中,检验系统是否能够正常运行。

  6. 安全测试,测试系统防止非法入侵的能力。

  7. 兼容性测试,测试软件产品在不同的平台、不同的工具软件或者相同工具软件不同的版本下的兼容性。

  8. 安装测试,主要校验软件是否可以正确安装、安装文件的各项设置是否有效、安装后是否影响整个计算机系统、卸载软件时是否可以卸载干净、卸载软件之后是否影响整个计算机系统。

  9. 文档测试,主要检查内部或外部文档的清晰性和准确性。

软件测试过程模型

  1. V模型

  1. W模型

  1. H模型

  1. X模型

总结

软件测试是确保软件质量的重要环节,它不仅关乎产品的稳定性和用户体验,也直接影响到企业的声誉和利益。了解基本的软件测试原则、对象和作用,以及缺陷的种类和影响,对于我们学习软件测试非常重要。

举报/反馈

斯莱特林ceshiren

13获赞 2粉丝
分享测试开发工程的日常
关注
0
0
收藏
分享