Linux命令
Linux
cd 切换目录
ls 查看 ls -l 列的展示方式查看,显示文件的详细信息 ls -a 列出当前文件下所有文件(包括隐藏文件)
touch 创建文件的命令 输入vi aa.log 进行编辑,输入i进行编辑,输入:q!直接退出,输入:wq!保存退出
mkdir 创建目录
echo 创建带有内容的文件 [i,kou]
cat 查看文件内容 如创建 echo “aab” > mookhello , 显示文件内容cat mookhello 显示 aab
mv 移动或重命名
rm -r 递归删除,rm -f 强制删除文件 ,rm -rf 强制递归删除
cp 拷贝 cp mookhello mook2
wc 统计文本中的行数,字数,字符数
ps -ef 查看全部进程
ps -ef | grep java 查看java进程
tree 显示目录结构
ln 【eln】 创建软链 ln -s abb acc 则acc 是abb的软链, 通过ls -l 进行查看
more less 分页显示文本内容 more dd 显示dd 所有内容,less dd 显示dd内容,分页显示
head,tail 显示文件头尾内容 head -2 dd 显示dd文件头两行内容, tail -2 dd 显示dd文件后两行内容
curl 利用url规则,在命令行下工作的文件传输工具 curl www.baidu.com 抓取百度页面所有内容
netstat [net,stat] 显示网络状态信息
telnet 用于登录远程主机 telnet 127.0.0.1 链接本机主机,提示connection refused
ping 测试网络连通
top 动态显示当前耗费资源最多进程信息
df命令作用是列出文件系统的整体磁盘空间使用情况 df -h 以人们易读的GB、MB、KB等格式显示
clear 清屏
tail -100f test.log 实时监控100行日志 tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行
查询日志中含有某个关键字的信息
cat app.log |grep 'error' cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的 grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
cat /proc/cpuinfo 查看cpu信息
cat /proc/meminfo 查看内存信息
查看日志相关:
查看实时日志
tail -f rizhi.log cd到指定路径,用tail -f 查看日志文件 默认查看最后十行
查看所有日志
cat aa.log
分页查看前N行日志(从日志最后往前看20行,每次增加5行显示,按空格键进行换行)
tail -n 20 aa.log | more -5
查看实时日志,并检索关键字(-f 默认检索最后十行的内容)
tail -f aa.log | grep "error"
检索日志,并显示该检索内容前后N行内容(cat 查看整个日志文件,检索内容是“5”,-B2显示检索内容的前2行,-A2显示检索内容的后2行)
cat aa.log | grep -n -B2 -A2 "5"
查看日志,从第3行开始,显示2行(前后数往前推3行,然后显示这3行中的头2行)
查看20行之后的所有内容(包括20行和之后的行,从第一行开始数)
tail -n +20 aa.log
查看日志头2行内容(从第一行开始数)
head -n 2 aa.log
查询日志中除了最后18行其它所有的日志
head -n -18 aa.log
查询日志中包含某个关键词,并显示行号(检索5,并显示行号)
cat -n aa.log | grep "5"
查看日志,从第10行开始,显示4行并显示行号
cat -n aa.log | tail -n +10 | head -n 5(或者显示第12行,前2行和后2行)
根据日期时间段查询(前提日志总必须打印日期,先通过grep确定是否有该时间点)
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' app.log
把日志保存到文件(把检索到的内容保存到bb.txt中)
cat -n aa.log | grep "1" > bb.txt
进程相关命令
列出目前所有的正在内存当中的程序,Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux
ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同
ps -aux
显示所有进程信息
ps -ef
ps 与grep 常用组合用法,查找特定进程
ps -ef | grep ssh
显示指定用户进程
ps -u root
将目前属于您自己这次登入的 PID 与相关信息列示出来
ps -l
列出类似程序树的程序显示
ps axjf
显示当前所有进程的进程号和进程ID
pstree -p
显示所有进程的所有详细信息,遇到相同的进程名可以压缩显示
pstree -a
top命令可以动态管理监控linux进程,非常类似于Windows任务管理器
top
设置top命令10秒刷新一次
top -d 10
显示程序及其完整相关信息
top -c
设定监控信息的更新次数。如设定系统任务信息更新5次后结束top命令,在命令行提示符下输入:
top -n 5
查看端口号被哪个进程占用了
ps -ef | grep 8080
先用ps查找进程,然后用kill杀掉
kill 3268
强制终止进程:这种方法应该尽量少用
kill -9 3268
Mysql
group by
having 语句
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行
DELETE FROM i_member_author WHERE id in (select u.id from temp_id_backup u WHERE type='author');
1、查询”01”课程比”02”课程成绩高的学生的信息及课程分数
select s.sid,s.sname,s.sage,s.ssex,sc1.score,sc2.score from student s,sc sc1,sc sc2 where sc1.cid=1 and sc2.cid=2 and sc1.score>sc2.score and sc1.sid=sc2.sid and s.sid=sc1.sid;
2、查询同时存在”01”课程和”02”课程的情况
select * from course c1,course c2;
3.查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩
select s.sid,s.sname,avg(score) from student s,sc group by s.sid having avg(score)>60;
手机老显示应用程序无响应是怎么回事
建议按以下方法查看是什么原因造成的并解决:1、程序缓存过多:在手机设置--应用程序--全部--找到出现停止运行的程序--清理数据;(大部分手机都可以通过此方法解决的)。2、手机内存过低:系统运行程序多,内存不足,在设置—应用程序—正在运行,关闭其他后台运行程序。3、安装位置不对:进入设置--储存--首选安装位置--由系统决定,更改储存位置。4、程序不兼容:建议卸载重新安装该程序或卸载了一些与系统不兼容的程序。5、程序本身问题:有些程序本身存在问题。6、若排除以上方法后仍出现没有响应的情况,建议恢复出厂设置,或者重刷固件。
手机端android app崩溃的常见类型
1. 网络异常
通常在网络异常的情况下,客户端发出的请求,没有在一定时间内得到恢复
2. 内存问题
通常在开发程序的时候,内存的泄露或者没有正常回收,造成程序随着操作越来越多,占用的内存越来越大,最终导致崩溃的发生。
3. 接口返回值错误
通常会遇到接口返回值和预期返回值不相同的问题,如果App前端处理不太周全的情况下,会出现程序崩溃。
4. 手机特定类型错误
因为安卓手机毕竟有着众多的品牌和类型,软件在运行的过程中难免会出现功能和某些测试机器,或者不同UI上出现崩溃的问题。
5. 渲染图片出现的问题
因为在Android系统在渲染图片的时候需要加载到内存中,所以App上的一些图如果过大,可以造成崩溃事件的发生。
去重
ids = [1,2,3,3,4,2,3,4,5,6,1] aa = [] for i in ids: if i not in aa : aa.append(i) print(aa)
二分法查找
def merge_search( li ,item ): #传来的列表每次都是新生成的,如果发现里面没有元素,则是查找到尽头都没找到 if not li : return False mid = len(li)//2 #mid记录li的中间位置 print(mid) #检查一下 如果中间这个数就是要找的元素 返回真 if li[mid] == item : return True # 如果mid比item大,说明item可能会出现在mid左边,对左边再查找 elif li[mid]> item : print(li[:mid]) return merge_search( li[:mid] ,item ) # mid 比item小,说明item有可能在mid右边,对右边再查找 else : return merge_search( li[mid+1:] , item ) if __name__ == '__main__': li = [1,2,3,4,5,6,7] print( merge_search(li , 0) ) #False print( merge_search(li , 1) ) #True
为什么要在一个团队中开展软件测试工作?
答:软件测试在整个一个团队中占有非常重要的地位,具体来说就是测试是一个发现软件错误的过程,执行软件测试会以最少的人力和时间,系统的找到软件存在的缺陷和错误,建立起开发人员和使用者对软件的信心。
测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
答:测试计划工作是对测试工作内容的一个有效的组织和规划,能保证测试工作有效的展开。测试计划工作包括测试目标,测试范围的定义,测试方法的选择,测试进度里程碑,测试资源的有效配置和管理。
测试计划工作也称为测试策略,主要描述测试工程的总体方法和目标,描述目前在进行那一阶段的测试(单元测试,集成测试,系统测试)以及每一阶段内进行的测试种类(功能测试,性能测试等)确定测试范围,生成测试数据等。
其中软件计划中的测试目标最重要,他的软件测试的所需要达成的最终结果。
您认为做好测试计划工作的关键是什么?
答:1. 明确测试的目标,增强测试计划的实用性
2. 坚持“5W”规则,明确内容与过程,’what”why”when”where”how’
3. 采用评审和更新机制,保证测试计划满足实际需求
4. 分别创建测试计划与测试详细规格、测试用例
您所熟悉的测试用例设计方法都有哪些?
答:有黑盒和白盒两种测试种类,黑盒有等价类划分法,边界分析法,因果图法和错误猜测法。白盒有逻辑覆盖法,循环测试路径选择,基本路径测试。
自动化测试碰到比较难解决的问题是什么?如果出现这些问题给出你的解决方案?
重点引导到测试结果定位准确这个角度上来, 在自动化程度比较高,case很多,就会存在排查失败的case过程。
解决方案; case错误分类,有效的log日志,异常信息的抓取
结合你以前的学习和工作经验,你认为如何做好测试。
根据我以前的工作经验,我认为做好工作首先要有一个好的沟通,只有沟通无障碍了,才会有好的协作,才会有跟好的效率,再一个就是技术一定要过关,做测试要有足够的耐心,和一个良好的工作习惯,不懂的就问,实时与同事沟通这样的话才能做好测试工作。
如果一个很有个性的程序员认为自己的BUG不是BUG,怎么解决?
首先我要确定我所提的在我认为是不是bug,如果我认为是的话我会在他面前重现这个bug和他讲这是个bug,和他沟通,或者我会找到我的直系领导让他解决。
首先把自己的理由告诉开发人员。在同开发人员沟通到底是不是bug,但是如果开发人员还是认为不是bug的话,就把这个问题提到项目经理处,同时附上自己的理由。有项目经理决定是否为bug。
你对未来的规划
我想在工作中慢慢的积累经验,使自己强大起来,能够担任更重要的职务。
自己优势及缺点
你认为测试人员需要具备哪些素质?
我认为做测试的应该要有一定的协调能力,因为测试人员要经常与开发接触处理一些问题,如果处理不好的话会引起一些冲突这样的话工作上就会做不好。还有测试人员要有一定的耐心,有的时候做的测试很枯燥乏味的。除了要有耐心之外还要细心,不放过每一个可能的错误。
我手上这支笔,请你根据这支笔设计测试用例
首先我要测它的外观、颜色是否符合要求、她所占的空间是多大、是否环保、接下来测它的质量、这支笔是否能够写字流畅、写出的自得颜色是否符合要求、能使用多长时间等
没有任何说明书,如何进行测试?
首先是通过对软件测使用来熟悉整个软件,接着是与开发沟通掌握软件的特性并一一记录下来,作为测试的依据。
这个情况下我们就要进行探索性测试,把软件当成用户需求,一步步进行测试。凭借经验判断功能正确与否,有的时候还可以与项目经理、开发人员一起进行交流沟通,从而进行更好的测试。
测试活动中,如果发现需要文档不完善或者不准确,怎么处理?
答:要及时的与项目经理进行沟通协调。要在邮件中详细的把不完善不准确的地方描述出来,并提出自己的意见。
你认为做好测试计划工作的关键是什么?
答:首先,要有一个明确的目标,详细的阅读需求文档说明。
其次,要对整个测试人员、测试时间、测试进度进行一个预估,并预先进行管理。
最后,要对整个测试流程设定一个规范,所有测试人员都按着规范做事,不能随心所欲的测试。
简述软件系统中用户文档的测试要点?
完整性:用户文档中功能的描述要完整的。不能让用户产生疑问。
一致性:用户文档中的功能描述要与实际软件中的功能一致。不能描述过盛。
易使用性:用户文档描述的内容要方便用户阅读并且能够让用户很清楚的知道如何操作。
图表:有的时候用图表描述会很明了。
完全测试程序是可能的吗?
不可能
测试人员对程序进行测试,只能找出程序中的bug,但是并不能保证程序是没有bug的。
完全的测试要花费很多的人力财力,并且测试的数据量过大,很浪费时间。测试的结果还很多,有的都是类似的,没有必要进行相同的测试。所以完全测试是不可能的。
软件测试的风险主要体现在哪里?
主要体现在没法完全测试。有些问题可能隐藏在没有测到的地方。这样子就被忽略了。客户使用的时候并不熟悉软件是如何操作的。可能有的时候会误点点出问题。这样子的话我们就要承担很大的风险了。
所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗?
从理论上来说所有的缺陷都是可以修复的,但是并不是所有的缺陷都要修复。
一些对于软件没有影响的、不影响使用的缺陷我们可以不用修复。因为修复些细小的缺陷也是需要花费很多时间。项目上面可能会因为时间问题而先忽略这些小缺陷。
开发人员老是犯一些低级错误怎么解决?
要在开发的前期就制定好一些编码规范,这样子可以减少很多因为个人习惯引起的错误。同时,测试人员在发现开发人员犯一些低级错误的时候不可以指责他们,要耐心的给他们指出错误所在。然后可以有开发人员自己进行测试,找出一些一眼看得出来是错误的地方。
什么是兼容性测试?
兼容性测试是检查软件在不同软件平台,硬件平台上是否可以正常运行的测试。主要查看软件在不同操作系统、浏览器、数据库中是否运行正常。
怎样做好测试计划?
答:1)理解系统。从整个系统的高度了解被测系统必须满足的功能和非功能性需求。利用涉及整个系统的文档,形成对系统的整体了解。
2)及早介入。为了深入了解项目,测试人员应该在系统的开始阶段介入,可以增加对客户需求,客户问题,潜在风险以及最重要的功能方面的理解
3)测试期望。程序员的期望是什么?客户的期望是什么?销售对测试的期望又是什么?测试目标必须是绝对的,以免说不清是否达到目标。
4)吸取教训。把以前工作中学习到的经验教训运用过来,对确定测试策略很有作用。
5)工作量太小。完成测试需要多少工作量?需要多少人员?
6)技术选择。系统会采取什么技术?系统会采用什么架构?这些信息有助于确定测试策略和测试工具。
7)时间表。系统开发和测试分配的时间有多长?截止日期是什么时候?