金九银十,分享一波用例设计、数据库、编程笔试题!

2079 篇文章 51 订阅
809 篇文章 1 订阅

金九银十来了,很多小伙伴又双叒叕找工作了,最近收到一些求职小伙伴反馈过来的笔试题,摘取其中一些比较经典且常被考核到的用例设计题、数据库、编程题来给大家做个分享,望有助于大家的高薪求职之路!

一、用例设计题

1、某公司生产自动售卖机如下图所示,这款产品交给您测试,请写出您能够想到的所有需要测试的测试用例或测试点(注:只要您认为需要测试的点都可以列出来)。

测试点如下:

1)功能测试:

  • 商品选择测试

    • 测试各种商品是否能在屏幕上正确显示。

    • 测试商品图片与实际商品是否一致。

    • 测试商品信息(如价格、名称、库存量)是否准确。

  • 支付功能测试

    • 测试现金、银行卡、移动支付等多种支付方式是否支持。

    • 测试支付过程中是否出现卡顿、延迟或支付失败的情况。

    • 测试支付成功后,金额是否正确扣除。

  • 出货功能测试

    • 测试支付成功后,商品是否能正确出货。

    • 测试出货口是否有障碍物时,机器是否能正确提示。

    • 测试出货过程中是否出现卡顿、延迟或不出货的情况。

  • 找零功能测试

    • 测试现金支付时,找零是否准确。

    • 测试找零口是否有障碍物时,机器是否能正确提示。

  • 退货退款功能测试

    • 测试商品质量问题或其他原因退货时,退款流程是否正常。

    • 测试退款金额是否正确返回至原支付账户。

2)性能测试

  • 响应时间测试

    • 测试从选择商品到支付成功,再到出货的整个流程的响应时间。

    • 测试在高并发场景下,售卖机的响应时间和性能表现。

  • 稳定性测试

    • 测试售卖机长时间运行后是否出现卡顿、死机或重启的情况。

    • 测试在断电、断网等异常情况下,售卖机的恢复能力。

3)安全测试

  • 支付安全测试

    • 测试支付过程中是否存在泄露用户支付信息的风险。

    • 测试支付密码输入时是否有防窥视措施。

  • 防作弊测试

    • 测试是否有防止重复扫码、盗刷等作弊行为的措施。

    • 测试商品被替换或偷盗时,售卖机是否能正确识别并报警。

4)兼容性测试

  • 不同支付方式兼容性测试

    • 测试不同品牌、型号的银行卡、移动支付APP等是否能正常支付。

  • 不同尺寸商品兼容性测试

    • 测试售卖机是否能适应不同尺寸、形状的商品。

5)用户界面与体验测试

  • 界面设计测试

    • 测试界面是否简洁明了,易于操作。

    • 测试字体大小、颜色等是否便于阅读。

  • 交互体验测试

    • 测试用户操作流程是否顺畅,是否符合用户习惯。

    • 测试是否有必要的提示和反馈,如支付成功提示、出货提示等。

  • 异常处理测试

    • 当出现异常情况(如缺货、支付失败等),售卖机是否能给出明确的提示和解决方案。

6)安装与维护测试

  • 安装过程测试

    • 测试售卖机的安装过程是否简单明了,是否提供详细的安装指南。

    • 测试安装过程中可能出现的问题及解决方案。

  • 维护过程测试

    • 测试售卖机的日常维护和保养流程是否便捷。

    • 测试维护过程中是否容易更换零部件或进行维修。

2、现有一个app,然后需要对app中的充值功能编写测试案例,客户有多张卡,实际的扣款渠道是银联支付、建行直连支付。

充值解释:客户通过app,输入金额,选择对应的银行后,将银行卡中的资金充值到app的钱包中。

用例设计如下:

1、正常充值流程1:选择扣款渠道(建行直连)--> 输入金额-0.01 --->输入正确6位交易密码 ---> 查看充值结果,是否充值成功,及各项数据展示正常(扣款状态-扣款成功、计算收益时间/到账时间、交易详情-扣款金额-扣款渠道);银行卡扣款成功;

2、正常充值流程2:选择扣款渠道(银联支付)--> 输入金额-单笔限额---5万 --->输入正确6位交易密码 ---> 查看充值结果,是否充值成功,及各项数据展示正常;银行卡扣款成功;

3、正常充值流程3:选择扣款渠道(银联支付)--> 输入金额-银行卡最大余额 --->输入正确6位交易密码 ---> 查看充值结果,是否充值成功,及各项数据展示正常;银行卡扣款成功;

