失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 思特沃克(ThoughtWorks) 外企面试题 面试经验分析 面试题 软件测试工程师 测试面

思特沃克(ThoughtWorks) 外企面试题 面试经验分析 面试题 软件测试工程师 测试面

时间:2021-05-17 10:57:41

相关推荐

思特沃克(ThoughtWorks) 外企面试题 面试经验分析 面试题 软件测试工程师 测试面

文章目录

一、前言

二、面试问题

1、面试题问题汇总 展示

2、Automation Testing Homework V2.pdf

2.1 自动化家庭 作业

2.2 自动化家庭作业 Selenium 解答

2.3 自动化家庭作业 TestAPI 解答

3、必做New_QA_Homework.pdf

3.1 测试需求理解与用例设计

3.2 测试需求理解和测试用例设计

3.3 3.1 Answer

3.3 3.2Answer

3.3 3.3Answer

3.3 3.4Answer

4、选做Performance_Testing_Homework_v2.pdf

4.1 性能测试问题 展示

4.2 性能测试 解答

5、面试反馈

三、结束语

一、前言

很遗憾,前期和HR沟通很愉快个人兴趣爱好和初衷和契合,面试主要考察了3个方面,业务测试用户设计、自动化(Selenium他家开发的自动化测试产品必考)、性能测试。败北业务测试对于对方的业务系统没有很好的理解无相关行业的测试经验,仅写测试点代替未能满足预期。

需要的朋友请自取祝君顺利,自己也反思总结不停探寻进步的方法。

二、面试问题

1、面试题问题汇总 展示

2、Automation Testing Homework V2.pdf

2.1 自动化家庭 作业

原文

Automation Testing HomeworkUI TestingPlease automate the test case "Purchase book at Amazon website" based onSelenium Webdriver"Purchase book at Amazon website" test case steps:1. Visit /2. Input "软件测试" in search box and click search icon3. Click “软件测试(原书第2版)"4. Click "加⼊购物⻋" at “软件测试(原书第2版)” page5. Assert that text "商品已加⼊购物⻋" appears6. Assert that book price is "20.40"Tips:1. Please use README.md or note to display file structure and explain the purposeof each file (class/ test method)2. No preference for programming language and test framework3. Please hand in a zip file that includes all the test scripts and test result4. Notice that the price “20.40” is variable based on price fluctuation————————————API TestingGiven you need to test following Postman APIhttps://postman-/time/before?timestamp=-10-10&target=-10-10This API compares the parameter “timestamp” with parameter “target”, and returnsa JSON response.Then please set up API automation testing based on below scenario:1. Try different query parameters to verify different content of this API responseTips:1. There is not preference on language and framework, you can use what you aregood at to carry out above API automation testing2. Compress your testing scripts and test result as a zip file and upload togetherwith your answers3. README or comments are wanted to make your project structure, test file, testclass and test method clearly understood.

译文

自动化测试作业用户界面测试请根据以下内容自动执行测试用例“在Amazon网站上购买图书” Selenium Web驱动程序 “在亚马逊网站购买图书”测试用例步骤:1.参观/2.输入“软件测试“在搜索框中,单击搜索图标3.点击“软件测试(原书第2.版)"4.点击“加⼊购物⻋“在”软件测试(原书第2.版)” 页5.断言该文本”商品已加⼊购物⻋“出现6.断言账面价格为“20.40”提示:1.请使用自述。md或注释显示文件结构并解释用途每个文件的类型(类/测试方法)2.不喜欢编程语言和测试框架3.请提交包含所有测试脚本和测试结果的zip文件4.请注意,价格“20.40”是根据价格波动而变化的————————————API测试假设您需要测试以下Postman APIhttps://postman-/time/before?timestamp=-10-10和目标=-10-10此API将参数“timestamp”与参数“target”进行比较,并返回JSON响应。那么请根据以下场景设置API自动化测试:1.尝试使用不同的查询参数来验证此API响应的不同内容提示:1.没有语言和框架方面的偏好,您可以使用您自己的语言和框架擅长进行上述API自动化测试2.将测试脚本和测试结果压缩为zip文件并一起上载有你的答案吗3.需要自述或注释以使您的项目结构、测试文件、测试课程和测试方法清晰易懂。

2.2 自动化家庭作业 Selenium 解答

Selenium(ThoughtWorks公司开发的web自动化测试工具)

