一.概念
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不
同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
二.目的
检验软件是否满足规定的需求或弄清预期结果与实际结果之间的差别,帮助
识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) ,完全度(completeness)和质量。
1、寻找Bug;
2、避免软件开发过程中的缺陷;
3、衡量软件的品质;
4、关注用户的需求。
总的目地是:确保软件的质量。
三.生命周期
计划阶段,分析阶段,设计阶段,开发阶段,测试阶段,运行和维护阶段。
四.类型
按开发阶段分:单元测试,集成测试,确认测试,系统测试,验收测试;
按执行方式分:静态测试,动态测试;
按技术分:黑盒测试,白盒测试,灰盒测试;
按测试实施组织分:开发方测试,用户测试,第三方测试;
按测试对象分:文档测试,源代码测试,数据库测试,网络测试;
按质量管理分:功能性,可靠性,易用性,效率,维护性,可移植性测试等。
五.原则
软件测试从不同的角度出发会派生出两种不同的测试原则,从用户的角度出发,就是希望通过软件
测试能充分暴露软件中存在的问题和缺陷,从而考虑是否可以接受该产品,从开发者的角度出发,
就是希望测试能表明软件产品不存在错误,已经正确地实现了用户的需求,确立人们对软件质量的信心
1.应当把“尽早和不断的测试”作为开发者的座右铭
2.程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完。
3.设计测试用例时应该考虑到合法的输入和不合法的输入以及各种边界条件,
特殊情况要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。
4.一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。
5.对测试错误结果一定要有一个确认的过程,一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。
6.制定严格的测试计划,并把测试时间安排的尽量宽松,不要希望在极短的时间内完成一个高水平的测试。
7.回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多的错误出现的现象并不少见。
8.妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。