4、不选择银行卡,不能进入下一步

5、充值异常测试:0、负数、单笔限额--5万+0.01元、 银行卡最大余额+ 0.01元、非数字、不输入;

6、弱网络环境,充值多次提交,是否只被执行一次;输入交易密码,长时间未提交是否合理提示;

7、交易密码输入异常:5位、密码错误、错误密码次数超过一定限制是否锁定账号、为空;

8、点击忘记交易密码 -- 是否正常重置密码流程;

9、关注跨天、跨月、跨年的时间节点,例如23:59:59充值,查看充值结果是否正常;

二、数据库题

1、现有学生表、课程表、成绩表,表结构如下:

1)查询课程编号“01” 课程比“02” 课程 成绩高的所有学生的学号

答案:

SELECT s1.sid FROM score s1 JOIN score s2 ON s1.sid = s2.sid WHERE s1.cid = '01' AND s2.cid = '02' AND s1.grade > s2.grade;

2)查询所有同学的学号、姓名、选课数、总成绩

答案:

SELECT student.sid, student.sname, COUNT(score.cid) , SUM(score.grade) FROM student,score Where student.sid = score.sid GROUP BY student.sid, student.sname;

2、Oracle数据库中现有两个表:发票明细表、发票明细清单表。表信息如下:

1)已知购方纳税人识别号 140301123456789,查询所有该纳税人所开发票明细及明细清单。答案:

select * from 发票明细表 a join 发票明细清单表 b on a.发票代码 = b.发票代码 and a.发票号码 =b. 发票号码 where a.购方纳税人识别号 = "140301123456789";

2)已知购方纳税人识别号 140301123456789,删除该纳税人所有发票明细及明细清单。

答案:

因为发票明细表与发票明细清单表有外键约束,先删除发票明细清单表的记录,再删除发票明细表。

delete from 发票明细清单表 where 发票代码 in (select 发票代码 from 发票明细表 where 购方纳税人识别号 = "140301123456789" )and 发票号码 in (select 发票号码 from 发票明细表 where 购方纳税人识别号 = "140301123456789");

delete from 发票明细表 where 购方纳税人识别号 = "140301123456789" ;

三、编程题

1、现有一个程序实现这样的功能:读入三个整数值,这三个整数值表示三角形的三个边长,该程序打印信息表明三角形是不等边三角形、等腰三角形或等边三角形。画出程序流程图,并用任意一种程序设计语言设计该程序(请注明语言)。

答案:Python实现如下:def classify_triangle(a, b, c):  

    # 检查输入是否为正整数  
    if not (isinstance(a, int) and isinstance(b, int) and isinstance(c, int) and a > 0 and b > 0 and c > 0):  
        raise ValueError("输入错误:边长必须是正整数")  
   
    # 检查是否能构成三角形  
    if a + b <= c or a + c <= b or b + c <= a:  
        return "无法构成三角形"  
   
    # 判断等边三角形  
    if a == b == c:  
        return "等边三角形"  
  
    # 判断等腰三角形  
    if a == b or a == c or b == c:  
        return "等腰三角形"  

    # 否则是不等边三角形  
    return "不等边三角形"  

2、现有两个json字符串s1、s2如下:

1)打印出s1中的AppllicationVol的值

答案:

先通过json库中json.load把json字符串转成字典,再通过Python字典取值:json_s1=json.loads(s1)

ApplicationVol_value = json_s1["detail"]["ApplicationVol"]

2)比较s1、s2,打印出不一致的地方

答案:# 将 JSON 字符串加载为字典

json_s1 = json.loads(s1)
json_s2 = json.loads(s2)

# 手动比较 s1 和 s2 并打印出差异
def compare_json(json1, json2, path=""):
    differences = []
    for key in json1:
        if key not in json2:
            differences.append(f"在路径 {path} 中,第二个 JSON 缺少键 '{key}'")
        else:
            if isinstance(json1[key], dict):
                differences.extend(compare_json(json1[key], json2[key], path + f".{key}"))
            elif json1[key] != json2[key]:
                differences.append(f"在路径 {path}.{key} 中发现差异: '{json1[key]}' vs '{json2[key]}'")
    for key in json2:
        if key not in json1:
            differences.append(f"在路径 {path} 中,第一个 JSON 缺少键 '{key}'")
    return differences

# 比较两个 JSON 对象
differences = compare_json(json_s1, json_s2)
if differences:
    print("发现的差异如下:")
    for diff in differences:
        print(diff)
else:
    print("未发现差异")

学无止境,行以致远。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值