“Selenium Developer Assist:Selenium开发人员实用程序可协助Selenium Java开发人员-开源”

UITesting.py

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Author : Benjamin# @Time : /9/18 23:25from selenium import webdriver# http://chromedriver./index.htmlbrowser = webdriver.Chrome()browser.get('')# 获取当前窗口句柄now_handle = browser.current_window_handlebrowser.find_element_by_id("twotabsearchtextbox").send_keys("iPhone 11")browser.find_element_by_css_selector("input[value='搜索']").click()# 模糊点击文本browser.find_element_by_partial_link_text("重型装甲").click()# 获取所有窗口句柄,选择新打开的页面窗口all_handles = browser.window_handlesfor handle in all_handles:if handle != now_handle:browser.switch_to.window(handle)# 获取商品页面的标题和价格benginTitle = browser.find_element_by_id("productTitle").textbenginText = browser.find_element_by_id("priceblock_ourprice").text# 点击加入购物车和购物车按钮browser.find_element_by_id("add-to-cart-button").click()browser.find_element_by_id("hlb-view-cart-announce").click()# 获取购物车页面的商品标题和价格endTitle = browser.find_element_by_css_selector('span[class="a-size-medium sc-product-title a-text-bold"]').textendText = browser.find_element_by_css_selector('span[class="a-size-medium a-color-price sc-price sc-white-space-nowrap sc-product-price sc-price-sign a-text-bold"]').textif benginTitle == endTitle:print("The name of the goods is the same")else:print(benginTitle)print(endTitle)print("The name of the goods is different")if benginText.replace(" ","") == endText.replace(" ",""):print("The price of the goods is the same")else:print(benginText)print(endText)print("The price of goods is different")assert benginTitle == endTitleassert benginText.replace(" ","") == endText.replace(" ","")browser.close()

README.md

文件目录结构:TestUI-- UITesting.py实际测试中遇到的问题或疑问,尝试性解决并完善脚本:1、亚马逊中搜索“软件测试”商品结果页中并未找到“软件测试(原书第2版)”该书本,尝试性翻页查找也无2、查无目标数据则换用其他名称搜索和商品结果页模糊匹配点击3、单商品对比价格,动态获取商品详情页的标题和价格对比购物车中的商品标题和价格,if判断信息是否相同,断言放在末尾判断关于Selenium UI自动化的一些个人见解1、下一步操作依赖于上一步操作的结果,若上一步失败则会导致后续步骤出现异常2、个人看法:用例不宜过长,一条用例Check一个点。日常测试中会使用unitest,若检查单条用例失败,其他用例操作查询条件不受影响。3、关于断言,断言失败的话不方便查看具体的信息故添加了if判断并打印出相关的信息结束语:脚本自测其他关键字运行正常,简单的流式编程实现,未做其他封装处理。

2.3 自动化家庭作业 TestAPI 解答

答案文件目录展示

README.md

文件目录结构TestAPI-- __init__.py-- APITesting.py # 接口请求方法-- DoFile.py # 文件操作与记录保存-- main.py # 调用和方法执行判断文件-- testCase.txt # 测试集(test case)-- testCaseRes1568863717.txt # 测试结果(test result)-- testCase.csv # 首先测试集的文件表现形式测试脚本说明:APITesting.py1、定义被接口,被测参数2、封装http接口请求方法,并获取http response中的信息 status、getTime、res3、对接口返回数据的数据做简单的处理判断,部分异常请求无法获取就自定义了4、实际Chrome调试中查看异常请求返回500错误,request库在获取异常状态400,测试统计结果页还有问题暂未处理DoFile.py1、文本文件的基础操作,读、写、续写main.py1、运行测试的主要方法2、获取文件中的test case,遍历执行接口请求并获取相应信息并将生成的结果记录再testCaseRes<time>.txt中testCase.txt1、测试用例,待测试数据组合testCaseRes1568863717.txt1、测试结果,实际测试结果页2、预期值和测试结果并未在自动化测试中加判断,不明具体需求。目前测试的情况返回,ture、false,"500"应用测试类型:接口集成测试、接口验收测试测试类型:动态黑盒自动化测试测试用例设计用到方法:等价类划分:不同的时间格式边界值分析:数字表现的极限值错误推测:常见错误的尝试正交实验(判定表):“桩”则为时间项目,“项”则挑选不用的类型的数据进行组合测试结束语:脚本实现过程简易仅保留主要模块,没有具体性细化过于粗糙。预期结果未写,测试结果缺失预期未做判断,不明确具体需求。

