测试小白必掌握软件测试十大原则

软件测试是确保软件质量的重要手段之一,它可以检测软件中的各种缺陷和问题,从而提高软件的可靠性、可用性和安全性。软件测试也是一项极富创造性、极具挑战性的工作。为了尽可能发现软件中的错误,提高软件产品的质量,在软件测试的实践中应把握以下几项测试原则:

1.做好软件测试计划是做好软件测试工作的关键

软件测试是有组织、有计划、有步骤的活动因此测试必须要有组织有计划,并且要严格执行测试计划避免测试的随意性。测试计划应包括:所测软件的功能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试工具,测试用例的选择,测试的控制方法和过程,系统的配置方式,跟踪规则,调试规则,以及回归测试的规定等以及评价标准。另外,回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。

项目测试相关的活动依赖于测试对象的内容。对于每个软件系统,比如测试策略、测试技术、测试工具、测试阶段以及测试出口准则等等的选择,都是不一样的。同时,测试活动必须与应用程序的运行环境和使用中可能存在的风险相关联。因此,没有两个系统可以以完全相同的方式进行测试。比如,对关注安全的电子商务系统进行测试,与一般的商业软件测试的重点是不一样的,它更多关注的是安全测试和性能测试

2.决定测试用例质量的一个重要部分是对预期结果的定义

对于测试用例来说,预期结果就是最重要的。大家可以思考下,如果某个测试用例的预期结果没有定义,由于 "所见即所想" 现象的存在,某个似是而非、实际上是错误的结果可能会被解释成正确的。换句话说,尽管 "软件测试是破坏性" 的定义是合理的,但人们在潜意识中仍然渴望看到正确的结果。

在设计测试用例时如何定义用例的预期结果?

  1. 避免出现模棱两可的词汇
  2. 避免将预期结果描述为是或否
  3. 尽可能详细描述预期结果
    第一个用例设计准则的原因上文阐述过了,我这里说明下后面两个准则。不可否认,第 2 个准则要求避免的问题我刚入职那会也是犯过的。将预期结果描述为是否无外乎两个原因:1. 项目时间比较紧;2. 觉得用例是自己执行的,预期结果已经在脑壳中记到了,无须再写出来了。
    但是我们负责的项目并非一个迭代就完事了,通常要多个迭代,期间会出现人员离职、人事转岗项目交接的情况,那么你写的东西别人就可能看不懂,这样会带来重复劳动。所以眼光要放长远些,就像开发同学开发代码一样,你写的用例可能会在若干年后被别人用到,编写高质量的用例也是对别人负责。
    就以登录功能预期为例,预期结果至少要包含 登录成功与否、页面是否跳转、登录成功要包含接口返回结果、登录失败要包含失败信息、错误码信息

3.开发工程师应当避免测试自己编写的程序

开发工程师应当避免测试自己编写的程序,这是因为测试是一种独立的活动,需要独立的思考和判断。如果开发工程师测试自己编写的程序,可能会存在以下问题:

1)缺乏客观性:开发工程师可能会对自己编写的程序存在偏见,导致测试结果不够客观和准确。

2)缺乏独立性:开发工程师可能会受到自己编写程序的影响,而无法独立地测试程序的各个方面,导致测试覆盖不够全面和深入。

3)缺乏专业性:测试需要专业的测试知识和技能,开发工程师可能无法完全掌握测试的各个方面,导致测试结果不够准确和可靠。

4)时间和资源限制:开发工程师需要花费大量时间和精力编写程序,无法同时兼顾测试工作,而测试工作需要独立的时间和资源。

因此,为了保证测试的客观性、独立性、专业性和效率,开发工程师应当避免测试自己编写的程序。测试应该由专业的测试团队或测试人员来进行,以确保测试的全面性、深度性和准确性。开发工程师可以提供必要的测试支持和协助,例如提供测试环境、测试数据和测试用例等,以确保测试工作的顺利进行

