0%

2020毕业设计日记

我就记一下导师和我说过什么/毕设的进度/加上一些自己的吐槽。

毕设主要文件都放在 Gayhub 上了 - wsswms/graproj2020

要是导师翻我博客看到了请千万不要杀我

05/21

完成了软件使用说明书的初稿,毕设就剩最后的答辩PPT了

05/19

使用jQuey和layui重写了前端部分,整的好看点,方便之后写说明书以及答辩展示用。

一直写到将近凌晨3点,明天多睡会,下半天开始写说明书

05/17

凌晨导师终于在群里出现了

已经写了论文初稿的,我看了下,内容上基本都还说的过去。毕竟你们参考的模板是南京大学软件学院研究生毕业论文的模板
后续需要注意的问题:
论文格式需要养参照通达的模板,大家做的都是软件类的课题,所以需要一个软件使用说明,作为毕设提交材料的一部分,这个不在论文里
答辩时间预定是6月4日,答辩时要求能够演示自己的工作,这个希望大家考虑一下如何演示
没人需要完成一篇英文文献的翻译,这个之前是不是还没有给大家指定?回头我会发给大家。

老师你之前给我定的翻译就是那个DOM-Based Test Adequacy Criteria for Web Applications

OK,都不记得了

软件使用说明就按照通达要求4000字左右可以吧

可以

这么看来,导师到答辩开始之前估计都不打算出来了
最近几天放松一下,可以开始慢慢写软件说明书和PPT了
先把TODO给更新一下

05/16

今天就列了个答辩PPT的框架,果然周末家里人多就没什么动力
导师还是没有回信,QQ又发了个消息,等周一看看吧
问了一下通工的朋友,那边也还没有答辩日程,看来可以不用那么急了

同导师不同题的F同学和L同学看样子都写好初稿了
一直抓着我的C同学今天也在问我莫名其妙的问题
早知道不给她代码了

05/15

今天按道理要交论文了,但是导师还没回复,暂且不管了吧
打算之后几天开始做答辩的PPT,先要找个模板或者框架之类的,我还不知道要写点什么

C同学从下午开始就在问我一些没头没脑的问题
随便列举几个:
同学你开发过程中用了哪些技术和理论呀
对了那个你写的是啥语言啊
请问你的代码是用maven做的吗
tomcat能用嘛
你不用自己下载这些软件吗?
你写的代码是用maven运行的嘛 那是不是不能用在tomcat上
你用的什么软件啊
你的插件怎么下载的啊 不是要翻墙嘛
我用你的那个代码 应该在谷歌上运行不出来吧
不是在软件里面运行之后在浏览器里面显示出来嘛
我在下idea 可以教教我怎么用嘛
光那个代码没完呢是吗
你有idea的账号吗 想问你借一下那个idea的账号
……之类的
就很无奈,服务器核心代码都给她了,但是她还是一点都不会
先不说论文了,答辩怎么办呢
我觉得能给她代码已经仁至义尽了
结果晚上本来想搞点ProjectSEKAI拆包的内容,后来都变成给她答疑浪费时间了
问点有意义的还好,结果她真的是一点点都不会
我开始有点怕她直接把我的代码往论文上贴了

05/14

F同学找我,借我的论文看,说是要参考一下格式
想了下还是给他吧,反正题目也不一样
就算最后流转到了C同学手里,估计她也没法抄
聊到查重,因为发给导师的论文一直没有回复,我就拿去做一次查重了
还好,重复率才11多,SAFE

晚上把查重报告和文献翻译都一起发给导师了,反正都要交的
要是到时候说我没交就麻烦了
总之先丢过去

05/13

C同学又来找我,问我之前的github链接怎么打不开了
我找了个理由搪塞过去,还是把服务端的代码给她了,里面的MD说明文档还有笔记之类的都删掉了
事实比我想象的更惨,她用的win7系统还没有开文件后缀名显示,电脑里也没有Java能用的IDE,除了maven的xml配置文件以外都不知道怎么打开
哎,只能帮到这里了,说更多我就没法毕业了

