软件测试学习过程中遇到的面试题总结---随用随补

本文深入探讨了软件测试的各种方法,包括元素定位分析、定位八大方式、XPath定位策略,以及不同类型的测试如单元测试、集成测试、系统测试和验收测试。同时,讲解了黑盒、白盒和灰盒测试的区别,以及静态与动态、手工与自动化的测试形式。此外,还介绍了软件测试策略,如冒烟测试、回归测试、随机测试和探索性测试。最后,涉及软件生命周期中的不同阶段和缺陷定义,以及接口测试和HTTP协议在其中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.如果元素定位不到,你是怎么分析的?
  1. 元素没有加载完成
  2. Frame中
  3. 元素不可用,不可读,不可见
  4. 动态属性,动态的div层
    前提:需要定位的属性或者元素唯一
2.定位八大方法是哪几个?

id name class_name path css tag_name link_text partall_link_text

3.xpath定位各种方法

在这里插入图片描述

4.def setUp(self) -> None: None作用

这是type hint 指示出返回类型 类似于其他语言里的 void xxx()

5.隐式等待
def setUp(self) -> None: 
	self.driver = webdriver.Chrome() 
	self.driver.maximize_window() 
	self.driver.implicitly_wait(10)  # 隐式等待
	self.driver.get("http://localhost/")
6.单元测试,系统测试,集成测试,验收测试

按测试阶段划分

  • 单元测试:一块一块的(比如就测试一个输入框,就是一个单元)
  • 集成测试:又叫组装测试,就是在单元测试基础上,将所有模块进行有序递增的测试(输入框写完点击搜索,就是两个功能组装起来,有序递增测试)
  • 系统测试:将整个软件系统看成一个整体进行测试,前提是需求分析说明书
  • 验收测试:检验是否符合用户要求
7.黑盒测试,白盒测试,灰盒测试

按是否查看源代码

黑盒:不用管内部结构饿内部特性,只关心输入和输出结果
白盒:看里面代码
灰盒:两者都有

8.按是否运行

静态和动态

9.按是否自动化

手工和自动化

10. 软件测试策略
  • 冒烟测试:对基本功能测试,保证基本功能和流程走通
  • 回归测试:对之前的bug再次验证
  • 随机测试:对软件的重要功能进行测试,也包括之前测试的时候没有测到位的地方
  • 探索性测试:同时设计测试和执行测试
11.软件测试模型
  1. 瀑布模型:需求分析-概要设计-详细设计-编码-测试-维护
    只需要关注当前阶段。适合大型项目 比如银行,保险。特点文档较多。
    在这里插入图片描述
  2. V模型:还是和瀑布模型一样不响应需求特点(只需要关注当前阶段,文档多)
    在这里插入图片描述
  3. W模型(双V模型)
    在这里插入图片描述
    开发V:需求分析-概要设计-详细设计编码-集成-实施-交付
    测试V:验收测试设计-系统测试设计-集成测试设计-单元测试设计-单元测试-集成测试-系统测试-验收测试
    特点:测试伴随软件开发全过程
    优点:早参与,早发现,早解决
    缺点:技术和管理比较高
12.缺陷的定义

不满足用户的需求,实际结果和预期结果不一致
软件缺陷的核心内容:
在这里插入图片描述

13.HLD,LLD,SRS是什么?

HLD:概要设计文档(High level Document)
LLD:详细设计说明书
SRS:需求规格说明书(Software RequirementsSpecification)

14.如何测试微信朋友圈的点赞功能

https://blog.youkuaiyun.com/ETalien_/article/details/90182983?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-2.not_use_machine_learn_pai&depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-2.not_use_machine_learn_pai

15.请问如果用户点击微博的关注图标但是app上面没有反应,应该怎么排查这个问题

https://blog.youkuaiyun.com/qq_38028975/article/details/102490055

16.[经典面试题]完美洗牌算法

https://developer.aliyun.com/article/3575

17.封装

封装就是加了__ 俩下划线。别的类里面不能访问

18.多态

不同的对象,调用相同的父类方法,产生不同的结果
前提:不同的子类来自同一个父类,子类覆盖父类的方法

class duotai:
    def food(self):
        print("父亲吃肉")
    def eat(self):
        self.food()

class cat(duotai):
    def eat(self):
        print("儿子吃肉")

class dog(duotai):
    def eat(self):
        print("儿子喝酒")

e = cat()
e.eat()
d = dog()
d.eat()
d.food()
# 儿子吃肉
# 儿子喝酒
# 父亲吃肉
19.接口测试-http协议

接口测试- http协议

在这里插入图片描述

20.软件测试的目的

发现程序中的错误,并且为了更好的验证系统的功能和性能是否和需求吻合,测试不能表明软件中没有错误,他只能代表软件中有错误。

21.python @classmethod作用

就像是java里面的static一样,可以通过类名直接调用,相当于一个静态方法。它的作用就是有点像静态类,比静态类不一样的就是它可以传进来一个当前类作为第一个参数。

  @classmethod
    def get_date(cls,data_as_string):
        #这里第一个参数是cls, 表示调用当前的类名
        year,month,day=map(int,string_date.split('-'))
        date1=cls(year,month,day)
        #返回的是一个初始化后的类
        return date1
22.普通软件生命周期

问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段

23.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值