4.测试应基于用户需求

用户需求是软件开发的基础,测试的目的是验证软件是否符合用户需求和期望。因此,测试必须基于用户需求,以确保软件的质量和可靠性。

测试应该从用户的角度出发,对软件的各个方面进行测试,例如功能、性能、安全性、易用性等。测试用例应该覆盖所有用户需求和使用场景,以确保软件的完整性和正确性。同时,测试应该注意用户体验,以确保软件的易用性和用户满意度。

测试应该在软件开发的早期开始,以便及早发现和解决问题。测试人员应该与用户和开发人员紧密合作,了解用户需求和期望,及时反馈问题和建议。测试结果应该及时记录和报告,以便开发人员及时修复和改进软件。

在开发过程中用户的早期介入和接触原型系统就是为了避免这类问题的预防性措施。有时候,可能产品的测试结果非常完美,可最终的客户并不买帐。因为,这个开发角度完美的产品可能并不是客户真正想要的产品。

5.应当仔细检查每个测试的执行结果

测试人员应该对每个测试用例的执行结果进行仔细检查,包括测试结果、日志、截图等信息。测试结果应该与预期结果进行比较,以确定测试是否成功。如果测试失败,测试人员应该仔细分析失败原因,并及时记录和报告问题。

同时,测试人员应该注意测试结果的完整性和正确性。测试结果应该覆盖所有测试点和测试场景,以确保测试的全面性和深度性。测试结果应该经过验证和确认,以确保测试的准确性和有效性。

总之,测试人员应该仔细检查每个测试的执行结果,并确保测试的准确性和有效性。测试结果应该与预期结果进行比较,测试结果应该覆盖所有测试点和测试场景,并经过验证和确认。只有这样,才能保证测试的质量和可靠性,确保软件的质量和可靠性

6.测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况

这个原则换句话说就是,我们在测试的时候不能仅考虑正向的用例,还要考虑异常的业务场景。

正向用例通过只能说明产品功能被正常开发,但是这不能说明产品功能就是鲁棒的、容错的,而异常测试能弥补这个不足。

有大量的实践证实,在软件产品中暴露出来的许多问题是当程序以某些未预料到的方式运行时发现的。因此,针对未预料到的和无效输入情况的测试用例,比针对有效输入情况的那些用例更能发现问题

7.测试前必须明确定义好产品的质量标准

产品的质量标准是衡量产品质量的标准,它是在产品开发的早期就应该明确定义的。产品的质量标准应该基于用户需求和期望,以确保产品的质量和可靠性。产品的质量标准应该包括以下方面:

1)功能性:产品应该满足用户需求和期望,所有功能应该能够正常运行,不应该存在任何功能缺陷和问题。

2)性能:产品应该具有良好的性能,包括响应时间、吞吐量、稳定性等方面,以确保产品的可用性和可靠性。

3)安全性:产品应该具有良好的安全性,能够保护用户数据和隐私,不应该存在任何安全漏洞和问题。

4)易用性:产品应该具有良好的易用性,用户界面应该友好简洁,用户操作应该简单明了,以提高用户满意度和使用体验。

5)可维护性:产品应该易于维护和更新,包括代码结构、文档、测试用例等方面,以便于后续的升级和维护工作。

6)产品的质量标准应该在产品开发的早期就明确定义,以便于测试人员在测试前了解产品的质量标准和测试要求。测试人员应该根据产品的质量标准,制定相应的测试策略和测试用例,以确保产品的质量和可靠性。

总之,测试前必须明确定义好产品的质量标准,以确保测试工作的有效性和准确性。产品的质量标准应该基于用户需求和期望,包括功能性、性能、安全性、易用性和可维护性等方面

8.应充分注意测试中的集群现象

集群现象指的是在测试过程中,由于测试数据或测试场景的相似性,导致测试结果出现了一定程度的重复和集中现象。

