软件测试基础与生命周期

0 下载量 134 浏览量 更新于2024-06-28 收藏 78KB PPT 举报
"软件测试的基本知识PPT课件包含了关于软件测试的重要概念、测试模型、分类、原则、策略、流程以及成功经验。本课件详细阐述了软件测试在软件开发生命周期中的作用,强调了测试从项目初期就应该开始并持续进行的重要性。" 在软件测试领域,了解基本知识是至关重要的。首先,软件测试涉及到一系列术语,如软件错误、软件缺陷、软件故障和软件失效。软件错误是程序员在编写代码时的失误,导致程序不按预期工作;软件缺陷则是指程序中存在错误或不足,可能导致错误的行为;软件故障是错误在运行时的表现,可能会导致程序崩溃或输出错误结果;而软件失效则是用户在使用过程中遇到的问题,通常由软件故障引起。 软件测试并不仅仅局限于编码阶段,而是自软件开发生命周期的早期阶段就开始。自20世纪70年代中期以来,软件开发生命周期模型被广泛接受,包括需求分析、设计、编码、测试和维护等阶段。测试工作应覆盖整个周期,尤其在需求收集和设计阶段,以尽早发现问题并提高软件质量。 测试模型包括V模型、W模型、H模型等,它们都强调了测试与开发活动的对应关系。例如,V模型表明测试活动应与每个开发阶段(需求、设计、编码)相对应,分别进行需求验证、设计验证和编码验证。 软件测试的分类包括单元测试、集成测试、系统测试、验收测试等,每种测试类型都有其特定的目标和范围。单元测试主要针对代码模块进行,集成测试关注不同模块间的交互,系统测试则检查整个系统的功能和性能,而验收测试是用户或客户对软件的最终确认。 软件测试的原则包括:尽早测试、全面测试、避免测试自己编写的代码(需要独立的测试团队)、充分测试、记录和跟踪缺陷等。遵循这些原则可以提高测试效率和效果。 测试策略涉及选择合适的测试方法和技术,如黑盒测试、白盒测试、灰盒测试、压力测试、性能测试等,以满足不同类型的测试需求。 软件测试流程通常包括计划、设计、执行、记录和报告结果、缺陷跟踪和修复、以及回归测试等步骤。测试的成功经验通常涉及良好的沟通、详尽的测试用例、及时的缺陷管理以及持续的改进。 在整个软件开发生命周期中,不同的输出成果,如需求规格说明、设计文档、程序代码等,都是测试的对象。测试人员需要根据这些文档制定测试计划,确保软件的每个阶段都符合预定的质量标准。通过深入理解这些基本知识,测试人员能够更有效地进行软件测试,从而提高软件产品的可靠性和用户体验。

