zoukankan      html  css  js  c++  java
  • 富途网络科技系统测试工程师面试题记录

      

    1.笔试题:

    做笔试题的公司遇见的比较少,不过这也是筛选人才的一种方式吧,富途的测试笔试还是对于我来言有点难度,其中选择题比问答题要难,大概的讲一下我不确定的几道题。

    1.对于一个含有n个变量的程序,采用基本边界值分析法测试程序会产生()个测试用例。

    A、6n+1          B、7n            C、4n+1           D、5n

    答:C,做测试这么久,还真没有了解过边界值能产生多好条用例,然后我百度了一下

    作者:whylaughing,https://www.cnblogs.com/whylaughing/p/5821898.html ,里面讲的很到位,基本边界值产生4n+1条用例,健壮性测试生成的测试用例个数为6n+1,最坏情况的测试生成测试用例 5^n,健壮性最坏情况的测试生成的测试为7^n

    2.一堆数据进行入栈出栈操作,入栈顺序为{a,b,c,d,e,f,g},可能的出栈顺序为()

    A、{c,d,e,f,a,g,b}           B、{e,f,d,g,b,c,a}        C、{d,e,c,f,b,g,a}       D、{f,e,g,d,b,a,c}
    答:C,看了半个小时的入栈,出栈大概了解了,a-g入栈时,a-f可以随时都可以出栈,但是必须保证后进先出,

    A,   a入,b入,c入,c出,d入,d出,e入,e出,f入,f出,a不能出,因为b还没有出。

    B. a入,b入,c入,d入,e入,e出,f入,f出,d出,g入,g出,b不能出,因为c还没有出 

     C. a入,b入,c入,d入,d出,e入,c出,f入,f出,b出,g入,g出,a出  这样是ok的 

     D.a入,b入,c入,d入,e入,f入,f出,e出,g入,g出,d出,b不能出,因为c还没有出

    3.当 n =5时,下列函数的返回值是()

    int func(int n){
        if(n<=2){  return n;  }
        return func(n-1) + func(n-2);
    }
    A、8  B、13   C、5  D、6

    答:A,这是一道java的题,虽然我是java的小菜鸟,但是基本上还是看得懂,其实就是一个递归的用法,类似于python的

    def func(n):
        if n<=2:
            return n
        return func(n-1)+func(n-2)
    
    print(func(5))
    #8
    #  解释:5传入函数func(5)中,因为5大于2,所以 return func(4)+func(3)
    # func(4)中4又大于2,func(3)+func(2),func(3)中的 3大于2,所以就变成 func(2)+func(1)
    # 合起来就是 func(2)+func(1)+func(2)+func(1)+func(2)+=2+1+2+1+2=8

    4.已知三角形三边abc,现有个程序能判断这个三角形的类别(比如等腰三角形),请为这个程序设计测试用例。

    这个题比较简单,考虑到三角形的定义就能做出来,任意两边之和大于第三边的是三角形,其余特殊情况,三条边相等就是等边三角形,两两相等就是等腰三角形,任意两边的平方等于第三边的平方就是直角,其余的就不是三角形了

    5.设计用例测试下面的Python程序

    def Do(a,b,x):
        if(a>1) and (b==0):
            x=x/a
        if (a==2) or (x>1):
            x = x+2
        return x

    解题思路:可以用上unittest来进行单元测试,可能有错误,这块还得完善

    import unittest
    
    class MyTest(unittest.TestCase):
        def setUp(self) -> None:
            pass
        def tearDown(self) -> None:
            pass
    
        def test_a_1xiaoyu1(self):
    
            self.assertEqual(Do(0.5,1,1),1)
    
        def test_a_2dengyu0(self):
            with self.assertRaises(ValueError):
                Do(0,0,1)
    
        def test_a_3dengyu2_1(self):
            self.assertEqual(2,1,1)
    
        def test_a_4dengyu2_2(self):
            self.assertEqual(2,1,2)
    
    if __name__ == '__main__':
        unittest.main()

    6.公司数据库的在职人员表有name和deptment两个字段,分别表示员工姓名和所属部门。请写出一条SQL语句查出每个部门的人数。

    解题思路,查询出每个部门的人数,就是说得通过group by 来查询出部门对应的人数

    select deptment,COUNT(name) from zhiyuan group by deptment 

    7、圣诞节到了,公司举行交换礼物活动,参加的员工每人准备一个礼物。
    交换完成后,自己的礼物会随机给到另一个人,自己也能随机获得一个其他人准备的礼物。不要求A拿了B的礼物.,B就一定要拿A的,只要自己不拿自己的即可。为公平起见,请你写一个随机程序来决定礼物何分配。

    答:

    暂时没有做出来

    ---------------------------------------------------------------2020年3月28日-------------------------------------------------------------------------------------------------------------

    想了一晚上终于想出来了一种方式:

    import random,time
    k = {'a':'苹果','b':'梨子','c':'香蕉','d':'菠萝'} # 将每个人有自己的物品变为一个字典,这个字典可以灵活增加,暂不扩展,只做举例
    x = list(k.values()) # 将所有物品集中放入一个列表
    k1 ={} # 创建一个空字典,将交换成功的数据存入字典
    print("交换中......")
    for key in k.keys(): # 将人都遍历出来
    while True:
    if x !=[]:      # 跑到最后列表为空,随机会报错,所以在此判断
    x1 = random.choice(x) # 随机在列表中抽取一个数据
    if k[key]!=x1: # 如果从原字典对应的value不等于随机取出来的数,则存入k1
    k1[key]=x1
    x.remove(x1)  # 将取出来的数据从列表x中剔除
    break
    else:
    break
    for key in k1.keys():
    time.sleep(1)
    print("{}交换到了:{}".format(key,k1[key])) #遍历去除k1的数据

     目前这个程序有bug,原因是当a、b、c交叉交换以后,只留下了d造成死循环,如果有感兴趣的,可以针对此进行修改

  • 相关阅读:
    1.4.2.3. SETUP(Core Data 应用程序实践指南)
    1.4.2.2. PATHS(Core Data 应用程序实践指南)
    1.4.2.1. FILES(Core Data 应用程序实践指南)
    1.4.2. 实现 Core Data Helper 类(Core Data 应用程序实践指南)
    1.4.1. Core Data Helper 简介(Core Data 应用程序实践指南)
    1.4. 为现有的应用程序添加 Core Data 支持(Core Data 应用程序实践指南)
    1.3.2. App Icon 和 Launch Image(Core Data 应用程序实践指南)
    1.3.1. 新建Xcode项目并设置故事板(Core Data 应用程序实践指南)
    php验证邮箱是否合法
    如何使js函数异步执行
  • 原文地址:https://www.cnblogs.com/johnsonbug/p/12578959.html
Copyright © 2011-2022 走看看