集群现象可能会影响测试的准确性和有效性,因为重复和集中的测试结果可能会掩盖真正的问题和缺陷,导致测试漏洞或测试盲区。因此,测试人员应该充分注意测试中的集群现象,并采取相应的措施来避免和减少集群现象的影响。以下是一些避免和减少集群现象的方法:

1)设计多样化的测试数据和测试场景,避免相似性和重复性。

2)在测试过程中,对测试数据和测试场景进行分组和分类,以便于发现和解决集群现象。

3)使用随机测试数据和测试场景,以避免测试结果的重复和集中。

4)对测试结果进行统计和分析,以发现和解决集群现象。

5)对测试用例进行复审和优化,以确保测试用例的多样性和全面性。

总之,集群现象是测试过程中需要充分注意的问题之一,测试人员应该采取相应的措施来避免和减少集群现象的影响。测试数据和测试场景应该多样化和全面化,测试用例应该多样化和全面化,测试结果应该统计和分析,以确保测试的准确性和有效性

9.应避免测试用例用后即弃,除非软件本身就是一个一次性的软件

其实这个原则要解决的问题,我在原则一中也有表述。

测试同学匆忙地编写测试用例,然后测试过程执行这些用例。项目结束后就把这些用例当作垃圾一样扔掉了。一旦软件需要重新测试(例如,fix 了某个缺陷或做了某种功能改进后),又必须重新设计这些测试用例。

如果对程序的更改引起了程序某个先前可以正常运行的功能发生了故障,这个故障往往是不会被发现的。保留测试用例,当程序功能发生改动后重新执行,这就是我们所谓的 "回归测试"。

当然,我所在的项目测试团队都有意识到这个问题,我们的解法从最开始的将用例按项目迭代存档,到将用例的开发、维护等其用例的整个生命依托于到测试用例管理平台,就大大地提升了用例的复用率,降低了重复劳动。

10.软件测试是一项极富创造性、极具智力挑战性的工作

这个原则没什么可说的,毕竟测试岗位本身就要求测试人员具备专业的测试知识和技能,能够从用户的角度出发,对软件的各个方面进行测试。测试人员需要具备创造性、分析能力、规划能力、逻辑思维、表达能力、编程技术和团队协作能力等多方面的能力,以确保测试工作的有效性和准确性。不可否为,测试入门门槛比开发低,但是测试岗位的天花板是比开发要高的,测试想做出成绩,一定要具备开发能力的。

总之,测试小白要掌握软件测试,需要学习基础知识、测试工具和技术、编程语言和自动化测试、实践测试案例和测试管理等方面的知识和技能。通过不断学习和实践,可以逐步提高软件测试的技能和水平。
优测云服务平台是一个为企业与开发者提供专业的测试工具和服务的平台,沉淀十年产品测试经验,提供终端测试、接口测试、性能测试、安全测试等多领域测试服务与产品,协助客户提高效率降低成本,保证产品质量。

相关推荐
霍格沃兹测试开发学社测试人社区5 小时前
数据驱动与并行策略:用 JUnit 5 让软件测试更高效
软件测试·测试开发·junit
霍格沃兹测试开发学社测试人社区5 小时前
软件测试丨探索 JUnit 5 中的参数化与调度执行:提升软件测试的效率与灵活性
软件测试·测试开发·junit
明明跟你说过5 小时前
Linux中的【tcpdump】:深入介绍与实战使用
linux·运维·测试工具·tcpdump
惜.己18 小时前
Jmeter中的断言(二)
测试工具·jmeter·1024程序员节
互联网杂货铺1 天前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
go_to_hacker1 天前
容器安全检测和渗透测试工具
测试工具·安全
惜.己1 天前
Jmeter中的断言(四)
测试工具·jmeter·1024程序员节
半桶水专家1 天前
tcpdump抓取流量包详解
网络·测试工具·tcpdump
小流年 °1 天前
抓包工具Wireshark
网络·测试工具·wireshark