我一直在面试一个“测试自动化领导”职位,在过去的两家公司里,我被要求在面试期间为一个给定的系统设计一个测试框架。在面试过程中,我并没有很好地做到这一点,所以到目前为止,我的想法是这样的。我希望您对以下内容有任何反馈或想法。
问题陈述:考虑一个信用卡账单系统,它根据客户信用卡使用情况数据生成账单,并通过电子邮件将这些账单发送给客户。有一个管理网站,管理员可以(登录后)选择记帐期(例如,上个月的当月,或者任意的from_date和to_date),然后单击一个按钮来生成账单。此表单提交(按钮单击)使用"from_date“和"to_date”作为对服务器的URL查询参数进行REST调用(例如HTTP )。此REST调用触发票据生成批处理。批处理查询MySQL DB并生成账单。账单被格式化为简单的HTML表,在给定的时间段内邮寄给DB中的所有相关客户。每一张账单都包含一些细节,如总会费、最低付款金额和付款到期日。概述如何设计和构造您的测试自动化框架。您预见到哪些类和类层次结构,您可能使用哪些辅助类?理想情况下,您的设计应该是干燥的,避免代码重复。当您开始编写性能测试时,您的框架能在某种程度上重用现有的功能测试代码吗?如何将UI (例如,基于硒的)测试添加到现有的功能验证框架中?
我开始讨论如何首先独立测试组件(我想我喜欢先考虑自下而上解决更容易的子问题)。我将有一个BillingRestHelper类,它将使HTTP调用抽象为某种类似于"def trigger_billing(from_date,to_date)“的方法的底层细节,该方法将返回HTTP状态(200/400/403等)。然后,为各种输入/输出组合运行数据驱动测试,并相应地为+ve和-ve测试用例进行断言。在这个纯粹的休息级别上,我不关心法案的正确性,也不关心它们是否真正产生。
对于UI级别,我将有一些基于Selenium的框架,可以检查元素的定位、登录/注销、提交双语表单的能力、捕捉任何JS错误等。
我认为,在一个银行可能拥有数百万客户的现实世界中,批处理过程可能需要几个小时甚至更长时间。因此,为了使事情变得简单,我将有一个良好控制的测试环境,其中包括10个假/样本客户的信用卡交易数据,在我的测试数据库中的批处理过程。因此,在我触发账单生成后,我不必睡上几个小时(可能)就会等待电子邮件发送出去。
我会将我的test-DB从一些众所周知的SQL文件中设置为初始状态,该文件将生成固定的、预先确定的账单数据(稍后我可以断言)。然后,在实际触发任何计费之前,我会针对这个测试-DB启动计费服务器。
一旦10个测试客户的10封电子邮件发送到他们的测试-电子邮件帐户,我将编程登录到电子邮件,打开账单HTML,断言在预先知道的正确值的总额,到期日等。这将测试实际的票据generation+mailer组件的正确性。
然后,我将进行从Selenium开始的端到端测试,一直到验证生成的账单的正确性。
然后,我会设计和运行perf测试和测试,针对大量客户的实际数据。
这似乎没问题,但并没有给面试官留下深刻的印象,因为面试官正在寻找一个高水平的课程设计。我想他想知道哪个类继承自什么,我是使用接口还是抽象类,或者类似的东西。我不是来自Java背景,而且我以前也没有以这种自顶向下的方式构建我的Ruby+Rspec/Python+PyTest测试框架。我认为对于大多数测试框架来说,太多的OOP和设计模式是过分的,在这些框架中,一些可靠的规范(Rspec风格)可以轻松、快速地完成任务(但我可能错了)。欢迎对此发表意见。
因此,我喃喃地说了一些关于SQLHelper类的内容,用于将众所周知的测试数据加载到MySQL中的设置。EmailHelper类,用于处理电子邮件的所有方面。一个BillVerifier类,用于验证电子邮件中的实际账单数据。
这不太顺利,我想学习如何在面试中解决这类问题:)
帮助!我一直试图在google上搜索:如何为给定的系统设计一个测试自动化框架,但是还没有找到很多。有谁能给我介绍一下吉特布上任何开源项目的任何知名或设计良好的测试自动化套件吗?网络其他地方是否有相关资源,或者更好的是,有人能直接帮助解决给定的计费系统问题?
发布于 2015-02-23 15:54:43
我不确定计费系统的问题,但是我发现这些资源对于理解和设置测试自动化非常有帮助。
http://safsdev.sourceforge.net/FRAMESDataDrivenTestAutomationFrameworks.htm
另外,对于帮助抽象测试用例的Python +基于Pytest的框架,请查看机器人框架。它有详细的文档,在github也有回购,
http://robotframework.googlecode.com/hg/doc/userguide/RobotFrameworkUserGuide.html
该项目已转移到http://robotframework.org/
跳这个有帮助,祝你好运!
发布于 2018-03-29 15:43:59
看看您的问题陈述,我们有三个方面要对功能进行测试。
如果面试官想找一个框架..。你必须在这三个方面建立一个框架。这里只有硒不起作用。UI,您需要使用Selenium Webdriver,WebServices您需要使用SOUPUI或JDK对象和批处理(MyBatis和Core数据结构)
您必须选择正确的框架,在不破坏UI到DB的情况下完成所有领域。
黄瓜-它适合与selenium,JDK服务对象,批处理与mybatis框架相结合。
类级设计必须在这三个方面进行,并且大多数情况下您将使用selenium的核心组件、webservice对象操作、使用。这将是不同的,基于你的思想过程,在分裂。如果你已经给出了上面的答案,这将是最不重要的。
https://sqa.stackexchange.com/questions/12181
复制相似问题