谈通过测试经验来识别开发中的问题

1.界面常见问题

1.1.对齐问题

  • 设置左、中、右对齐,其中,数字一般为右对齐,文字常为左对齐;
  • 栏目区域对齐,如下图所示,展现行数应该一致,控制不允许换行。

解决方案:

1.标题过长截断;

2.浮动显示全名。

1.2.文字用语业务化问题

解决方案:

规范界面用语,避免使用程序员技术语言,通过与业务人员沟通尽量贴近实际业务。

1.3.图标使用问题

图标的使用,为界面带来了活力,但是使用不当,让人产生疑问,如下图所示:

方案:

按图中文字描述,图片尽量与业务接近,并且区分开发。

2.复杂、灵活所带来的测试复杂度

系统场景描述如下:非数字敏感型表单提交数据到文档型数据库(MongDB),是通过遍历表单输入数据项形成JSON数据来完成的。

而通常开发结构的表单提交,是穷举表单数据项。因此,在集成测试时,凭经验进行白盒测试。

预测很准!

开发人员的确按传统思路实现代码的,并未按规范和设计来实现,因为麻烦。那么我们来分析代码为什么很难从功能上测试出问题呢?


/**
 * 返回业务数据的json对象
 */
function saveObjectByJson() {
    var obj = {};
    $.each($(‘input[type="text"]‘), function (index, value) {
        if ($(value).attr(‘id‘))
            obj[$(value).attr(‘id‘)] = $(value).val();
    });

    obj.standard_Type = $(‘#standard_Type‘).val();
    obj.productType = $(‘#productType‘).val();

    $.each($(‘textarea‘), function (index, value) {
        obj[$(value).attr(‘id‘)] = $(value).val();
    });

    return JSON.stringify(obj);
}

此代码在功能上基本上没有问题,在单元测试时也能顺利通过,如果再新建个表单,增加下拉列表控件。

    <select name="select">
    </select>

测出问题时,开发人员修改代码,增加识别“select”处理,功能好使。

此套路在本项目中将是效率低下的,应为可能后续还会出其他控件,怎么办?穷举不是好办法。

因此,这是属于代码实现逻辑问题,与设计目标偏离了。请参考文档《JavaScript遍历HTML表单元素及表单定义》和《网页表单文档设计及技术实现》。

3.清理浏览器缓存

基于B/S结构,客户端界面都或多或少面临浏览器缓存问题,特别是基于AJAX和SOA的富客户端技术广泛使用,缓存问题更加突出,因此,在每次测试过程中,尤其是重新登录时,请先清理浏览器缓存。

参考

1.JavaScript遍历HTML表单元素及表单定义 肖永威 2015.5

2.网页表单文档设计及技术实现 肖永威 2015.5

3.易扩展的办公流程化管理核心模型(第2版) 肖永威 2015.3

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-24 06:51:44

谈通过测试经验来识别开发中的问题的相关文章

浅谈APP测试经验

近年来,随着智能手机兴起,很多App软件不断涌起.那今天我浅谈一下本人在工作如何测试App软件与经验. 一.App三种开发模式介绍(测试App时,必须要先了解您测试的App是用什么模式开发的) 1.Native APP 2.Web APP 3.Hybrid AP 对App开发模式不清楚的人.请自行百度. 二.通用App测试点(这些点必须测试) 1. 使用App时,手机耗电情况: 2 .App占用手机内存情况: 3 .App安装包的大小: 4. 使用App时,流量消耗情况: 5 .App在WiFi

浅谈Bootstrap自适应功能在Web开发中的应用

随着移动端市场的强势崛起,web的开发也变得愈发复杂,对于个体开发者来说,自己开发的网站,在电脑.手机.Pad等上面都要有正常的显示以及良好的用户体验.如果每次都要自己去调整网页去匹配各个不同的客户端设备,这个工作量可想而知.如果网站可以自适应浏览器大小,对于开发者来说,无疑是天大的福音.今天,我通过自己的实践,简单的探探boostrap的自适应功能,这也是众多平台中,我认为比较好的一个. Boostrap是什么 Bootstrap是基于HTML5和CSS3开发的,它在jQuery的基础上进行了

对于软件开发中开发人员与测试人员关系的理解

在软件开发中都会有开发人员(以下简称开发)和测试人员(以下简称测试),在一些小型公司可能并没有测试,仅仅是开发兼任测试.在这里我仅针对于有专业的测试和专业的开发的项目. 每个公司应该都有考核机制,对于开发和测试的考核实际上很难量化,通常来讲大的方向就是开发所负责模块的bug数,对于测试来讲就是测出来的bug数,但这真的有效吗?这也许对开发有约束力,理论上开发是能够自己控制bug数的,如果从产生的bug数来评判开发的绩效还算有效,这样开发自然就会把代码写得更加认真.但如果根据测试测出来的bug数来

【Unity游戏开发】浅谈Unity游戏开发中的单元测试

一.单元测试的定义与作用 单元测试定义:单元测试在传统软件开发中是非常重要的工具,它是指对软件中的最小可测试单元进行检查和验证,一般情况下就是对代码中的一个函数去进行验证,检查它的正确性.一个单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验.单元测试使用单元测试框架编写,并要求单元测试可靠.可读并且可维护.只要产品代码不发生变化,单元测试的结果是稳定的.(百度的) 单元测试可以让你在软件开发的早期阶段发现 Bug,而不必到集成测试的时候才发

ibatis 开发中的经验 (三)ibatis与spring2集成配置

ibatis项目中用到了一些基本配置,需要和spring集成,看了看这些配置大部分同hibernate中是一样的,也比较好理解,只是需要他们的配置中每个类的含义,还有其中的一些细节还是需要我们了解的,知识不在多,而在不断吸收和重复,在使用和练习中加深对各种问题的理解. 读取属性文件配置 <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceho

开发中各种小经验或技巧

1.js.jsp种判断list长度 js  :  list.length jsp: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>            list的长度是:${fn:le

稍微谈一下 javascript 开发中的 MVC 模式

随着前台开发日益受到重视,客户端代码比重日益增加的今天,如何在javascript开发里应用MVC模式,这个问题似乎会一直被提到,所以偶在这里粗略的谈一下自己的看法吧. MVC模式的基本理念,是通过把一个application封装成model, view和controller三个部分达到降低耦合,简化开发的目的.这么说很空洞,大家可以实际看个例子: 1<select id="selAnimal"> 2    <option value="cat"&

ibatis 开发中的经验 (一)ibatis 和hibernate 在开发中的理解

这个项目的底层是用ibatis框架完毕,这几天也是都在用这个框架写代码,也有了一些简单的理解,把项目拿过来后基本的配置都已经配置好了,比方一些事务.日志控制等,在开发中主要用到的是写SQL语句以及熟悉ibatis xml文件都提供的一些标签,这些标签大部分是用来处理推断.逻辑,使得sql能够动态组装变的更灵活. 在写代码的工作量上ibatis要比hibernate高一些,在你写了服务层后还须要些dao层,dao层实现,然后这些在hibernate中不须要自己写,仅仅写到服务层就能够调用hiber

浅谈游戏开发中碰撞检测

原创整理不易,转载请注明出处:使用Memcached.Spring AOP构建数据库前端缓存框架 代码下载地址:http://www.zuidaima.com/share/1781569917635584.htm 数 据库访问可能是很多网站的瓶颈.动不动就连接池耗尽.内存溢出等.前面已经讲到如果我们的网站是一个分布式的大型站点,那么使用memcached实现数 据库的前端缓存是个很不错的选择:但如果网站本身足够小只有一个服务器,甚至是vps的那种,不推荐使用memcached,使用Hiberna