SELECT PIS.SHOW_FLT_DETAIL AS SHOW_FLT_DETAIL -- new , PIS.SHOW_AWB_DETAIL AS SHOW_AWB_DETAIL -- new , PIS.DISPLAY_AIRLINE_CODE AS CARRIER_CODE , DECODE(PIS.REVERT_FLOW,'N',PIS.FLOW_TYPE,DECODE(PIS.FLOW_TYPE,'I','E','I')) AS FLOW_TYPE , PIS.SHIP_TO_LOCATION AS SHIP_TO_LOCATION , PIS.INVOICE_SEQUENCE AS INVOICE_SEQUENCE , PFT.FLIGHT_DATE AS FLIGHT_DATE , PFT.FLIGHT_CARRIER_CODE AS FLIGHT_CARRIER_CODE , PFT.FLIGHT_SERIAL_NUMBER AS FLIGHT_SERIAL_NUMBER , PFT.FLOW_TYPE AS AIRCRAFT_FLOW , FAST.AIRCRAFT_SERVICE_TYPE AS AIRCRAFT_SERVICE_TYPE , PPT.AWB_NUMBER AS AWB_NUMBER , PPT.WEIGHT AS WEIGHT , PPT.CARGO_HANDLING_OPERATOR AS CARGO_HANDLING_OPERATOR , PPT.SHIPMENT_PACKING_TYPE AS SHIPMENT_PACKING_TYPE , PPT.SHIPMENT_FLOW_TYPE AS SHIPMENT_FLOW_TYPE , PPT.SHIPMENT_BUILD_TYPE AS SHIPMENT_BUILD_TYPE , PPT.SHIPMENT_CARGO_TYPE AS SHIPMENT_CARGO_TYPE , PPT.REVENUE_TYPE AS REVENUE_TYPE , PFT.JV_FLIGHT_CARRIER_CODE AS JV_FLIGHT_CARRIER_CODE , PPT.PORT_TONNAGE_UID AS PORT_TONNAGE_UID , PPT.AWB_UID AS AWB_UID , PIS.INVOICE_SEPARATION_UID AS INVOICE_SEPARATION_UID , PFT.FLIGHT_TONNAGE_UID AS FLIGHT_TONNAGE_UID FROM PN_FLT_TONNAGES PFT , FZ_AIRLINES FA , PN_TONNAGE_FLT_PORTS PTFP , PN_PORT_TONNAGES PPT , FF_AIRCRAFT_SERVICE_TYPES FAST , SR_PN_INVOICE_SEPARATIONS PIS --new , SR_PN_INVOICE_SEP_DETAILS PISD--new , SR_PN_INV_SEP_PORT_TONNAGES PISPT --new WHERE PFT.FLIGHT_OPERATION_DATE >= trunc( CASE :rundate WHEN TO_DATE('01/01/1900', 'DD/MM/YYYY') THEN ADD_MONTHS(SYSDATE,-1) ELSE ADD_MONTHS(:rundate,-1) END, 'MON') AND PFT.FLIGHT_OPERATION_DATE < trunc( CASE :rundate WHEN TO_DATE('01/01/1900', 'DD/MM/YYYY') THEN TRUNC(SYSDATE) ELSE TRUNC(:rundate) END, 'MON') AND PFT.TYPE IN ('C', 'F') AND PFT.RECORD_TYPE = 'M' AND (PFT.TERMINAL_OPERATOR NOT IN ('X', 'A') OR (PFT.TERMINAL_OPERATOR <> 'X' AND FA.CARRIER_CODE IN (SELECT * FROM SPECIAL_HANDLING_AIRLINE) AND PPT.REVENUE_TYPE IN (SELECT * FROM SPECIAL_REVENUE_TYPE) AND PPT.SHIPMENT_FLOW_TYPE IN (SELECT * FROM SPECIAL_SHIPMENT_FLOW_TYPE) AND PFT.FLIGHT_OPERATION_DATE >= (select EFF_DATE from SPECIAL_HANDLING_EFF_DATE) )) AND PFT.DELETING_DATETIME IS NULL AND FA.AIRLINE_UID = PFT.AIRLINE_UID AND FA.DELETING_DATETIME IS NULL AND PTFP.FLIGHT_TONNAGE_UID = PFT.FLIGHT_TONNAGE_UID AND PTFP.RECORD_TYPE = 'M' AND PTFP.DELETING_DATETIME IS NULL AND PPT.TONNAGE_FLIGHT_PORT_UID (+)= PTFP.TONNAGE_FLIGHT_PORT_UID AND PPT.RECORD_TYPE (+)= 'M' AND PPT.DISCREPANCY_TYPE (+)= 'NONE' AND PPT.ADJUSTMENT_INC_FLAG (+)= 'Y' AND PPT.DELETING_DATETIME (+) IS NULL AND FAST.AIRCRAFT_SERVICE_TYPE_UID = PFT.AIRCRAFT_SERVICE_TYPE_UID AND FAST.DELETING_DATETIME IS NULL AND PIS.TEMPORAL_NAME = TO_CHAR((CASE :rundate --new WHEN TO_DATE('01/01/1900', 'DD/MM/YYYY') THEN TRUNC(SYSDATE) ELSE TRUNC(:rundate) END ), 'YYYYMM') || '00' AND PIS.INVOICE_SEPARATION_UID = PISD.INVOICE_SEPARATION_UID --new AND PISD.INVOICE_SEP_DETAIL_UID = PISPT.INVOICE_SEP_DETAIL_UID --new AND PISPT.PORT_TONNAGE_UID = PPT.PORT_TONNAGE_UID --new AND PIS.PRINT_SUPPORTING_DOC = 'Y';上面是oracle的写法,请转成spark SQL的写法。

2023-06-02 上传