1、软件测试级别:需求测试、组件/单元测试、集成测试、系统测试、验收测试、Alpha测试、Beta测试、UAT测试。
2、需求测试
1.完整性:每一项需求都必须将所要实现的功能描述清楚。
2.正确性:每一项需求都必须准确地陈述其要开发的功能。
3.一致性:与其他软件需求或系统需求不相矛盾,或者与项目宣传资料一致。
4.可行性:每一项需求都必须是在已知系统和环境的权限和范围内可以实施。
5.无二义性:要尽量把每项需求用简洁明了的用户语言表达出来。
6.健壮性:需求说明中是否对可能出现的异常进行了分析,并且对这些异常进行了容错处理。
7.必要性:每项需求都是用来授权编写文档的“根源”。
8.可测试性:每项需求都能通过设计测试用例或其他的验证方法来进行测试。
9.可修改性:每项需求只应在软件需求规格说明书中出现一次。这样更改时易于保持一致性。
3、组件/单元测试
软件系统中,系统对象的基本组成单元称为组件或程序单元。它测试的是每个单元模块的程序结构。
4、集成测试
测试对象可以是一个独立软件实体的对外接口,也可以是多个相邻软件实体相互之间的接口。
5、系统测试
系统测试从用户使用的角度设计测试步骤,目的是检验系统是否满足用户需求。一般在系统所有软件都开发完成后进行。
6、验收测试
在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动。
7、Alpha测试
由用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。
8、Beta测试
由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。
9、软件测试类型
1.功能测试:测试功能能否使用。
2.性能测试:测试在不同的情况下软件响应的时间。
3.负载测试:在超负荷环境中运行,程序能否可以承受。
4.压力测试:给软件不断加压,强制其在极限的情况下运行,观察它可以运行何种程度,从而发现性能缺陷。
5.容量测试:确定系统可处理同时在线的最大用户数,使系统承受超额的数据容量来发现它是否能够正确处理。
6.安全测试:防止别人攻击成功自己的安全系统。
7.兼容性测试:检查软件在不一样软件、硬件平台能否可以常规运行。
8.可靠性测试:主要是硬件配置方面的,比如高低温测试、防水防尘等测试。
9.移植测试:软件产品能否顺利地移植到新的硬件或软件平台上,移植之后,软件仍能满足用户需求。
10.维护测试:在实际使用过程中,因改正错误或需求变更而引发的确认验证测试活动。
11.确认测试:软件的功能和性能及其他特性是否与用户的要求一致。
12.回归测试:检查修改后的BUG还有没有问题。
10、软件测试方法
1.黑盒测试:主要关注被测软件的功能实现,而不是内部逻辑。
优点:比较简单,与软件内部实现无关;在做软件自动化测试时较为方便;很容易的知道用户会用到哪些功能,会遇到哪些问题。
缺点:不可能覆盖所有代码,覆盖率较低;自动化测试的复用性较低。
2.白盒测试:对软件的过程性细节做细致的检查。
优点:可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底。
缺点:昂贵;无法检测代码中遗漏的路劲和数据敏感性错误;不验证规格的正确性。
3.灰盒测试:介于白盒测试与黑盒测试之间的测试。
优点:测试结果可以对应到程序内部路径,便于bug的定位、分析、解决;能避免需求或设计不详细或不完整对测试造成的影响。
缺点:投入的时间比黑盒测试多;不如白盒测试深入;对测试人员的要求比黑盒测试高。
4.静态测试:不实际运行被测对象,而只是静态地检查程序代码、界面或文档中可能存在错误的过程。
5.动态测试:实际运行被测对象,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
6.手工测试:由测试人员手工编写测试用例、执行、观察结果。
缺点:测试工作量大、重复多、回归测试难以实现。
7.自动化测试:以程序测试程序,以代码代替思维,以脚本的运行代替手工测试。
优点:快速、可重用,替代人的重复活动。
缺点:无法做到手工测试的覆盖率;自动化发现的缺陷较少;崩溃、死机,但却无法发现新的错误。