测试工程师-笔试题
一、测试人员在软件研发过程中,需要参与哪些流程环节?每个环节存在哪些风险?
答:需要参与流程为:需求分析审查、设计审查(包括设计文档和测试用例)、集成测试、功能测试、系统测试、验收测试、版本发布。
需求分析阶段的风险->产品需求变更的风险
设计审查->测试计划的工作量估计不准、遗漏测试点、测试类型
测试阶段->人员变动、开发提测推迟、代码质量不佳
版本发布->环境问题,配置文件的更改
二、写出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 csvdef 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 + ssspoundage = 0
for i in range(0,len(poundage_list)):
sss = int(poundage_list[i])
poundage = poundage + sssSuccessd = []
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 +sssfor i in range(0,len(Fail)):
sss = int(Fail[i])
Fail_money = Fail_money +sssprint("总订单数为:", len(res))
print("总金额为:", money)
print("总手续费为:" , poundage)
print("成功的订单数为:", len(Successd))
print("成功订单的总金额", Successd_money)
print("失败的订单数为:", len(Fail))
print("失败订单的总金额", Fail_money)
以上,
推荐阅读
- 人性的弱点-笔记
- 女生该不该用小号测试男朋友()
- BNC公链|BNC公链 | Eth2.0测试网Topaz已质押超100万枚ETH
- 我的软件测试开发工程师书单
- 性能测试中QPS和TPS的区别
- 如何在手机上查看测试vue-cli构建的项目
- 工作好忙
- javascript|javascript 性能测试笔记
- 灵魂测试……
- Android智能手表MMI测试检测系统