上一章软件工程教程请查看:软件实现
软件测试是根据从用户和系统规范收集的需求对软件进行的评估。测试是在软件开发生命周期的阶段级或在程序代码的模块级进行的。软件测试包括验证和验证。
软件确认确认是检查软件是否满足用户需求的过程,它在SDLC结束时执行,如果软件符合它的需求,就进行验证。
- 验证确保所开发的产品符合用户需求。
- 验证回答了这个问题——“我们正在开发的产品能够满足用户对这个软件的所有需求吗?”
- 验证强调用户需求。
- 验证确保所开发的产品符合设计规范。
- 验证回答了这个问题——“我们开发这个产品是严格遵循所有的设计规范吗?”
- 验证集中在设计和系统规范上。
- 错误——这些是开发人员实际犯下的编码错误。另外,软件的输出与期望的输出存在差异,被认为是一种错误。
- 错误-当错误存在时,错误发生。错误,也称为bug,是导致系统失败的错误的结果。
- 失败——失败被认为是系统无法执行期望的任务。当系统中存在故障时,就会发生故障。
- 手动——此测试在没有借助自动化测试工具的情况下执行。软件测试人员为代码的不同部分和级别准备测试用例,执行测试并向经理报告结果。
- 自动化测试是在自动化测试工具的帮助下完成的测试过程。使用自动化测试工具可以克服手工测试的限制。
有软件和硬件工具可以帮助测试人员进行负载测试、压力测试、回归测试。
测试方法测试可以基于两种方法进行
- 功能测试
- 实现测试
【软件测试概述 – 软件工程教程】穷举测试是完美测试的最佳方法。测试输入和输出值范围内的每个可能值。如果值的范围很大,就不可能在实际场景中测试每一个值。
黑盒测试
它用于测试程序的功能。它也被称为“行为”测试。在本例中,测试人员有一组输入值和各自想要的结果。在提供输入时,如果输出与期望的结果匹配,则程序将被测试为“ok”,否则就会出现问题。
文章图片
在这种测试方法中,测试人员不知道代码的设计和结构,测试工程师和最终用户对软件进行测试。
黑盒测试技术:
- 等价类——输入被分成相似的类。如果一个类的一个元素通过了测试,则假定所有的类都通过了。
- 边界值-输入被分成更高和更低的结束值。如果这些值通过了测试,则假定中间的所有值也可以通过。
- 因果图-在前两种方法中,一次只测试一个输入值。原因(输入)-效果(输出)是一种测试技术,其中输入值的组合以一种系统的方式进行测试。
- 成对测试——软件的行为取决于多个参数。在成对测试中,对多个参数的不同值进行成对测试。
- 基于状态的测试——系统根据输入的提供改变状态。这些系统根据它们的状态和输入进行测试。
它用于测试程序及其实现,以提高代码的效率或结构。它也被称为“结构”测试。
文章图片
在这种测试方法中,测试人员知道代码的设计和结构。代码的程序员对代码执行这个测试。
以下是一些白盒测试技术:
- 控制流测试——控制流测试的目的是建立覆盖所有语句和分支条件的测试用例。测试分支条件是否为真和假,以便覆盖所有语句。
- 数据流测试——这种测试技术强调覆盖程序中包含的所有数据变量。它测试变量在哪里被声明和定义,以及在哪里被使用或更改。
单独测试只是为了确保软件中没有隐藏的bug或问题。软件测试在不同的水平
单元测试
在编码时,程序员对该程序单元执行一些测试,以确定它是否没有错误。测试是在白盒测试方法下执行的。单元测试帮助开发人员确定程序的各个单元是否按要求工作,并且没有错误。
集成测试
即使软件的单元单独工作良好,也需要查明如果将单元集成在一起是否也能正常工作。例如,参数传递和数据更新等。
系统测试
软件被编译成产品,然后作为一个整体进行测试。这可以通过以下一个或多个测试来实现:
- 功能测试——根据需求测试软件的所有功能。
- 性能测试——这个测试证明了软件的效率。它测试软件执行所需任务的有效性和平均时间。性能测试是通过负载测试和压力测试来完成的,在各种环境条件下,软件处于高用户和数据负载下。
- 安全性和可移植性——这些测试是在软件要在各种平台上工作并由若干人访问的情况下进行的。
当软件准备好移交给客户时,它必须经过最后一个阶段的测试,在这个阶段中,它要对用户交互和响应进行测试。这很重要,因为即使软件符合所有用户的要求,如果用户不喜欢它的显示或工作方式,它也可能被拒绝。
- Alpha测试——开发人员自己的团队通过使用系统来执行Alpha测试,就像在工作环境中使用它一样。他们试图找出用户对软件中的某些操作的反应,以及系统对输入的反应。
- Beta测试——在软件内部测试之后,它将被交付给用户,在他们的生产环境下仅用于测试目的。这还不是交付的产品。开发人员期望用户在这个阶段会带来一些小问题,这些小问题被忽略了。
每当一个软件产品更新了新的代码、特性或功能时,都会对它进行彻底的测试,以检测添加的代码是否有任何负面影响。这就是所谓的回归测试。
测试文档测试文件是在不同的阶段准备的
在测试之前
测试从生成测试用例开始。下列文件需要参考-
- SRS文档——功能需求文档
- 测试策略文档——这描述了在发布产品之前应该进行多久的测试。
- 测试策略文档——该文档详细描述了测试团队、职责矩阵以及测试经理和测试工程师的权利/职责。
- 追溯矩阵文档——这是SDLC文档,与需求收集过程相关。当新的需求出现时,它们被添加到这个矩阵中。这些矩阵帮助测试人员了解需求的来源。它们可以向前和向后追溯。
在测试开始和正在进行时,可能需要下列文件:
- 测试用例文档——这个文档包含需要执行的测试的列表。它包括单元测试计划、集成测试计划、系统测试计划和验收测试计划。
- 测试描述——这个文档是所有测试用例和执行它们的过程的详细描述。
- 测试用例报告——此文档包含作为测试结果的测试用例报告。
- 测试日志——这个文档包含每个测试用例报告的测试日志。
测试后可生成以下文件:
- 测试总结——这个测试总结是对所有测试报告和日志的集体分析。它对软件是否准备好发布进行了总结和总结。如果软件准备好发布,则在版本控制系统下发布。
- 软件质量保证——这些是软件开发过程监控的手段,通过这些手段可以保证所有的措施都是按照组织的标准来采取的。进行这种监视是为了确保遵循适当的软件开发方法。
- 软件质量控制——这是一个维护软件产品质量的系统。它可能包括软件产品的功能性和非功能性方面,从而增强组织的商誉。该系统确保客户收到符合其要求的高质量产品,并通过“适合使用”认证。
- 软件审计——这是对组织用于开发软件的程序的审查。独立于开发团队的审核员团队检查软件过程、过程、需求和SDLC的其他方面。软件审计的目的是检查软件及其开发过程是否符合标准、规则和规章制度。
推荐阅读
- 软件维护概述 – 软件工程教程
- 软件实现 – 软件工程教程
- 进阶(技术面试中的5大常见错误)
- 2021年十大Web开发趋势详细指南
- 2021年数据可视化十大开源库推荐
- 热荐(每个机器学习工程师都应该知道的十大算法)
- 开发人员学习JavaScript的5大理由指南
- Android应用程序开发的前7本书
- N步扫描磁盘调度详细介绍