F同学问我论文写多少了,他写了1w3多一些,打算明天写完
写完了,还1w6的字数,字符数都2w4起步了,怎么想都满足我校的要求了

顺便一提今天导师还是没回复,很烦

05/12

今天上半天做图表,下半天排版,晚上给文献翻译排版
做了一天的word用户,累死我了
傍晚总算是把论文发过去了,等着他看看初稿我再去查重吧

C同学在弄论文和翻译了,问了四五家都不接,还在托朋友问问有没有渠道
然后发给我一个网课列表,问我有没有我们毕设里用的到的
我一看,都是些用不上的东西,也就js+html+css能用得上一些
啊,甚至她连毕设字数要求都不清楚,我的天
据她所说,实习的内容还是在做手机相关的测试,虽然我也不知道是什么玩意就是了

原来还以为她工作和计算机无关,直接把github内容给她还是有点不太好
所以砖头就去设成了private,顺便论文之类的东西也能放回去了
但愿她之前没下载

05/11

今天也是写了一天论文,基本都在补充后面的实现和测试部分
写到晚上也差不多写完了,14800左右
打算明天补补就能交初稿了

05/10

凌晨导师回了邮件,给了一个软件开发相关的硕士生毕业论文作参考
看了一眼,东西挺全的,睡醒了就开工吧

早晨开始写论文,开头部分写的很顺。

问了问L同学的进度,才写了一半的论文,说程序瞎搞的,还需要改

C同学那边的淘宝店已经彻底没有消息了。
据她所说,有同学给她推荐了老师,可以找老师要程序,就是会贵一些
实在看不下去了,就把github链接给了她,她说自己会改,虽然我觉得她看不懂也不知道上哪里去改就是了

问了问F同学的进度,说是在赶论文
程序也是找了淘宝店但是没人接

一天下来没怎么休息写了9000字,速度还挺快

05/09

朋友来找我聊天,顺便问了问毕设进度。好像他也进行到最后的论文初稿部分了
虽然我还在整合程序,感觉马上就可以开始写论文了。

给导师发了个邮件,先说了一下进度,然后找他要范文看看。