APITesting.py

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Author : Benjamin# @Time : /9/19 9:51import requestsclass APITesting():def __init__(self,timestamp,target):self.timestamp = timestampself.target = targetself.url = "https://postman-/time/before?timestamp=%s&target=%s"%(self.timestamp,self.target)def Postman_TimeBefore(self):response = requests.get(url=self.url, verify=True)getTime = format(response.elapsed.microseconds / 1000, ".3f")res = response.textstatus = response.status_codeif res != '':return status, getTime, reselse:return status, getTime, "Internal Server Error"

DoFile.py

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Author : Benjamin# @Time : /9/19 10:03import timedef readFile(file="testCase.txt"):testCase = open(file, "r").readlines()return testCasefileRes = "testCaseRes%s.txt"%(int(time.time()))def benginFile():testCaseRes = open(fileRes, "w+")testCaseRes.write("%s,%s,%s,%s,%s,%s,%s\r" % ("timestamp", "target", "status", "getTime", "Actual result", "Expected results", "Test result"))testCaseRes.close()def keepFile(timestamp,target,status,getTime,res,Expectedresults,Testresult=""):testCaseRes = open(fileRes, "a+")testCaseRes.write("%s,%s,%s,%s,%s,%s,%s\r" % (timestamp, target, status, getTime, res, Expectedresults, Testresult))testCaseRes.close()

main.py

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Author : Benjamin# @Time : /9/19 10:03from APITesting import APITestingfrom DoFile import *def main():for i, data in enumerate(readFile()):if i == 0:benginFile()if i >= 1:print("Total:%s , Being:%s" % (len(readFile()) - 1, i))data = data.split(",")timestamp, target, Expectedresults = data[0], data[1], data[5]status, getTime, res = APITesting(timestamp, target).Postman_TimeBefore()# 判断预期结果页与返回结果是否一致,判断测试情况# Testresult = "pass" if Expectedresults.lower() in str(res) or Expectedresults == res else "fail"keepFile(timestamp, target, status, getTime, res, Expectedresults)if __name__ == "__main__":main()

testCase.csv

testCase.txt

testCaseRes1568871068.txt、testCaseRes1568871434.txt

3、必做New_QA_Homework.pdf

3.1 测试需求理解与用例设计

3.2 测试需求理解和测试用例设计

因为面试属于前的年代,已经忘了之后当时部分的手稿记录截取部分

必做题的中文解答.txt

1。*关于需求,如果您发现任何缺陷,或者您有任何担心/困惑,您将想澄清一下,请在下面列出。1、非会员租赁前是否交押金?2、付钱方式支持哪些?是否预付租赁费用?3、普通用户租赁未归还,超出部分租金如何计算?4、每月免费租借次数,是否限制租借时间,免费多少天?5、租赁时长不满一日,是否按一日计算?6、用户是S1会员,会员未到期中途是否可续费低等级会员?7、用户是S4会员,会员未到期中途可升级为S3会员?8、租赁过程中会员升级,每月免费租赁次数在现有租赁次数上增加次数,还是重新开始计算?9、租赁过程中会员升级,正在租赁中的DVD商品价格是否按照当前会员价计算?10、租赁中会员到期,超出部分按会员价计算还是正常价计算?11、若租赁中会员到期,超出租赁部分按正常价格计算,中途续费会员,中途非会员依然按正常价租?12、季度会员时间,1月是否等于30天,一年是否等于365天?13、免费租赁次数中,所有类型都免费?14、每天可使用免费租赁次数是否有限制?2。*我们现在没有人回答你的问题,所以请你做出自己的假设对于你在下面的每一个发现/关注/困惑。1、否2、在线支付、现金支付;否3、账号正常计算,坏账4、免费1天5、按一日计算6、不可降级续费会员7、可升级续费会员8、以当前会员等级身份重新计算次数9、以当前会晕等级身份重新计算租金10、到期后,超出部分按普通用户计算11、费用 = 免费 + 超出部分 + 续费后的免费 + 后期租借费用12、是13、是14、没有限制

必做New_QA_Homework_Question_one_two.txt

