像谷歌这样的巨大软件公司,尽管软件中存在低优先级的错误,但仍能取得成功,但小公司和创业公司并没有那么奢侈。
客户希望产品能够在销售页面或文档中执行他们声明的内容。 有了这么多的选择,如果产品浪费他们的时间和金钱,他们不会考虑跳船。 因此,软件在发布之前要经过严格的测试,以便:
突出原始概念和最终输出之间的差异
验证软件是否符合设计者的计划
验证最终产品 - 产品必须符合客户要求
评估功能和质量
测试遵循严格的蓝图。 这优化了宝贵资源的使用 - 技能,时间和金钱,同时为利益相关者提供了推动产品发展的重要信息。 目标是通过强大的质量保证计划来促进良好的最终用户体验。 由于风险如此之高,质量保证经理是技术人员中的佼佼者。测试通常遵循以下步骤:
需求分析,管理人员勾画出制定合适测试策略的计划。
测试开始并且结果经历分析。
任何缺陷都会得到纠正,软件将通过回归测试 - 检查程序在修改后仍然有效的系统。
测试结束报告然后详述整个过程和结果。
软件测试方法
以下是用于判断产品行为和性能的不同方法。
黑盒和白盒测试是两种基本方法。
- 黑盒测试 - 也称为基于功能或基于规格的测试,此方法专注于输出。 测试人员不关心内部机制。 他们只检查软件做它应该做什么。 编码知识不是必需的,测试人员在用户界面层面工作。
- 白盒测试 - 此方法使用编码知识作为测试过程的一部分。 当产品发生故障时,测试人员会根据需要深入了解代码,以找出原因。 软件开发人员自己决定产品应该如何工作。 基于结构和玻璃盒测试是这种方法的其他名称。
- 静态测试 - 测试人员检查软件的代码和文档,但不执行该程序。 在验证过程中,产品开发的早期会进行静态测试。
- 动态测试 - 软件以各种输入执行,测试人员使用此方法比较输出与预期行为。
- GUI测试 - 测试GUI特性 - 文本格式,文本框,按钮,列表,布局,颜色,字体,字体大小等等。 GUI测试非常耗时,第三方公司通常会承担这项任务而不是开发人员。
测试级别
这些对于识别软件开发生命周期每个阶段中的薄弱环节和重叠区域都是必要的。
- 单元测试 - 开发人员测试代码中最基本的部分,如类,接口和函数/过程。 他们知道他们的代码应该如何响应,并且可以根据输出进行调整。
- 组件 测试 - 其他名称是模块或程序测试。 它与单元测试类似,但包含更高级别的集成。 对软件模块进行缺陷测试以验证其个别功能。
- 集成测试 - 这标识了集成模块时的错误。 不同的集成测试是自下而上,自上而下和功能增量。
- 系统 测试 - 使用此方法在不同环境中对项目组件进行整体测试。 它属于黑盒子方法,是过程中的最后一项测试。 它确定系统是否按照应该满足业务和用户需求的功能运行。
- Alpha测试 - 内部人员在模拟或实际环境中在开发人员现场测试软件。 之后,开发人员将纠正错误和其他问题。
- Beta测试 - 也称为现场测试,客户在真实条件下在自己的网站上测试产品。 客户可能会向一组最终用户提供通过预发布或测试版测试软件的机会。 随后将可能的改进反馈发送给开发人员。
- 验收测试 - 同样在黑盒测试的范围内,客户端测试软件以确定开发者是否已经创建了符合所需规格的程序。
测试类型
这些软件测试专注于特定的目标。
- 安装测试 - 软件测试工程师和配置经理进行此测试,以确保最终用户可以安装和运行该程序。 它涵盖了安装文件,安装位置和管理权限等区域。
- 开发测试 - 实现一系列同步策略来检测和预防缺陷。 它包括静态代码分析,同行代码评审,可追溯性和指标分析。 其目的是降低风险并节省成本。
- 可用性测试 - 用户体验受此测试的关注。 它测量GUI的设计和易用性。 该测试检查功能的准确性和效率以及测试对象的情绪反应。
- 理智测试 - 这表明软件是否值得继续进一步测试的时间和成本。 太多的缺陷和更激进的测试不会遵循。
- 烟雾测试 - 烟雾测试揭示严重到足以防止释放的基本故障。 当在新版本上执行时,它被称为构建验证测试。
- 回归测试 - 当系统进行修改时,回归测试会监控意外行为。 它指出了对模块或组件的不利影响。
- 破坏性测试 - 测试人员输入异常输入并辨别软件管理意外输入的能力。 这显示了开发人员程序在错误管理方面的强大程度。
- 恢复测试 - 当硬件或其他功能失败时,此测试显示软件可以恢复并继续运行。
- 自动化测试 - 执行难以手动实现的功能。 它使用特定的软件来运行测试并提供实际与预期结果的数据。
- 兼容性测试 - 软件必须在不同的计算环境中运行,因此可以检查与不同系统的兼容性。 例如,该软件是否适用于各种操作系统和Web浏览器?
- 性能测试 - 这是一个深入测试,可以检查不同场景下的软件性能。 收集关于响应性,稳定性,资源分配和速度的信息。 此外,在这个过程中,诸如体积,容量和尖峰测试等子测试也会发挥作用。
- 安全测试 - 衡量软件保护用户安全的能力。 这意味着授权功能,认证,机密性,完整性,可用性和不可否认性。
- 辅助功能测试 - 这与可用性测试不同。 这决定了不同能力的用户(包括学习和身体残疾)在多大程度上可以使用该软件。
- 国际化和本地化测试 - 结果显示软件如何适应不同的语言和区域需求。 这包括为特定位置添加组件并翻译文本。
软件测试是将产品推向市场的重要部分。 没有测试人员,大量的可用软件将不存在。 通过BCS,英国特许信息技术学院,ISTQB®(国际软件测试认证委员会)和ASQ(前身为美国质量协会)等组织成为认证软件测试人员。