软件测试之python面试题,Python测试开发面试题
一、首先我们要了解我门做软件测试的原因,为什么要做软件测试
1.软件产品的监控和测量
并监视和测量软件产品的特性,主要依据软件需求规格说明验证产品是否满足要求。开发的软件产品能否交付,取决于预先设定的质量指标,交付前测试并达到预先设定的指标。
2.不合格品的识别和控制
对于软件测试中发现的软件缺陷,要认真记录其属性和处理措施,并进行跟踪,直至最终解决。消除软件缺陷后,再次验证。
3.产品设计和开发验证
通过设计测试用例来验证需求分析、软件设计和程序代码,确保程序代码与软件设计规范一致,软件设计规范与需求规范一致。验证中发现的不合格品也应认真记录、处理和跟踪。解决后,必须再次验证。
4.软件过程监控和测量
通过软件测试可以获得大量关于软件过程及其结果的数据和信息。这些数据可以用来确定这些过程的有效性,为软件过程的正常运行和持续改进提供决策依据。
二、为什么要做自动测试?好处是什么?
1.缩短测试周期。
2.避免人为错误。
说到自动化测试,它对应的是手工测试。“人非圣贤,孰能无过。”这种传统的人工测试大多靠人,简单总结一下可能就错了。
用例的执行方法是错误的。
*数据输入错误
用例执行步骤错误
*测试报告数据错误
*我忘了运行一些用例
*忘记设置预设条件。
误解被测系统的动作。
这些错误可以通过自动化来避免。
3.测试信息存储
测试自动化主要通过脚本自动化来实现。与传统的手工用例相比,脚本可以记录测试点、测试拓扑图、测试设计思路等信息。它是测试信息的理想存储位置,即“脚本反映思想”。另外,新人考的时候可以通过跑考来了解,从而快速了解被考飞行员。
4.容易获得保险
在一个好的自动化框架下,测试和运行自动化脚本很容易获得代码覆盖率,并根据覆盖率分析补充测试用例。
5.其他人
比如自动生成显式测试报告、定期执行测试集、重用黑盒测试测试集等。这些都是我没有亲身感受过的,但是在和一个网友交流的时候得到的。
三、自动化软件测试的学习路线
)1)自动化测试的学习步骤
)2)自动化测试所需的技术能力
)3)自动化测试的识别误差
一、自动化测试的学习步骤。
1.手工测试(掌握各种测试知识)2。学习编程语言)3。学习网络基础知识。学习自动化测试工具。学习自动化测试框架)6。实现自动化测试用例)7。自动化测试。
解释第二个问题。进行自动化测试需要哪些技能?当初我自己做的时候,一直是基于Python自动化的。同时,Python自动化比java自动化更容易获得。下面是如何根据Python自动化来学习自动化。为了解决这个问题,文章的后半部分还会分享自动化测试中容易出现的问题。坏习惯,思维导图在句末。
一.首先要学会一门语言,java或者Python,这里针对Python去说。如果要能够满足自动化测试的需求,不要求Python的能力上来就达到精通的水平,但是最起码的使用是要有的,然后在后期在逐步根据测试工具进行进阶。
二、需要掌握前端的一些知识,无论学习语言还是前端知识,都是为了接下来的脚本和框架做铺垫。
三、数据库的重要性不言而喻,MySQL必须掌握
四.web端自动化测试工具selenium
五、接口测试自动化工具jmeter、postman等
六、移动端自动化测试appium
自动化测试的12个认识误区
1.自动软件测试和手动软件测试是一样的。
自动化测试所需的技能不同于手工测试所需的技能。
通常你的项目经理会被测试工具的销售人员搞糊涂,以为自动化软件测试只是按下录制的按钮生成测试脚本。其实没那么简单。
区分自动化测试所需的技能和手工测试所需的技能是非常重要的。最重要的是,自动化测试工程师需要掌握软件开发技术。没有经过任何培训的手工测试人员和没有编程背景的手工测试人员在自动化测试中会遇到很多困难。
2、
自动化测试肯定会立即减少测试人员的数量。
自动化测试不会立即减少测试人员的数量。因为在自动化测试的初始阶段,需要一定的人力来开发自动化测试脚本,并且自动化测试脚本逐渐用于日常测试,从而逐渐减少人工测试人员从事重复性工作的时间和数量。为了缩短自动化测试脚本的开发时间,可以考虑外包自动化测试脚本的开发,尽快实现大规模的自动化测试。
3.测试自动化意味着记录和回放。
您刚才记录的不是有效的自动化脚本。
许多项目经理仍然将测试自动化等同于记录和回放工具。事实上,记录的脚本通常是不可重用的脚本,其中充满了硬编码的值。这些值应该被参数化,否则,脚本只适用于一种测试情况,脚本应该添加条件判断、循环等结构,以增强测试脚本的灵活性。
4.自动化测试中找不到bug。
自动化测试并不直接发现bug,而是把有经验的测试工程师的生产力从反复的回归测试中解放出来,从事新的测试方法和手段的研究。通过自动化测试,测试人员的时间和精力可以解放出来,间接发现更多更深层次的新bug,产品质量可以提升到一个更高的层次。
5.自动化测试工具是“万能的”
很多人一听说自动化测试,就认为自动化测试工具可以完成所有的测试工作,从测试规划到测试执行再到测试结果分析,不需要任何人工干预。显然,这是一种理想状态。现实中没有一个测试工具有这个能力,以后也不会有。现实中,相关的测试设计、测试用例以及一些关键的测试任务仍然需要人工参与,即自动化测试是人工测试的辅助和补充,它永远无法完全取代人工测试。
6.自动化测试工具易于使用。
在这方面,很多测试工程师都有同样的错误观点,认为测试工具可以简单的捕获(记录)客户端操作生成脚本,脚本不需要编辑就可以用于回放。事实上,自动化测试并没有这么简单。抓取的操作是否正确,脚本编辑是否合理,都会影响测试结果。因此,自动化测试需要更多的技能和培训。
7.自动化可以提供100%的测试覆盖率。
不是所有的东西都能被自动测试。不可能涵盖所有可能的输入、所有可能的组合和路径。
自动化测试可以增加测试的广度和深度,但由于没有足够的时间和资源,仍然无法达到100%的测试覆盖率。
8.忘记了测试的最终目的:发现bug。
在自动化测试中,还要注意边界值分析、等价类分析、基于风险的测试方法的应用,选择最合适的测试用例。
通常,在自动化测试的过程中,我们忙于构建自动化框架和编写测试脚本,却常常忘记了测试的最初目的:发现bug。
项目经理可能雇佣了最好的自动化开发人员来构建框架,使用了最新最好的自动化开发技术,并创建了成千上万的自动化测试脚本。但是如果bug仍然被遗漏,那些应该被自动化测试脚本捕获的bug没有被捕获,那么你的自动化测试仍然会被认为是失败的。
9.所有的测试用例都可以自动化。
并非所有的测试用例及步骤都可以转换成自动化测试。在自动化测试投入较多的行业中,一些领先的企业可以实现80%左右的自动化测试率,但仍有20%左右的测试用例需要人工进行。在国外,自动化测试脚本通常是在开发第一版测试用例的时候同步开发的,所以自动化测试率普遍高于中国企业。
10.只有性能测试需要自动化。
自动化测试不仅用于性能测试,也广泛用于功能测试和验证。国外超过一半的自动化测试脚本用于功能验证测试。
1.测试工具可以应用于所有的测试。
每个自动化测试工具都有其适用范围和可用对象,因此不能认为一个自动化测试工具可以满足所有的测试需求。根据不同的测试目的和测试对象,我们应该选择合适的测试工具对其进行测试。在很多情况下,需要使用各种测试工具或者开发一个自动化测试框架来达到自动化测试的目的。商业和开源测试工具可以用于自动化测试。但是我们需要根据自己产品的特点开发一个自动化测试框架,在框架中提供通用的测试用例,加快测试速度,复用测试用例。这是测试自动化未来的发展路径。
12.在自动化测试中可以发现大量新的缺陷。
发现更多的新缺陷应该是手工测试的主要目的,不能指望自动测试发现更多的新缺陷。事实上,自动化测试主要用于发现原始缺陷。自动化测试用于回归测试,而大量的新业务测试仍然更多的依赖手工测试。
除了上面列出的常见误解,还有其他不同的误解。归根结底,对自动化测试的误解最本质的原因是对自动化测试的不切实际的期望,也就是过高的期望。
如果我们没有树立正确的软件测试自动化概念,认为测试自动化可以完全取代手工测试,或者认为测试自动化可以发现大量新的缺陷,或者不愿意在初始阶段投入大量的资金,我们就会对自动化测试感到失望。
我相信通过这个回答,我知道了什么时候用手工测试,什么时候用自动化测试,也知道了自动化测试的局限性,这样我就不会质疑自动化测试的意义了。
学习路线会根据实际需要进行调整,需要最新的学习路线图[可点这]Q -q-u -n进行收集。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。