1. *Regarding the requirement, if you find any defects, or you have any concerns/confusion that you would like to clarify, please list them below.1. Is the deposit paid before the non-member leasing?2. What are the ways to pay? Is the rental fee prepaid?3. The ordinary user lease is not returned. How is the excess rent calculated?4, the number of free rentals per month, whether to limit the rental time, how many days free?5. The lease duration is less than one day. Is it calculated on a daily basis?6. The user is an S1 member. Can the member renew the low-level membership if the member has not expired?7. The user is an S4 member. If the member is not expired, it can be upgraded to an S3 member.8. In the process of leasing, members upgrade, the number of free rentals per month increases in the number of existing leases, or does it start again?9. During the leasing process, the member upgrades. Is the price of the DVD product being rented calculated according to the current member price?10. When the member in the lease expires, is the excess calculated according to the member price or the normal price?11. If the member in the lease expires, the excess part of the lease is calculated at the normal price, and the member is renewed in the middle, and the non-member in the middle is still rented at the normal price.12. Quarterly membership time, is January equal to 30 days, is it equal to 365 days a year?13. In the free rental period, all types of DVDs are free?14. Is there a limit to the number of free rentals available per day?2. *We don’t have anyone to answer your questions at this moment, so please make your own assumptions for each of your findings/concern/confusions below.1, no2. Online payment, cash payment; No3, the account is calculated normally, bad debts4, free for 1 day5, calculated by one day6, can not be downgraded renewal members7, upgradeable renewal members8. Recalculate the number of members at the current membership level9. Recalculate the rent with the current level of dizziness10. After the expiration, the excess is calculated by ordinary users.11, cost = free + excess + free after renewal + late rental fee12, yes13,yes14, yes3、Sorry, there's only a Chinese abbreviated version.For details, see the excle.Sheet: 3.1 AnswerSheet:3.2 Answer 没有写具体的测试用例只有测试数据。拙见:既然是功能测试实际时测试凭经验观察。Sheet:3.3 Answer 没有写具体的测试用例,只有测试点和一些注意的点。ps:Why not be honest with him about the futility of his Google translation? 一脸无奈╮(╯▽╰)╭4、test strategyAnswer:1、Software features to meet customer needs.2、Software features meet the requirements document.3、Easy to use software, easy to understand.4、Data accuracy.5、Compatibility test.6、The page loads smoothly and meets the needs of users in different network environments.7、Support for high performance access.8、User privacy, data security, payment security.9、Test case design phase certification check requirements.9.1 Write detailed test cases9.2 Test scenario analysis,Preparing test data9.3 Complete testing process9.4 Part of the API test9.5 Check the main module UI automation test and check some information5、5.1第三方依赖:1、Java项目,就Maven或固定的lib文件夹2、Python项目,写好配置文档指定库的版本号3、如果是测试支付中需要涉及到支付环境依赖,测试中改用测试环境代替。上线后挑选2-3中支付方式验证实际支付,其他的调起相应的页面4、如果测试中依赖于手机号短信验证,测试环境跳过验证。上线可通过第三方平台获取手机短信验证码;其他同理5.2交叉遍历测试,覆盖所有主分支情况,excle中写了部分正交表,根据实际情况分析挑选常见普通用户覆盖到90%的情况。

测试用例设计.xls

3.3 3.1 Answer

3.3 3.2Answer

3.3 3.3Answer

3.3 3.4Answer

4、选做Performance_Testing_Homework_v2.pdf

4.1 性能测试问题 展示

4.2 性能测试 解答

当时未做性能测试,有兴趣的小伙伴可以尝试做下通知博主更新。

5、面试反馈

不想聊太多已经过去的事,HR很认可,但用人部门回复:仅通过UI自动化和接口测试无法评判能力,测试的基本功是测试用例ta未完成。

面对这份作业也没有太多想说的……

三、结束语

勇敢面对过往,积极拥抱变化并寻求进步

如果觉得文章写不错,那就点个赞,点个收藏吧。

可关注微信公众号,后期有推文

思特沃克(ThoughtWorks) 外企面试题 面试经验分析 面试题 软件测试工程师 测试面试题分享 测试需求理解和用例设计编写 SeleniumUI自动化测试 接口测试 性能测试 实战之战损版

如果觉得《思特沃克(ThoughtWorks) 外企面试题 面试经验分析 面试题 软件测试工程师 测试面》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。