功能测试与非功能测试

功能测试包含哪些测试?

什么是功能测试服务?

软件测试中的功能测试是将软件系统的实际输出与预期行为进行了对比。功能测试提供的有关系统的整体情况要比单独测试单个模块更为清晰。系统频繁出现错误的地方正是模块之间交互的领域。功能测试包括测试底层代码的部分。

功能测试的类型:
  • 单元测试(又被称为非功能测试)
  • 集成测试
  • 用户验收测试
  • 封闭测试

功能测试基本测试方法  

  1. 单元测试
    • 单元测试的特点:API应用程序下的单元测试可能会对部署在测试环境中的系统发出请求,并将请求响应与文档规范进行对比。不过单元测试也有自身的局限性。当应用程序在功能方面出现偏差或回归时,通常只有在应用程序内执行的功能测试会检测到这些变化,而单元测试则检测不到。
  2. 集成测试
    • 集成测试的目的:集成测试验证了软件模块是如何协同工作的。当开发人员将代码编写为松散耦合的模块时(通常应该是这样),组件则依赖于显现契约来进行交互。集成测试验证了软件的每一部分是否履行合同约定,并在这些交互引入回归时生成警告。  
  3. 用户验收测试
    • 用户验收测试的主要目的:软件测试中的用户验收测试:在软件测试的用户接收阶段,开发人员会为终端用户或其代表提供应用程序的部分或全部,来展示其在真实世界的交互和功能运转。
  4. 封闭式测试
    • 封闭测试是什么?功能测试还包括对整个应用程序的封闭测试。封闭式测试是在不检查系统内部运行的情况下全面地处理应用程序的输出请求。许多测试工程师在编写功能测试方案时都倾向于使用封闭测试来完善软件测试非功能测试部分。在封闭测试中,与软件系统最外层交互的代码会被执行自动化测试,而且工程师也只评估代码输出。封闭式测试流程对于只需要执行API测试的应用程序来说简单易行,因为代码只需进行API调用和做结果评估。
    • 软件封闭测试:当封闭式测试用于有用户界面的应用程序时,软件测试流程就会变得越来越复杂。解决这个难题的一种方法是使用像Selenium这样先进的测试工具。这种测试工具允许代码与应用程序交互,正如用户与web浏览器之间的交互一样。Selenium及其类似的工具在将用户验收测试自动化的同时也提高了测试的可靠性。

非功能性测试有哪些

什么是非功能性测试?

软件测试之非功能性测试用于评估相对功能而言不太重要但有利于提高终端用户体验的应用程序属性。欠载状态下的性能和可靠性虽不是软件系统的组成部分,但无疑会影响用户体验的成败。非功能测试中的失败并不总会产生一些能让用户可能会注意到的问题,但它会表明系统存在着问题。  

非功能测试的类型:
  • 性能测试
  • 负载测试
  • 可用性测试
  • 安全测试

非功能测试的测试方法

  1. 性能测试
    • 性能测试的作用:在非功能测试类型中一个必不可少的流程就是性能测试。性能测试确保软件系统能够及时响应请求。糟糕的延迟会破坏用户体验,而一份书写良好的软件性能测试用例往往会在用户察觉之前就发现问题。
  2. 负载测试
    • 什么是负载测试?负载测试也是非功能测试的一种。鲜有系统能在每秒响应一个请求下与每秒响应10000个请求时执行相同的操作。负载测试验证了系统是否能够处理峰值负载,并在缺乏处理工作负载峰值资源的情况下坦然面对失败。
  3. 可用性测试
    • 可用性测试的必要性:可用性测试是用来衡量用户体验的质量。在大多数情况下,产品可用性测试是一个手动执行的过程,但适用范围有限。如果在应用程序本地化过程中缺少了可用性测试,用户界面就会出现混乱且不直观的情况。可用性测试在软件开发过程中还是必不可少的。
  4. 安全性测试
    • 安全性测试的必要性:安全测试也是非功能测试的一种。测试团队应该定期测试他们负责的应用程序,以确保它们的安全性以及能正确地处理数据。安全测试的主要内容包括从自动扫描到定期渗透测试等,具体方法取决于应用程序暴露于潜在威胁的程度。

功能测试和性能测试的区别与联系

功能测试需要确认的是代码有否正常运行,而非功能测试则验证了代码是否按软件规范标准运行。功能测试和非功能测试都包含了可用于验证前端元素和后端元素及其行为的方法。在开发人员可能运行的测试类型分类中,功能与非功能测试间会有一些重叠。

参数功能测试非功能测试
定义功能测试验证应用程序的操作和行为过程。非功能性验证应用程序的性能。
测试基于基于客户的要求基于客户的期望
目标验证软件的功能验证软件系统的性能
必要条件功能测试的执行需参照功能规范要求。非功能测试的执行需参照性能规范要求
功能性描述了产品的功能描述了产品的工作原理
测试方法单元测试
集成测试
健全测试
冒烟测试
回归测试
性能测试
负载测试
压力测试
容量测试
可用性测试

IT英语单词合集

底层代码英文Underlying code
请求响应英文Request response
松散耦合模块Loosely-coupled modules
显现契约Explicit contracts
封闭测试英文Closed-box testing
功能组件英文Functional components
延时的英文Latency
手动执行英语Manual executive
负载英文Load

Author: Maha

我是Wintesting中国站的 Maha,目前职位是市场营销&内容经理,负责CN Wintetsing网站内容的设计、编写与发布,同时还监管国内市场营销工作。与此同时,我也是一名IT培训教员,我的教育背景和所从事的行业都是与IT工程师行业及信息通信技术相关。此外,除了编写中英双语的新兴技术文稿外,我还是一名IT翻译工作者,累积翻译字数逾近10万,涉及的领域有大数据、人工智能、IoT、机器学习、云计算、AR&VR、计算机网络技术、计算机网络安全技术、应用程序测试、软件测试、系统测试、网络测试及IT基础设施等。如果你需要相关领域的内容编写或翻译工作请联系我。