热情组-测试总结

热情组-测试总结_第1张图片

经过后端的辛勤努力,我们终于实现了以上图的内容

测试安排

因为安卓队还不能将读取到的JSON对象写到安卓界面

测试主要是后端的同学来测试,由其他同学提出测试样例

测试工具选择和运用

主要用我们写的软件,发送JSON对象给JDBC进行操作

但是在进行连接前要进行用户验证

热情组-测试总结_第2张图片

如果验证失败无法进行登录

接下来将用简单的套接口软件进行测试展示

登录

热情组-测试总结_第3张图片

登陆成功返回用户ID,学号,头像等信息,才可以进行下一步操作

接下来的操作,将采用JSON格式进行发送命令

为此,我们制定了JDBC的语言风格

requests是安卓发给JDBC的数据,commands是JDBC转给数据库的语言

    requests[0]="@getMasterpage";
        commands[0]="select * from masterpage limit ?,?";   //两参数,建议0,10

        requests[1]="@searchUserName";
        commands[1]="select * from User where UserName like ? limit ?,?";//三参数,建议0,20

        requests[2]="@searchUserID";
        commands[2]="select * from User where UserID=?";//一参数

        requests[3]="@searchPostContent";
        commands[3]="select * from masterpage where PostContent like ? order by PostTime desc limit ?,?";//三参数,建议0,10

        requests[4]="@searchTagName";
        commands[4]="select distinct * from Tag where TagName like ? limit ?,?";//三参数,其中1为%内容%,2,3建议0,20

        requests[5]="@searchTagID";
        commands[5]="select distinct * from Tag where TagID =?";//一参 ID值

        requests[6]="@searchTagSequenceID";
        commands[6]="select * from Tag where TagSequenceID=?";//一参 ID值

        requests[7]="@searchPersonalTag";
        commands[7]="select * from PersonalTag where UserID = ? order by OrderNumber";//一参 ID值

        requests[8]="@getPost";
        commands[8]="select * from masterpage where PostID=?";//点击动态

        requests[9]="@searchPostByTag";
        commands[9]="SELECT DISTINCT u.UserName,u.UserPictureURL,u.UserID,\n" +
                "t.TagTruth,p.PostID,p.PostTime,p.PostContent,p.PicturesURL,\n" +
                "p.LikeNumber,p.CollectNumber,p.CommentNumber\n" +
                "FROM Post AS p ,Tag AS t,User AS u\n" +
                "WHERE u.UserID=p.UserID AND p.TagMark=t.TagID AND\n" +
                "u.UserID   IN  (SELECT uu.UserID\n" +
                "FROM Post AS pp ,Tag AS tt,User AS uu\n" +
                "WHERE uu.UserID=pp.UserID AND pp.TagMark=tt.TagID AND uu.UserID<>?\n" +
                "AND tt.TagID IN (SELECT TagID\n" +
                "FROM PersonalTag\n" +
                "WHERE PersonalTag.UserID=?\n" +
                ")\n" +
                ")";

封装样式
JSONObject  jsonObject=new JSONObject();
jsonObject.put("request","@searchUserID");//命令名称
jsonObject.put("parameter",1);//参数个数
jsonObject.put(0,1);//第0个参数,学号为1
String sql=jsonObject.toString();//直接发送给服务器

0.0.3版本模糊查询需要在发送端加上通配符    “%”+content+“%”

其中以requests[0]为举例,安卓端发送

{"request":"@getMasterpage","parameter":2,"0":0,"1":10}

在JDBC里将转化为以下语言给数据库

select * from masterpage limit 0,10

masterpage是数据库的视图,这句话实际上等同于

select distinct u.UserName,u.UserPictureURL,u.UserID,t.TagTruth,p.PostID,p.PostTime,p.PostContent,p.PicturesURL,p.LikeNumber,p.CollectNumber,p.CommentNumber
from Post as p ,Tag as t,User as u where u.UserID=p.UserID and p.TagMark=t.TagID order by p.PostTime desc;

得到的结果如下

热情组-测试总结_第4张图片

即获取了所有的动态内容

同好动态

