测试总是遗漏场景,我该怎么办?

上一篇 / 下一篇  2012-04-18 18:55:41 / 个人分类:心情

测试还有一个月就一年了,中间犯了很多错误,经常场景遗漏,这个要怎么才能做好呢?
一开始感觉是自己对业务不熟悉,慢慢的业务熟悉了,可还是会有遗漏,总是到最后。。。。。。
总想做好,却总是。。。。。。
最近一个日常做接口测试,老大特意交代要用例评审下,用例评审过了,也按照执行了,可是到了最后要性能测试的时候才是出问题了。。。。。。
性能测试居然测出功能bug!!!---从老大的字里行间知道他已经很不满意了,哎我该怎么办呢?
这次性能测试测试出2个bug
1、我本地接口用例是跑通过了的。但是提供hsf服务,性能远程调用的时候出问题了,具体原因是枚举的反序列话不支持。
2、分页查询
业务逻辑为:旧的接口当不传入pagesize时就设置pagesize为int的最大值。本次改进为:如果不传入pagesize则循环查询每次取1000张。
我设计的用例是:(1)、图片总数<1000。(2)、图片总数>1000 ,我取的3175。(3)、设置pagesize=1500
性能测试同学取的是2000这时候造成无限循环了。
具体原因为:
循环代码:
    public PictureResult<List<PictureDO>> getAdultPassedPicture(long sellerId) throws PictureServiceException {
        PictureResult<List<PictureDO>> result = new PictureResult<List<PictureDO>>();
        List<PictureDO> tempList = new ArrayList<PictureDO>();
        QueryPictureDO query = new QueryPictureDO();
        query.setSellerId(sellerId);
        query.setStatus(BasePictureContents.PICTURE_PASSED);
        query.setDeleted(BasePictureContents.PICTRURE_NOT_DELETED);
        int page = 1;
        long count = 0;
        int pageSize = Config.queryPicturePageSize;//1000
        query.setPageSize(pageSize);
        query.setCurrentPage(page);
        PictureResult<List<PictureDO>> tmp = pictureReadServiceMedia.queryPicture(query);
        if(tmp != null && tmp.isSuccess()){
            while(tmp != null && tmp.isSuccess() && tmp.getModule() != null && tmp.getModule().size() <= Config.queryPicturePageSize){
                tempList.addAll(tmp.getModule());
                count += tmp.getModule().size();
                query.setCurrentPage(++page);
                if(tmp.getModule().size() < Config.queryPicturePageSize){
                    break;
                }
                tmp = pictureReadServiceMedia.queryPicture(query);
            }
        }
        if(tmp == null || !tmp.isSuccess()){
            return tmp;
        }
        result.setModule(tempList);
        result.setSuccess(true);
        result.setTotalCount(count);
        return result;
    }
如上代码,当取出的数据<1000的时候就跳出循环
这段改进代码本身没有问题,但是分页查询的代码为:

            int pages = totalRowCount%fileTO.getPageSize() == 0 ? totalRowCount/fileTO.getPageSize():(totalRowCount/fileTO.getPageSize())+1;
            fileTO.setPage(fileTO.getPage()< pages ? fileTO.getPage():pages);
当totalRowCount(用户的总记录数)%pagesize==0 的时候就会设置当前查询页码为最后一页。

也就是说2000条记录的时候
page=1  取1000条
page=2  取1000条
page=3时  发现totalRowCount%fileTO.getPageSize() == 0这时候设置page=2
page=4 同3
。。。。
这样下去就导致分页查询永远都跳不出循环

这次测试依赖的场景为边界值
是我自己粗细大意了,没有设计好用例。

预防措施???
我该怎么预防呢?


TAG:

 

评分:0

我来说两句

Open Toolbar