测试工程师-笔试题

一、测试人员在软件研发过程中,需要参与哪些流程环节?每个环节存在哪些风险?

答:需要参与流程为:需求分析审查、设计审查(包括设计文档和测试用例)、集成测试、功能测试、系统测试、验收测试、版本发布。

需求分析阶段的风险->产品需求变更的风险
设计审查->测试计划的工作量估计不准、遗漏测试点、测试类型
测试阶段->人员变动、开发提测推迟、代码质量不佳
版本发布->环境问题,配置文件的更改


二、写出Linux基本命令:

1)列出当前目录的文件

ls \ ll

2)从当前目录下创建一个子目录

mkdir test

3)从当前目录,将文件X,复制到/user/doc/目录下

cp X /user/doc/

4)在文件log中,查找字符串“target”

grep  -P 'target' *log

三、线上数据库有一用户信息表(USER_INFO)如下:

请写出sql,删除FirstName为Thomas或William,并且LastName为Carter记录。

LastName FirstName Address City
Adams John Oxford Street London
Bush George Fifth Avenue New York
Carter Thomas Changan Street Beijing
Carter William Xuanwumen10 Beijing
delete from USER_INFO where LastName=‘Carter’;
delete from USER_INFO where FirstName in ('Thomas','William') and LastName=‘Carter’;

四、用户在登录时,有哪些认证用户的方法?

1、静态密码:用户的密码是由用户自己设定的。在网络登录时输入正确的密码,计算机就认为操作者就是合法用户。静态密码机制无论是使用还是部署都非常简单,但从安全性上讲,用户名/密码方式一种是不安全的身份认证方式。
2、智能卡:智能卡认证是通过智能卡硬件不可复制来保证用户身份不会被仿冒。
3、短信密码:短信密码以手机短信形式请求包含6位随机数的动态密码,身份认证系统以短信形式发送随机的6位密码到客户的手机上。客户在登录或者交易认证时候输入此动态密码,从而确保系统身份认证的安全性。
4、动态口令:动态口令是应用最广的一种身份识别方式,一般是长度为5~8的字符串,由数字、字母、特殊字符、控制字符等组成。
5、USB KEY:基于USB Key的身份认证方式是近几年发展起来的一种方便、安全的身份认证技术。它采用软硬件相结合、一次一密的强双因子认证模式,很好地解决了安全性与易用性之间的矛盾。
6、生物识别:运用who you are方法, 通过可测量的身体或行为等生物特征进行身份认证的一种技术。
7、双因素:所谓双因素就是将两种认证方法结合起来,进一步加强认证的安全性。


五、一个CSV的对账文件如下:

商户订单号,交易订单号,交易时间,金额,服务费,交易状态
SH2342241,JY234555,2017-11-11 11:11:00,10000,10,成功
SH2342251,JY234666,2017-11-11 13:11:00,20000,40,失败
SH2342261,JY234777,2017-11-11 14:11:00,20000,15,成功
SH2342271,JY234888,2017-11-11 15:11:00,30000,17,失败
SH2342281,JY234999,2017-11-11 16:11:00,40000,19,成功
请使用你熟悉的语言实现一个统计的函数,参数为文件路径filepath,返回总订单数,总金额,总服务费,交易成功笔数,交易成功金额,失败笔数,失败金额。

import csv

def count(filepath):
    with open(filepath,'r') as csvfile:
        csvReader = csv.reader(csvfile)
        res = []
        for s,row in enumerate(csvReader):
            if s>0:
                res.append(row)

        money_list = []
        poundage_list = []
        for k in res:
            money_list.append(k[3])
            poundage_list.append(k[4])

        money = 0
        for i in range(0,len(money_list)):
            sss = int(money_list[i])
            money = money + sss

        poundage = 0
        for i in range(0,len(poundage_list)):
            sss = int(poundage_list[i])
            poundage = poundage + sss

        Successd = []
        Fail= []
        for i in range(0,len(res)):
            if res[i][5] == '成功':
                Successd.append(res[i][3])
            else:
                Fail.append(res[i][3])

        Successd_money = 0
        Fail_money = 0
        for i in range(0,len(Successd)):
            sss = int(Successd[i])
            Successd_money = Successd_money +sss

        for i in range(0,len(Fail)):
            sss = int(Fail[i])
            Fail_money = Fail_money +sss

        print("总订单数为:", len(res))
        print("总金额为:", money)
        print("总手续费为:" , poundage)
        print("成功的订单数为:", len(Successd))
        print("成功订单的总金额", Successd_money)
        print("失败的订单数为:", len(Fail))
        print("失败订单的总金额", Fail_money)


以上,

你可能感兴趣的:(测试工程师-笔试题)