很多项目出现问题的根源,在于测试环境跟生产环境并非一致,数据库的类型,版本,表结构,数据量,要是其中有一项不相符,那么测试通过的功能上线以后便有可能报错,中间件情况相同,Web服务器,应用服务器,消息队列的版本存在差异,均会致使难以预料的故障,按照行业统计来看,超过60%的上线事故能够追溯至环境不一致这个问题。
软件测试的基础所在是测试用例,依据ISO25010标准,每个测试用例都必须涵盖用例编号,以及用例名称,还有用例描述,包括前置条件,以及测试步骤,以及预期结果,以及实际结果,以及用例状态这八个基本要素,倘若缺少任何一项,测试的可重复性以及可验证性便会大幅下降,2021年发布的《软件测试用例管理规范》还特意强调,测试用例需要遵循“用例覆盖”原则,以确保测试覆盖率能达到90%以上。
现实操作期间,诸多测试人员于撰写用例之际,仅仅聚焦正常流程而遗漏异常情形以及边界条件、比如施行登录功能测试时,除正确账号密码外,尚需测试空输入、密码有误、账号锁定等情形场景、测试用例须依功能测试、性能测试、安全测试、兼容性测试等类别予以分类管理,借以便利检索与执行、最为关键的是定时更新测试用例。确保每次软件版本出现变更之后,用例能够同步更新。

测试执行并非仅仅是简简单单地跑上一遍用例便宣告结束。按照ISO25010标准,测试执行务必要遵循“执行—记录—报告”这一完整流程。执行期间要如实记录每一个步骤的实际结果,将其与预期结果展开比对。一旦发现问题就得立刻进行记录,绝不能等到全部跑完过后再回过头去补充。如此这般做的目的在于确保测试过程具备可追溯性、可验证性,一旦出现问题能够找寻到原因。
测试工作的最终产出是测试报告,然而好多团队对此并不予以重视。依据《软件测试报告规范》(2022版)进行统计,有65%的测试报告并未依照规范去编写,致使测试结果变得不可靠。一份合格的测试报告应当涵盖测试用例执行情况、测试结果汇总、缺陷统计分析以及测试效率评估。举例来说,报告当中需要清晰地写明总共执行了多少个用例,通过了多少个,失败了多少个,每个失败用例所对应的缺陷编号是什么。

仅发现缺陷不过是起始的一步,重点在于得将其管控起来直至处理完毕。依据ISO25010标准,缺陷管理得依照“发现—报告—跟踪—修复—验证”这般的五个步骤所构成的闭环流程来进行。缺陷报告需明晰地写好重现步骤、截图、日志等诸般信息,以此便利开发人员去定位问题。在缺陷被修复之后,测试人员必定得重新开展测试来确认问题确实已被解决,方可关闭此缺陷。
据《软件缺陷管理实践》(2022 版)统计,现实状况并不呈现出乐观态势,高达 72%的缺陷没能进行修复或者没能被跟踪,致使软件质量全然失去控制,很多团队将缺陷记录于 Excel 表格里或者聊天记录之中,随着时间推移就忘却了,正确的举措是运用缺陷管理工具,诸如 Jira、禅道等,每个缺陷均具备唯一编号、状态流转记录以及责任人,每周都要召开缺陷评审会,用以确认哪些缺陷在本周务必修复,哪些能够予以延后。
若测试工具能被妥善运用,效益将会成倍增长;倘若运用不当,反倒会徒增麻烦。依据《软件测试工具使用规范》(2021版)有关规定,测试工具的挑选应当与测试目标达成适配。开展单元测试时可选用JUnit或者TestNG,进行集成测试时可选用Postman或者SoapUI,实施性能测试时可选用JMeter或者LoadRunner,开展安全测试时可选用Burp Suite或者AppScan。绝不能仅凭借一个工具包来应对所有情况,每一种测试类型均存在最为适宜的工具。
有着更新这一状况的工具以及维护这件事情同样具备着重要性,规范化的要求体现为测试工具需要定期去进行更新,以此来保证与软件版本维持一致的状态,举例来说要是你所测试的软件运用了Java 17,然而你的测试工具却依旧处于使用Java 8版本的情形,那么诸多新特性便无法测试出来,依据《软件测试工具使用实践》(2022版)的统计情况来看,占据60%比例的测试工具没有按照规范来使用,从而致使测试效率出现降低以及结果变得不可靠的状况,工具并非安装好便不再有其他事宜,而是需要定期去检查版本、更新插件以及清理过期数据。

软件开发进程里的文档数目不少,涵盖需求文档、设计文档、编码文档以及测试文档。依据ISO/IEC25010标准,需求文档得保证所有利益相关方就系统目标达成统一。2023年全球软件开发报告表明,78%的项目失败是由于需求不清晰或者变更频繁。设计文档依照IEEE12208标准,应确保系统设计具备可实现性、可维护性以及可扩展性。
也不能对编码文档予以忽视,依据2021年《软件工程》期刊所做的统计,要是遵循编码规范的话,那么代码维护效率能够提升40%以上,并且代码错误率会降低30%以上。测试文档更是质量保障极为重要的依据,按照2022年统计所显示的情况,完善的测试文档能够让测试覆盖率提升45%以上,缺陷发现率得以提高30%以上。所有的文档都应当经由版本控制系统(像是Git)来实施管理,以此保持版本的一致,并且要定期进行评审确认。
读过这篇文章之后,回忆一下你们团队所拥有的测试用例,究竟有多少是实实在在通过审核的?欢迎于评论区去分享你们的做法。