广州一站式网站建设,wordpress前台显示中文怎么办,工商注册需要准备什么材料,北京和隆优化怎么样一)如何根据需求来设计测试用例#xff1f; 1)验证功能的正确性#xff0c;合理性#xff0c;无二义性#xff0c;逻辑要正确 2)分析需求#xff0c;细化需求#xff0c;从需求中提取出测试项#xff0c;根据测试项找到测试点#xff0c;根据测试点具体的来进行设计测试… 一)如何根据需求来设计测试用例 1)验证功能的正确性合理性无二义性逻辑要正确 2)分析需求细化需求从需求中提取出测试项根据测试项找到测试点根据测试点具体的来进行设计测试用例 二)根据需求来设计测试用例分为哪些方面 从功能性和非功能性来设计测试用例 1)功能性: 1.1)界面的所有功能不能漏测(从上面到下面从左边到右面) 1.2)把功能串起来形成场景和业务对场景和业务来进行测试(使用场景法) 1.3)一个功能的多个输入来进行测试 1.4)功能的异常数据输入异常操作来进行测试 2)非功能性方面 可靠性易用性容错性兼容性可移植性性能安全可维护性 不同的类型的软件非功能性测试的侧重点是不一样的 大型商用软件(淘宝微信微博) 客户端安装的软件(Wordoffice)(单机安装) 性能测试: 1)等价类是为了解决测试无法穷举的情况等价类和边界值往往结合在一起进行测试用例的设计 2)场景法:需要把场景里面的所有功能都找到然后再根据功能的不同的输入和输出异常的输入和输出导致场景走向的一个不同的流程 3)错误猜测法:过度依赖于个人和知识经验直觉关系比较大适合于测试用例都已经设计完成了最后作为一种补充的设计测试用例的方法 4)因果图法:多个输入对应者不同的输出 关系:恒等与或非 步骤: 1)分析输入和输出 2)找到输入和输出之间的逻辑关系 3)根据输入输出之间的关系画因果图 4)根据因果图写判定表 5)根据判定表设计测试用例 微信发朋友圈的测试用例: 一)功能测试: 一)一对一发红包的测试用例:最多输入200 0 1 2 3 4 199 200 201使用等价类和边界值 二)红包个数: 2.1)拼手气红包最多可以发多少个红包超过最大拼手气红包的个数是否有影响 2.2)平均红包是否每一个人抢的一样多 2.3)专属红包给特定的人发红包只有特定的人才可以领红包其他人不可以领红包 2.4)当发送的红包个数超过最大范围是不是有提示你发送红包的总个数不能超过群聊的最大人数 2.5)发送红包的钱数最多是20000 三)抢的红包钱数: 3.1)拼手气红包每一个人抢的钱数不一样 3.2)发送红包的人自己是否可以领取 3.3)发送出去的红包最少领取的人可以领取多少最多领取的人可以领取多少 3.4)一个人是否可以重复的领取红包 3.5)发送出去的红包最少领取的人可以领取多少 3.6)一个人是否可以重复领取该红包 3.7)如果说红包没有抢完剩下的金额是否24H可以退回到原账户 3.8)如果钱来自于零钱的话那么钱就会退回到零钱如果是银行卡的话就会退回到银行卡里面如果是零钱通的话就会退回到零钱通里面 四)红包封面: 不选择会有默认封面 选择的话是否可以选择有红包的封面以及我选择的封面和别人看到的封面是否一致 五)红包描述 5.1)在红包描述里面是否可以输入汉字英文符号表情纯数字英语符号 5.2)动态表情以及现场拍照 5.3)是否可以输入他们的混合搭配 5.4)以及红包描述里面的表情可以正常删除或者添加 5.5)红包描述里面是否可以输入自己可以下载的表情以及收藏的表情 5.6)以及在红包描述的表情里面抢红包的人是否可以正常的看见 5.7)红包描述里面最多可以输入多少个字符最多可以发多少个动态表情包 六)红包金额 6.1)在红包钱数红包个数的输入框里面只能输入数字不能说我想输入100元结果我写了一个汉字一百元这样是无法进行识别的就是确定输入钱包钱数是否只能输入数字 6.2)红包里面最多和最少可以输入的钱数采取等价类边界值来进行测试用例的设计19920001230.01 6.3)如果直接输入一个小数点那么小数点的前面应该有个0 6.4)当红包钱数超过最大范围是不是会有提示一对一是200群发的话超过20000 6.5)发送红包的输入钱数是0那么塞钱进红包会置灰 6.6)发送红包的金额和收到的红包金额应该是匹配的一对一的话A同学给B同学发送了200那么B同学接受的也应该是200群发的话一个人发送红包的总钱数应该等于个个人接受红包的总钱数之和 七)塞钱进红包的扣钱顺序 1)默认情况下优先选择从零钱开始支付 2)如果零钱不足的话看看哪一种支付方式比较充足就是自己可以选择支付方式是银行卡还是零钱通 八)支付验证方式 密码指纹刷脸声音免密 九)取消发送 可以按取消键取消发送红包 十)支付成功之后是可以退回到聊天界面的 一)发送出去的红包和转账是不可以撤回的 二)自己发送的红包和别人发送的红包自己是否可以正常领取 三)超过24没有领取的红包是否还可以领取这是不可以领取的 四)超过24小时没有领取的红包是否可以退回到发红包的这个人的账户里面 五)退款到账时间 六)是否可以连续可以多发红包 七)电脑端是否可以抢微信红包 二)性能测试: 断电断网时无法抢红包 不同网速的时候抢红包发红包的时间 发红包和收红包的时候页面的跳转时间 手法红包的时候的耗电量 三)兼容性测试 苹果手机安卓不同版本是否都可以正常的抢红包 四)界面测试 发红包界面没有错别字 抢完红包界面没有错别字 发红包和收红包界面排版合理 五)安全测试 1)红包被领取之后发送红包的人的金额会减少收红包的人的金额会增加 2)发送红包失败之后余额和银行卡里面的钱不会减少 3)红包发送成功之后是否会受到微信支付的通知 六)易用性测试 红包描述金额红包个数框里面是否支持复制粘贴操作是否可以语音输入 Java的单元测试如何进行可以用main方法进行测试 1)在pom.xml添加依赖
!-- https://mvnrepository.com/artifact/junit/junit --
dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.11/versionscopetest/scope
/dependency2)下载插件file-setting-plugins junit; 3)选中被测试的类 创建相应的单元测试用例:crtlshiftt这时会出现create new...按回车这样就可以创建单元测试类了选择junit4classname就是他的单元测试类针对哪一个方法进行单元测试就直接进行选中就可以了是在test的java目录里面 我们可以在单元测试类里面去写每一个方法的单元测试代码 1)Blog中的代码:
public class Blog {public int blogID;public String blogName;public String content;public int getBlogID() {return blogID;}public void setBlogID(int blogID) {this.blogID blogID;}public String getBlogName() {return blogName;}public void setBlogName(String blogName) {this.blogName blogName;}public String getContent() {return content;}public void setContent(String content) {this.content content;}
}
2)数据库链接的代码:
public class ConnectionMYSQL {private static volatile DataSource dataSourcenull;private static String password12503487;private static String usernameroot;private static String urljdbc:mysql://127.0.0.1:3306/Java101?characterEncodingutf-8useSSLtrue;public static Connection GetConnection() throws SQLException {if(dataSourcenull){synchronized(Object.class){if(dataSourcenull){dataSourcenew MysqlDataSource();((MysqlDataSource)dataSource).setURL(url);((MysqlDataSource)dataSource).setUser(username);((MysqlDataSource)dataSource).setPassword(password);return dataSource.getConnection();}}}return dataSource.getConnection();}public static void close(Connection connection, ResultSet resultSet, PreparedStatement statement) throws SQLException {if(resultSet!null){resultSet.close();}if(statement!null){statement.close();}if(connection!null){connection.close();}}
}
3)封装数据库的代码:
public class Demo {public void Insert(Blog blog) throws SQLException {//1.与数据库建立连接Connection connectionConnectionMYSQL.GetConnection();//2.拼装SQL语句String sqlinsert into blog values(?,?,?);PreparedStatement preparedStatement connection.prepareStatement(sql);preparedStatement.setInt(1,blog.getBlogID());preparedStatement.setString(2,blog.getBlogName());preparedStatement.setString(3,blog.getContent());//3.执行SQL语句int len preparedStatement.executeUpdate();if(len1){System.out.println(插入成功);}else{System.out.println(插入失败);}//4.关闭资源ConnectionMYSQL.close(connection,null,preparedStatement);}public void delete(int blogID) throws SQLException {//1.与数据库建立连接Connection connectionConnectionMYSQL.GetConnection();//2.拼装SQL语句String sqldelete from blog where blogID?;//3执行SQL语句PreparedStatement statement connection.prepareStatement(sql);statement.setInt(1,blogID);int lenstatement.executeUpdate();if(len1){System.out.println(删除成功);}else{System.out.println(删除失败);}ConnectionMYSQL.close(connection,null,statement);}public ListBlog GetAll() throws SQLException {//1.与数据库建立连接ListBlog listnew ArrayList();Connection connectionConnectionMYSQL.GetConnection();//2拼装SQL语句String SQLselect * from blog;PreparedStatement statement connection.prepareStatement(SQL);//3执行SQL语句ResultSet resultSet statement.executeQuery();//4.返回结果while(resultSet.next()){Blog blognew Blog();blog.setBlogID(resultSet.getInt(blogID));blog.setBlogName(resultSet.getString(blogName));blog.setContent(content);list.add(blog);}ConnectionMYSQL.close(connection,null,statement);return list;}
} 当我们进行点击类上面的代码的时候我们在测试类里面写的所有方法都会被执行: public class DemoTest {Testpublic void insert() throws SQLException {Blog blognew Blog();blog.setBlogID(2);blog.setContent(HTTP协议);blog.setBlogName(操作系统和网络);Demo demonew Demo();demo.Insert(blog);}Testpublic void GetAll() throws SQLException {Demo demonew Demo();ListBlog list demo.GetAll();System.out.println(list.size());for(Blog blog:list){System.out.println(blog.getBlogName());System.out.println(blog.getBlogID());System.out.println(blog.getContent());}}Testpublic void delete() throws SQLException {Demo demonew Demo();demo.delete(1);}
} 但是这样做其实是有一点乱的我们想连续执行测试类中的两个方法或者是不想执行一些方法该怎么做呢 这样就可以测试单独的一个类也可以单独的测试一个具体的方法但是我们想让他执行其中的两个方法想要忽略其中的一个方法 1)before:在每一个方法开始执行前执行的方法 2)After:在每一个方法执行完后进行执行的方法 3)Test:这是表明有这个类要进行测试不然就会被认为不是单元测试方法不会被执行 4)Ignore:就在要忽略的方法前面加上此时我们在类中方法上面加上Ingore标签或者说把Test标签去掉在我们点击运行类的时候就不会执行带有Ingore的方法了 按照测试实施组织区划分测试:是以人为为依据进行划分 a测试是在b测试之前的 1)a测试:在系统测试完成之后把公司中的用户或者非测试非开发人员召集到一起到项目组开发环境下进行测试 测试环境:开发现场 开发环境:非开发非测试人员 优点:用户或者不属于测试和开发人员的人发现在开发现场问题之后会及时的反馈给开发人员及时地进行解决 缺点:用户在开发环境下可能容易会受到开发人员和测试人员的一个思维控制和影响因为如果此时开发人员和测试人员对你进行指导可能会受到他们的一个思维的影响思维定式 测试不出来用户在实际情况下使用的问题和错误有些功能他就压根测试不出来 2)b测试:实际使用软件的用户在真实的环境下进行测试测试环境地域不受限制测试完成之后统一进行汇总反馈比如说游戏内测给APP的活跃用户给一个b测试给发现问题的用户发送奖励 优点:测试的结果跟接近用户实际使用情况的反馈b测试在a测试之后很长一段时间 a测试和b测试对比:
1)地域不一样,a是在开发环境下,b环境是在用户实际使用环境下;
2)同时时间的集中程度也不一样,a测试时间相对比较集中;
b测试相对来说比较分散;b会给一些活跃的用户来发一些测试,有问题直接提交反馈;
3)a测试优先于b测试3)由软件的第三方测评机构进行测试多角度测试有国际化的一个标准这个时候面向的群体既不是开发人员也不是测试人员按照软件行业标准规范来对软件进行测试有时还需要付费