测试基础总结
首先,我们一起了解一下软件需求。软件需求一般分为“功能性需求”和“非功能性需求”。功能性需求指系统的主要特征。非功能性需求包括性能约束,安全性约束,压力约束等。软件测试相关的工作几乎在软件开发的每一个阶段都会涉及。
在开发阶段,开发人员要做相应的单元测试,即对一个很小的功能比如根据一定规则生成商品编号的函数进行测试,验证程序是否应用正确的规则生成了期望的商品编号。
在编码完成以后,开发人员会将可以运行的系统提交给测试人员。在这一阶段,测试人员会对系统进行完整的功能测试以及集成测试。功能测试又称“黑盒测试”,即测试人员不管程序的逻辑和算法,而只关注给系统某个输入,能不能得到预期的某个输出。测试人员主要根据系统提供的用户界面(GUI)进行如下一些验证:
l 用户界面上的必输项和非必输项是否有视觉上的区别?比如必输项后面有一个红星,而非必输项后面没有。
l 窗口或Web页面是否可以调整大小和移动?关闭窗口,恢复窗口的行为是否正确?
l 用户界面上的文字是否有拼写错误?错误提示信息是否正确和容易理解?
l 重要的业务操作是否有确认提示?
l 系统中标签,按钮的命名是否统一?比如有的按钮命名为“查询”,而有的命名为“搜索”等。
l 不可编辑项是不是设置为“只读”了?
l 用户输入是否做了必要的检查?比如订单中商品的数量必须输入大于0的正数;一些项的输入长度是否做了限制等等。
l 如果登陆用户相应的权限,那么窗口或Web页面是不是为不可用呢?
l 在一些特定的条件下,窗口或Web页面中的按钮或链接是否隐藏或禁用了?
在模块或子系统的功能性测试完成以后就会接着进行“集成测试”。在进行集成测试前,测试人员会进行详细的测试集成计划。它的主要目的就是验证各个模块及子系统是否能正确的执行业务流程。比如电子商务系统中的“财务管理”模块经常会和外部的SAP系统打交道。在集成测试过程中就是验证这些交互是否正确。
性能测试主要是验证系统能否满足客户要求的性能约束。在这一过程中会发现系统的性能瓶颈,然后进行优化,进一步提高系统的响应时间及吞吐量。
压力测试主要是验证系统在异常条件下,比如过少的资源,不常见的输入等相对灾难性的输入及约束时,系统的行为如何。根据测试结果对系统做一些相应的修正。
posted on 2009-08-16 10:24 James.H.Fu 阅读(286) 评论(0) 编辑 收藏 举报