用到了requests[9]命令

为了更好展示我们举个例子

尚佳同学的用户ID是3

他对1010010000和1010020000的标签感兴趣

TagMark是显示在个人空间里的标签备注,所以不会显示在“同好动态”里

热情组-测试总结_第5张图片

这是所有的动态,第一四条为1010010000标签相关动态,第二条是1010020000标签相关动态

即要查出三条结果

热情组-测试总结_第6张图片

如果如果用SQL语句来写出这段话的话,即为

/*同好圈(返回拥有相同爱好标签的所有动态)*/
/*@UserID(用户ID变量)*/
SELECT DISTINCT u.UserName,u.UserPictureURL,u.UserID,
                t.TagTruth,p.PostID,p.PostTime,p.PostContent,p.PicturesURL,
                p.LikeNumber,p.CollectNumber,p.CommentNumber
FROM Post AS p ,Tag AS t,User AS u
WHERE u.UserID=p.UserID AND p.TagMark=t.TagID AND
      u.UserID   IN  (SELECT uu.UserID
                      FROM Post AS pp ,Tag AS tt,User AS uu
                      WHERE uu.UserID=pp.UserID AND pp.TagMark=tt.TagID AND uu.UserID<>3
                      AND tt.TagID IN (SELECT TagID
                                        FROM PersonalTag
                                        WHERE PersonalTag.UserID=3
                                       )
);

最后我们用JDBC和JSON整合了一下,只需要一句话就可以表达上面的内容

{"request":"@searchPostByTag","parameter":1,"0":3}

返回的结果因为安卓还未做出界面来,所以先用IDEA展示

热情组-测试总结_第7张图片

查找用户

用request[1]来查找名字带“莫”的人

 {"request":"@searchUserName","parameter":3,"0":'%莫%',"1":0,"2":10}

热情组-测试总结_第8张图片

查找标签

我们如何解决近义标签问题?

标签里有近义词,我们通过返回TagTruth来将最终的规范统一

比如“吃饭”和“美食”他们最终都需要返回“美食”

我们在表中建立这两个值

尽管他们的名字不一样,但是他们的标签ID相同

热情组-测试总结_第9张图片

在输入查找“吃饭”命令的时候,只会返回一次唯一的确定值

 {"request":"@searchTagName","parameter":3,"0":'%吃饭%',"1":0,"2":10}

热情组-测试总结_第10张图片

查找用户ID

 {"request":"@searchUserID","parameter":1,"0":'3'}

热情组-测试总结_第11张图片

查找相关动态

 {"request":"@searchPostContent","parameter":3,"0":'%猫%',"1":0,"2":10}

热情组-测试总结_第12张图片

查找标签ID

 {"request":"@searchTagID","parameter":1,"0":'1010010000'}

就可以找到所有的近义词

热情组-测试总结_第13张图片

剩余的内容

剩余的测试内容太多

因为我们的安卓端还无法读取JSON对象

且都是那个套接字软件,没啥可以展示在界面上的

所以带过一下

        requests[6]="@searchTagSequenceID";
        commands[6]="select * from Tag where TagSequenceID=?";//一参 ID值

        requests[7]="@searchPersonalTag";
        commands[7]="select * from PersonalTag where UserID = ? order by OrderNumber";//一参 ID值

        requests[8]="@getPost";
        commands[8]="select * from masterpage where PostID=?";//点击动态

测试文档链接

因为我们的软件操作太多了

构思也非常复杂

且安卓队还在研究如何将我们的数据搬到界面上

因此还未能拿出文档链接来

在这里深感抱歉

测试体会

用户一个简单的操作就可以在后端进行如此翻天覆地的操作

这段时间真的是辛苦了热情组的同学们

真的是用尽全力完成这个项目了

后端的同学们想尽办法抠细节

实现SQL语言再整合到JDBC里,再整合到服务器上

冲刺前从零开始学起,到现在基本的框架思路都明晰了

进步速度可以说是飞一样的


但这里只是组长的感受而已

期待一下我们组员的冲刺总结感受吧~

感谢你们

你可能感兴趣的:(热情组-测试总结)