音乐播放器系统测试
1,需求分析
功能实现:主要针对以下功能
登录并查看自己的音乐列表
从本地上传音乐
删除某个音乐
删除选中的音乐
在全部歌单里查询音乐(支持模糊查询)
添加音乐到喜欢列表且可进行移除
可在喜欢列表查询音乐(支持模糊查询)
2,测试计划
①通过单元测试、集成测试和系统测试对项目基本功能进行手工测试和性能评估。
②通过设计测试用例进行测试。
3,测试执行
(1)单元测试
在MusicDao层,写出代码后对在程序内部进行自测。
查找全部音乐时
public static List<Music> findMusic() {
Connection connection = null;
PreparedStatement ps = null;
ResultSet rs = null;
List<Music> musicList = new ArrayList<>();
try {
String sql = "select * from music";
connection = DBUtils.getConnection();
ps = connection.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
Music music = new Music();
music.setId(rs.getInt("id"));
music.setTitle(rs.getString("title"));
music.setSinger(rs.getString("singer"));
music.setTime(rs.getDate("time"));
music.setUrl(rs.getString("url"));
music.setUserid(rs.getInt("userid"));
musicList.add(music);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtils.getClose(connection, ps, rs);
}
return musicList;
}
public static void main(String[] args) {
List<Music> musicList=findMusic();
System.out.println(musicList);
}
打印所有音乐列表,此功能正常实现。
根据id查找
public static Music findMusicById(int id) {
Connection connection = null;
PreparedStatement ps = null;
ResultSet rs = null;
Music music = null;
try {
String sql = "select * from music where id=?";
connection = DBUtils.getConnection();
ps = connection.prepareStatement(sql);
ps.setInt(1, id);
rs = ps.executeQuery();
if (rs.next()) {
music = new Music();
music.setId(rs.getInt("id"));
music.setTitle(rs.getString("title"));
music.setSinger(rs.getString("singer"));
music.setTime(rs.getDate("time"));
music.setUrl(rs.getString("url"));
music.setUserid(rs.getInt("userid"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtils.getClose(connection, ps, rs);
}
return music;
}
public static void main(String[] args) {
Music music=findMusicById(1);
System.out.println(music);
List<Music> musicList=findMusic();
System.out.println(musicList);
}
根据关键字查找
public List<Music> ifMusic(String str){
Connection connection = null;
PreparedStatement ps = null;
ResultSet rs = null;
List<Music> musicList = new ArrayList<>();
try {
String sql = "select * from music where title like '%" + str +"%'";
connection = DBUtils.getConnection();
ps = connection.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
Music music = new Music();
music.setId(rs.getInt("id"));
music.setTitle(rs.getString("title"));
music.setSinger(rs.getString("singer"));
music.setTime(rs.getDate("time"));
music.setUrl(rs.getString("url"));
music.setUserid(rs.getInt("userid"));
musicList.add(music);
}
}catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtils.getClose(connection,ps,rs);
}
return musicList;
}
public static void main(String[] args) {
List<Music> musicList=ifMusic("愁");
System.out.println(musicList);
}
上传音乐
public static int insert(String title,String singer,String time,String url,int userid) {
Connection connection = null;
PreparedStatement ps = null;
try {
String sql = "insert into music(title, singer, time, url, userid) values (?,?,?,?,?)";
connection = DBUtils.getConnection();
ps = connection.prepareStatement(sql);
ps.setString(1,title);
ps.setString(2,singer);
ps.setString(3,time);
ps.setString(4,url);
ps.setInt(5,userid);
int ret = ps.executeUpdate(); //受影响的行数
if(ret == 1) {
return 1;
}
}catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtils.getClose(connection,ps,null);
}
return 0; //插入失败
}
public static void main(String[] args) {
Insert("月出","yjx","2020-08-18","music\\月出",1);
}
(2)集成测试
代码能够单独工作之后,将模块组装起来,保证功能依然可以实现。
(3)系统测试
冒烟测试:
打开网页后进入登录界面,输入数据库绑定过的用户名密码,即可进入播放器页面,且能看到自己的音乐列表。
点击添加歌曲即可选择本地文件进行上传。
点击删除即可删除已上传的音乐,同时选中几首点击删除选中则全部删掉。
搜索框输入歌名即可查到歌曲,支持模糊查询。
点击喜欢可以将歌曲收藏到喜欢列表,点击喜欢列表展示所有喜欢的歌曲。
喜欢列表中可搜索歌曲,支持模糊查询。
(4)测试用例:
测试结果:基本功能正常。性能方面,用户名或密码输入错误弹出提醒;文件格式错误不提醒,但无法正常播放。全部删除与单个删除时间基本一致,无延迟;无法同时播放多个音乐,无文件大小限制。页面清晰整洁,无模糊字段或图片。密码加密显示,无法多端登录。已知在firefox、chrome、360、qq浏览器上可正常运行。在Windows以及Mac系统皆可正常运行。