2.保留字符输入的软件测试探索
表单输入的数据,除了存储到数据库中,还会显示在界面上。例如在修改个人信息的案例中,系统会把以前输入到数据库中的数据显示到界面上,这样便于用户对信息中不合适的地方进行修改。要对这种类型的软件测试进行探索,首先要搞清楚这套产品对表单输入数据使用的是何种方式进行输出?这种输出方式中存在哪些保留字符?输出的方法是用HTML语言显示的,HTML保留字符有:<、>、"、'、&、空格、回车等(参见附录A)。HTML显示这些字符时可以用其他字符进行替换。一个正常的操作是从数据库中输出保留字符以后,程序对这些保留字符通过正则替换转码为HTML中对应的可以显示的字符串,如'<'转为<;,空格转为 …….如果在表单中输入了这些字符,或者输入一段含有这些字符的HTML代码或者JavaScript代码,如<a href="http://www.sina.com.cn">进入新浪</a>,然后在显示页面中查看输出的格式是否正确,如果不正确,或者出现显示页面错乱,甚至执行了JavaScript语句,这属于XSS注入,肯定是一个Bug。
案例仍旧为案例3-1,增加测试用例,见表3-2。
3.1.2 模糊查询输入框输入数据的测试探索
目前除了一些专业的搜索引擎(如Google、百度)以及流行的大数据存储方式采用非关系型数据库或者NoSQL技术进行存储,对于大多数软件系统,通常还是采用传统的关系型数据库进行存储。若一个用户想查询标题中含有"云计算"的标题,再通过单击相应标题查看文章内容,通常对应的SQL查询语句为:select url,title,content from paper where title like '%$title%'; ($title为模糊查询文本框提交过来的字符串,这里为"云计算")。下面深入讨论一下SQL语句中%这个关键而特殊的模糊查询字符,假设用户在模糊查询输入框中输入%,而程序没有对%进行特殊处理,上述的SQL语句就变为select url,title,content from paper where title like '%%%',这样的查询输出结果不是把文章标题中含有%字符的标题输出,而是把这个数据库表中所有的记录都给输出来了,这属于SQL注入,也是一个Bug。
案例3-2:模糊搜索。
某文本框为根据关键字进行模糊搜索,可以设计测试用例,如表3-3所示。
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关推荐: