首先,查找需求说明书,网站设计等相关文档,分析测试需求。
制定测试计划、确定测试范围和测试策略,一般可以包括以下几个部分:功能测试、界面测试、性能测试、数据库测试、安全性测试、兼容性测试。
设计测试用例:
功能测试可以包括但不限于以下几个方面:
(1)链接测试,链接是否正确跳转,是否存在空页面或者无效页面,是否有不正确的出错信息的返回;
(2)提交功能的测试;
(3)多媒体元素是否可以正常加载和显示;
(4)多语言支持是否能够正确显示选择的语言;
界面测试可以包括但不限于以下几个方面:
(1)页面是否风格统一,美观;
(2)页面布局是否合理,重点内容和热点内容是否突出显示;
(3)控件是否正常使用;
(4)对于必须但未安装的控件,是否提供自动下载并安装的功能;
(5)文字检查;
性能测试一般从以下几个方面考虑:
压力测试、负载测试、强度测试;
安全性测试:
(1)基本的登陆功能的检查;
(2)是否存在溢出错误,导致系统崩溃或者权限泄露;
(3)相关开发语言的常见安全性问题检查,例如SQL注入等;
兼容性测试,根据需求说明的内容,确定支持的平台组合:
(1)浏览器的兼容性;
(2)操作系统的兼容性;
(3)软件平台的兼容性;
(4)数据库的兼容性;
在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
软件测试的目的:
(1)测试是程序的执行过程,目的在于发现错误;
(2)一个成功的测试用例在于发现至今尚未发现的错误;
(3)确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的的书面说明;
(4)确保产品满足性能和效率的要求;
(5)确保产品是健壮的适应用户环境的;
软件测试的原则:
(1)测试用例中一个必须部分是对预期输出进行定义;
(2)程序员应当避免测试自己编写的程序;
(3)应当彻底检查每个测试的执行结果;
(4)测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况;
(5)应当避免测试用例用后即齐,除非软件本身就是个一次性软件;
(6)计划测试工作时不应默许假定不会发现错误;
(7)程序某部分存在更多错误的可能性,与该部分已经发现错误的数量成正比;
(8)软件测试是一项极富创造性,极具智力的挑战性的工作;
白盒测试:逻辑覆盖、循环覆盖、条件覆盖、基本路径覆盖
黑盒测试:边界值分析法、等价类划分、错误猜测法、因果图法、场景法
测试用例:为实施测试而向被测系统提供的一组集合,这组集合包括用例名称、用例编号、前置条件、输入数据、测试步骤、预期结果、实际结果等。
测试脚本:为了进行测试而编写的脚本,测试脚本的编写必须对应相应的测试用例。
静态测试:不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程;
动态测试:实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检查程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能;
黑盒测试:一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得以实现,把被测的程序当做一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性;
白盒测试:根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量;
α测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,α测试不能由程序员或测试人员来完成;
β测试:是软件的多个用户在一个或者多个用户的实际使用环境下进行测试,开发通常不在现场;
(1)尽可能早的找出系统中的Bug;
(2)避免软件开发过程中缺陷的出现;
(3)衡量软件的品质,保证系统的质量;
(4)关注用户的需求,并保证系统符合用户需求;
总体目标:确保软件的质量。
一个合格的Bug描述应包含以下几个部分:
(1)发现问题的版本;
(2)问题出现的环境(Bug出现时的测试环境);
(3)错误重现的步骤;
(4)预期行为的描述;
(5)错误行为的描述(包括一些截图、录像等);
(6)Bug的严重级别,优先级;
(7)不要把多个Bug放在一起;
单元测试阶段:各独立单元模块在与系统的其他部分相隔离的情况下进行测试,单元测试针对每一个程序模块进行正确性校验,检查各个程序模块是否正确的实现了规定的功能,该阶段生成单元测试报告,提交缺陷报告。
集成测试阶段:集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动,该阶段生成集成测试报告,提交缺陷报告。
系统测试阶段:将通过确认测试的软件,作为整个给予计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行全面的功能覆盖,该阶段需要提交测试总结和缺陷报告。
黑盒测试优点:比较简单,不需要了解程序内部的代码以及实现,与软件的内部实现无关;从用户的角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题,基于软件开发文档,所以也能知道软件实现了文档中哪些功能,在做软件自动化时较为方便。
黑盒测试缺点:不可能覆盖所有代码,覆盖率较低,大概只能达到总代码量的30%,自动化测试的复用性较低。
白盒测试优点:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
白盒测试缺点:程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。