别专业的X同学说可能要15号交终稿,有点慌
晚上班上开了班会,重点摘录如下:
毕设论文和答辩相关

  1. 论文查重,标准<30%,5月15日之前将论文写完定稿,专业+学号+姓名(最起码初稿要写完
  2. 答辩日期:5月25 - 6月5日,各个专业时间不同。网络视频答辩,教务推荐使用腾讯会议,由答辩小组自行决定。在单独空间进行线上答辩,出示身份证给教师核对,全程在线并且截图答辩图片一张
  3. 准备一份PPT,时间15-20分钟,逻辑清晰,介绍项目,涉及的内容,使用的技术,创新点,等等
  4. 延期答辩时间在6月30号之前

装订材料:

  • 封面
  • 任务书
  • 开题报告
  • 中期检查表
  • 答辩资格审查表
  • 论文主体部分(原创性声明、摘要和关键词、目录、正文、结束语、致谢、参考文献、附录
  • 封底
    附加:指导教师评价表、评阅评语表、答辩评分表(3-5张)、答辩成绩表、外文文献翻译、查重报告、指导过程记录表

看来缺的还挺多,抓紧时间

05/07

最近两天一直在往死里写服务端,9-23点这种状态,午饭也基本不吃的
还好,进度还可以,真正写起来就感觉没那么难了
还在写API的阶段,感觉把评分部分整合进去也不难,顿时就没那么急了

晚上和学弟出去吃饭,正好和同届的人聊到了毕设的进度问题
顺便问了问C同学找的淘宝店进度,她说在催了,而且她文献翻译也没做,甚至不知道要翻译哪一篇
我的天呐姐姐,文献翻译还有1w多的字数呢,祝你好运

05/05

啊,本地的评分程序算是写完了,之后要研究Springboot
先从之前demo的代码开始一行行看,应该看完就会写了

05/01

F同学来问我的进度了。“做了一大半了”
顺便还是有联系不上导师的问题。
他的代码也没有头绪
看来另外3位都差不多,都属于不会做的类型

04/23

之前这一周多,一边看Springboot一边做文献翻译
文献是翻完了,但是Springboot看不懂
先写个本地的side脚本评分程序吧,这个还是挺简单的
Spring那边只实现了一个简单的程序上传demo,还是要多看看

发了个邮件给导师,说明了一下大概的程序构想
表明我实在是做不来二次开发,所以转用开发外挂扩展程序的方式来实现功能
还有问了一下计分部分的详细计算方式
最后是关于毕设进度的问题

导师这次倒是邮件回很快,虽然是反过来问我能不能编译运行IDE
哎,编译是能编译,但是我不会改啊
之后的部分是关于计分方式的解释,关于进程相关根本就没提

04/20

C同学找了一家店接单了,祝她好运

04/15

同导师的L同学来问我进度,我只能说在做了
好像他也联系不上导师,那么看来大家都一样
虽然我也有导师的邮箱,不过还是过一阵子再问吧

同导师同题的C同学来问我进度,说自己一头雾水,打算淘宝买代码,买完了我们两个都能用了
结果因为题目说的很模糊,所以没有店家愿意接
我让她把任务书一起发给店家看看

04/14

整理了一下需求:

  1. Selenium IDE 保存测试用例
  2. 新模块将测试用例传给后台程序
  3. 后台程序分析 DOM 覆盖率并将结果传回新模块
  4. 新模块展示本次测试的 DOM 覆盖率

哎,因为我发现题目的本质,对IDE的二次开发,我实在是不会,短时间内掌握有点过于困难了
于是先从服务端开始,决定使用Springboot

04/05

今天跑去做了rst的字幕,睡前看了一眼v3分支的结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
packages
├ browser-webdriver //浏览器页面驱动
├ code-export-csharp-commons //代码导出部分,暂不研究
├ ...
├ code-export
├ selenium-ide //IDE本体,编译之后的位置./build/
│ ├ api //
│ ├ background
│ ├ common
│ ├ content
│ ├ errors
│ ├ icons
│ ├ neo //code-export
│ ├ plugin
│ └ router
├ selenium-side-runner //运行.side测试文件
├ selianize //将.side导出为JS代码,暂不研究
├ side-model //.side构造
└ side-utils //其它模块
├ code-export
├ environment
├ project
├ string-escape
└ user-agent

明天起来来看看side文件结构吧

04/04 - 尝试用源码编译扩展程序

摸了好久,是我的错,还有两个月,要抓紧了

最近几天一直在写文献翻译,还有入门js语法。之前的命令行运行也测试过了没什么问题,但是JS脚本命令还没怎么用过

今天决定编译一下扩展,在源码上遇到一些问题。selenium-ide的master分支已经转为对桌面的electron开发,v3分支是目前的浏览器扩展,但是编译需要linux平台的peru。转为使用WSL的ubuntu

17:30 成功编译出来了,遇到了很多问题,我稍微记一下,不想打斜体了

基本上是使用了WSL的ubuntu 18.3。

安装proxychains

因为需要下载大量依赖,所以先安装proxychains来挂科学上网=-

1
sudo apt install proxychains

之后进行配置

1
vim /etc/proxychains.conf

打开的文件最下面一行socks4 127.0.0.1 9050,注释掉,添加一行socks5 127.0.0.1 1080和https 127.0.0.1 8080。

1
2
3
4
5
6
7
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
# socks4 127.0.0.1 9050
socks5 127.0.0.1 1080
https 127.0.0.1 8080

安装yarn

参照 yarn - Installation

安装peru

1
pip install peru

这里需要python3,所以实际上先安装了python3.8和pip3

编译

参照V3分支的说明 - https://github.com/SeleniumHQ/selenium-ide/tree/v3

03/21

同导师的F同学来找我,问我有没有什么头猪
他要做Jmeter的二次开发,Java的开源程序,但是我没接触过呀
大概说了一些套话就当回答了
还问了我一些怎么找文献,翻译多少字之类的东西

03/09

对于Selenium IDE,基本的录制功能比较简单。下面需要你们去探索一下高级功能,一方面是Selenium IDE提供的控制流的命令,还有用于执行JS脚本命令;另一方面是使用命令行来执行Selenium IDE测试用例的用法。最好是各自找一些案例来跑通

03/06 - 开题报告第二版

把开题报告第二版交了

03/05 - 开题报告第一版

把开题报告交了,前天的消息还是没有回复

几位的任务书。修改开题报告的时候可以参考任务书里的内容。有几点共性的问题。1格式问题,整个开题报告表格应该居中,文字大小行间距统一,严格按照毕设要求开排版。2参考文献数量个格式问题,请参考我在任务书中提供的参考文献的格式,请自行再填加几个参考文献,学校要求开题报告参考文献数量不低于10,可以找到我提供的参考文献的原文,从原文的参考文献里再选几篇放过来,这个不重要但一定要满足学校的数量要求。

拿到了任务书,要求根据任务书上的内容继续修改,明天睡醒再说吧

03/04 - 接着写开题报告

先翻译了一部分DOM覆盖率的论文

03/03 - 写开题报告

总之先把任务理解/初步方案写完了

https://github.com/wsswms/graproj2020/blob/master/%E5%BC%80%E9%A2%98%E6%8A%A5%E5%91%8A%20-%20%E8%8D%89%E7%A8%BF.md 老师不好意思,还想多问问关于开题报告的事,下午和晚上写了一点 中间文献综述部分写什么方向好呢

并没有回复我

03/02 - 做开题报告准备

各位,学校要抽查开题报告了,务必周四之前完成吧

草,我这才拿到题目10天哎,而且周四就交周一才说

老师啊,翻译的文档怎么塞在开题报告里比较好

你写开题报告不要写背景嘛,那么就是介绍Selenium IDE喽

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 开题报告

## 课题任务的学习与理解
*介绍选题的背景,为什么要做这个课题?已有的传统的系统或方法存在什么问题需要解决?*
### 课题研究背景
#### Web 测试的研究背景
#### Selenium IDE 介绍
### 研究的主要内容
*预计制作插件/模块的目标/功能*

## 文献综述
*对目前现状做综述,当前文献中的内容作简要介绍*
### 国内外的研究现状
*web 测试相关文献*
*现有文献提出的方法/做的事情/解决的问题/仍然存在的问题*

## 初步方案
*本课题研究内容和实施计划*
### 执行方案
*预计制作插件/模块的结构和工作流程(流程图)*
### 进度计划
*具体到周的计划内容*

## 参考文献
*上面文献综述部分引用的*

打算先按这个框架写,应该两天内能写好,如果有什么不合适的地方老师请帮我指出来

好像参考文献有点少,需要我自己多找一些关于web测试或者测试覆盖率相关的吗
毕设任务书的话,老师能给个更详细一点的就好了…说到这个东西要拿来教学用,我还没想明白具体是个什么使用场景和用途…

是这样的,有一种测试方法叫探索式测试。如果是对web做探索式测试的话,有一种评价方法就是那篇论文里提到的那个叫做DOM覆盖率的评价方法。然后这么个东西做好了不就可以考试用么。真正有用的参考文献,也就是那两篇关于DOM覆盖的论文。其它的用处不大。不过开题报告的要求,还是得多凑几篇上去。

说白了就是这样的,DOM 覆盖可以用来评价 WEB 测试的充分性,那么如果是在教学上面同学们来做 WEB 测试的话,那我们就可以用这样的方法来评价那个同学做得好还是不好,这个评价呢,我们希望能自动化,所以说呢就是说希望同学们在做测试的时候,我不管是开FireFox还是Chrome做测试的时候,同时把Selenium IDE打开,然后把它打成录制状态,那这样的话,同学们在浏览器上做的所有的操作不就都被Selenium IDE录制下来了吗,然后接下来我们去分析Selenium IDE录制下来的这个测试用例也就是那个文档都可以来打分了,等于就是实现了这样一个自动化的流程。

明白了,老师早点睡

02/26 - 进一步了解 Selenium IDE 使用方法

我看完了,不错不错。其实翻译文档并不重要。我们的任务是在Selenium IDE的基础上尝试二次开发,Selenium IDE不是能做录制回放嘛,我们需要在Selenium IDE里加一个模板,这个模块收集用户的行为,然后送到服务器去做个评判。

哦哦…原来是这么做在线考试 光看题目这么写还不是很明白

Selenium IDE本来有保存测试用例和导出测试代码的功能。新加的模块可以在后台调用它们,把文件拿出来传出去。然后别处拿到文件评分之后再传回来,新加的模块再把评分结果显示出来即可。

我之前看了文档差不多有点明白这个保存测试还有导出的部分了,目前支持的好像有C#/Java/JS/py 这几个语言的测试框架吧,我之前没怎么接触过软件测试…导出的代码还有后台评价部分有限制使用什么语言和框架吗

我们觉得我们不需要用它导出的带代码了,它可以保存测试用例,保存下来的是一个后缀名为.side的文本文件,我觉得分析文本文件会更好一点。具体怎样后台评分,Web测试有一种最基础的方法叫DOM覆盖率,可以先用这个,或者就简化成web页面元素的覆盖率即可。https://github.com/SeleniumHQ/selenium-ide/releases/tag/v3.16.1 Selenium IDE的源代码在这里

Selenium IDE 保存测试用例 - 新模块将测试用例传给后台程序 - 后台程序分析DOM覆盖率并将结果传回新模块 - 新模块展示本次测试的DOM覆盖率 整个流程差不多这样? 一下想不到怎么算DOM覆盖率…先分析DOM结构,再把<html>到测试过的元素路径标注上,两个比较一下算比例这样行吗

没错,基本是这么个流程。关于覆盖率,我们之前和用过一个简化的方法:收集所有人提交的测试用例后,看大家都访问了哪些web页面元素,统计好之后作为分母,每一份提交的作为分子,乘以百分之百就得到一个成绩。现在呢,我希望你能首先把Selenium IDE的所有用法搞明白。包括录制回放、命令、控制台运行、控制流、插件等等。因为这些后面可能都需要写到你的毕设论文里去。然后,再是分析源代码。

Software Analysis for the Web @SANER2016.pdf

关于DOM覆盖,在这篇论文96页左边一栏“Test Adequacy Assessment”那一部分后面有提到。因为本质上这个工具的改造是为了教学,所以这个测试充分性的打分就可以作为测试作业的打分。具体的内容在参考文献79中。现在在校外,可能不能下载论文,我试一试。到时候看你用哪一篇作为翻译的内容。

呦,找到了

DOM-Based Test Adequacy Criteria for Web Applications.pdf

后面这篇作为翻译吧。不过翻译这事可以不急。我建议你需要先了解Selenium IDE

嗯嗯,之前翻文档的时候也试着用了一下 IDE ,我找几个网站再多试试…控制台那部分还不太明白

嗯,那部分是新功能,还有Plugins那部分,也是新功能

02/24 - 文档基本翻译完成

老师好,我这两天试着翻译了一些 Selenium IDE 的文档,不知道这样翻行不行?https://github.com/wsswms/graproj2020/blob/master/%E6%96%87%E6%A1%A3%E7%BF%BB%E8%AF%91%20-%20Introduction.md

02/21 - 拿到毕设题目

我终于拿到毕设题目了。

是这样的,有两位同学做的课题是关于开源的性能测试JMeter,还有两位同学做的是关于开源的Web测试工具Selenium IDE。

@我 @隔壁班的 你们两位,分头在FF浏览器和Chrome浏览器(注意都要求是最新版)中安装Selenium IDE插件,了解试用这款对Web进行录制回放的工具的使用,需要作用对其中的命令能有详细的了解。由于新版本的Selenium IDE上线时间还不久,据我的查找,暂时没有任何网上的资料可参考。因此,主要通过项目主页的文档来学习。https://www.selenium.dev/selenium-ide/

对于你们两位,我的建议,开题报告不妨就翻译Selenium IDE文档就行https://www.selenium.dev/selenium-ide/docs/en/introduction/getting-started

之后就去翻译文档了,也在github上更新

欢迎在Weibo和Twitter关注我