程序员:有的人喜欢创造世界,他们成为开发者;有些人喜欢开发人员,他们成为测试人员。什么是软件测试?软件测试意味着本应发生在用户面前的灾难提前发生在了用户的面前。这会让他们有一种救世主的感觉,拯救用户,拯救软件,避免被卸载的命运。今年是我做软件测试的第7年。当我从软件开发转到软件测试的时候,我从来没有想过我可以在这个领域待这么久。在这7年的时间里,我一直在软件测试领域打拼,从自动化测试开始,逐渐接触到软件测试的各个领域:各种测试方法(等价类、全配对等)、测试技术(单元测试、功能测试、性能测试、探索性测试等)、自动化测试工具(JUnit、Selenium、Gatling、ZAP等)、测试过程(传统测试过程、敏捷测试过程等)和测试策略(测试象限和测试金字塔等)。其中,“测试策略”在测试行业很少被讨论,因为大部分人的工作都集中在设计测试用例、执行测试,或者开发和维护自动化测试,而只有小部分人会涉及到测试策略的工作,从而导致很多测试人员实际上并没有系统地了解测试策略。所以我准备把这几年自己的经验、总结和对测试策略的思考,以系列文章的形式写出来,希望能帮助大家理解测试策略,从而达到更好的测试,减少缺陷,提高质量.测试策略测试策略(TestStrategy)的首要目标是“减少缺陷的发生和释放”。其中,“减少缺陷的发生”可以通过正向测试等方法解决,在软件需求分析和架构设计中发现缺陷;而“减少缺陷发布”可以使用各种测试方法和技术来验证和测试编码完成(这两点将在以后的文章中通过不同的例子进行更详细的解释)。可见,“测试策略”不仅仅是测试人员定制的,它是由团队的各个角色制定和制定的,目的是为了保证软件的质量,减少缺陷。“测试计划”用于实施测试策略。只有充分了解测试策略的目的和实施方法,才能充分理解测试策略,为什么要做测试策略,什么样的测试策略更有意义更好,如何实施才能更有效。测试计划制定测试计划是确保测试策略能够有效执行的一种方式。它告诉团队在什么阶段、什么角色应该在测试策略中实施什么样的测试技术和测试方法。它主要由测试人员编写,但应该由整个团队审查,因为开发人员、产品经理、业务分析师甚至用户都可能参与测试计划的执行。测试计划可以根据项目的实际进度进行调整,所以不是一成不变的。测试架构在1960和70年代,软件系统还处于小规模的时候,软件开发不讲架构,也没有软件测试的策略。然而,随着软件规模的快速增长,复杂度也呈指数级增长,专业的软件架构应运而生。为了在规定的时间内有效地完成复杂软件系统的测试,必须有一个指导性的策略来帮助团队理解、选择和组织大量的测试,于是软件测试策略就出现了。测试策略往往是一种高层次的指导,对于一些中小型项目来说可能已经足够了,但不足以应对现代和日益复杂的软件系统。因为随着微服务、移动互联网、物联网、大数据分析系统、AI系统等的出现,要测试一个包含各种技术、外部依赖或独立子系统的复杂系统,已经不是简单地基于测试策略了。不同层次做不同的测试就够了,而是要梳理好各种测试之间的相互关系和约束,然后再思考如何将各个维度的测试进行有效的衔接,思考整个软件系统的架构。测试系统。请注意,这里并不是要设计一个完全自动化的测试系统来完成整个系统的所有测试,而是通过各种有效的方式(无论是手动还是自动)将各种测试合理有效地联系起来,形成一个具有完整架构的测试系统。使整个系统的各种测试更加直观易懂,使整个系统的各种测试更加有效,避免重复测试,节约成本。例如,一个前后端分离的Web业务系统,不仅有前端UI和大量JavaScript代码,还有后端API、第三方依赖系统、数据库系统。如何有效链接各层测试是一个需要解决的测试架构。问题。首先,前端、后端API、第三方依赖系统和数据库系统都有自己的单元测试、集成测试等,然后可以使用契约测试来测试统一的前后端——端API,然后使用Stub为第三方依赖系统添加合约进行测试或监控测试,还需要使用测试数据生成系统参数,将各种测试数据存入数据库系统,以支持合约测试等,用于软件测试,接口测试,自动化测试,性能测试,LR脚本开发,面试经验交流。有兴趣的可以拨打273462828,群里会有不定期的免费资料链接。这些资料是从各个技术网站上收集整理出来的。如果大家有好的学习资料,可以私信发给我,我会注明出处,然后分享给大家。对于不同的软件系统,其架构通常是根据业务需求、技术能力等各种条件来设计的。与软件架构一样,测试策略和测试架构需要根据不同项目中的软件系统架构、技术栈、业务需求、人员技能等因素进行定制化设计。再说说测试策略现在业界流行的测试金字塔和测试象限只是两种高度抽象和简化的测试策略模型,不具有实用性和可操作性,只是提供高层次的指导和参考。直接从这两个模型开始工作效率低下,甚至可能是负面的。因此,测试金字塔和测试象限不能盲目使用。而是需要根据项目的实际情况生成适合项目的测试策略和测试结构(项目不需要测试结构),并在此基础上进行真正的测试工作。
