I have started to test my program. To test a function or a segment SQL statement, I have to make a lot of test data for the whole business
flow. In this program, the most business functions will abort the whole business flow by return a abort value, when they found no data or a fatal
error.
So, I test functions in the program, I also test the whole business at once.
The testing is not smooth. There are some table in the test database that have so much fields, some table must add some fields. The fields
that result in the different flow are a little.
SELECT
A.GOODS_NO, /* 商品コード */
A.PRICE_SEQ, /* 一連番号 */
( '"' ||
TO_CHAR(A.GOODS_NO) || '","' ||
TO_CHAR(A.PRICE_SEQ) || '","' ||
A.START_DT || '","' ||
A.END_DT || '","' ||
A.PRICE_CHNG_TP || '","' ||
TO_CHAR(A.PRICE) || '","' ||
A.ONLINE_ONLY_FLG || '","' ||
A.APPROVE_FLG || '","' ||
A.REG_DM || '","' ||
A.UPD_DM || '","' ||
A.USER_ID || '","' ||
TO_CHAR(A.PRICE_CHANGE_NO) || '","' ||
A.PLU || '","' ||
TO_CHAR(A.PROMOTION) || '","' ||
TO_CHAR(A.PRICE_PRIR_SEQ) || '"' ) AS CSVRECORD
FROM
TGOODSPRICE A, /* 売価リスト */
TGOODSDEPL C /* デプロイ商品 */
WHERE
A.PRICE_CHANGE_NO = :hdPriceChange /* 売変指示No */
AND
/*/<2007/12/18> A.ONLINE_ONLY_FLG = :hsOnlineOnlyFlg */
A.ONLINE_ONLY_FLG = '0'
/*$<2007/12/18From*/
AND (
(
EXISTS(
SELECT 1
FROM
T_BAIHEN_SETTING_INFO B
WHERE
B.PRICE_CHANGE = A.PRICE_CHANGE_NO /* B.売変指示No=A.売変指示No */
AND
B.GOODS_NO = A.GOODS_NO /* B.システムSKU=A.商品コード */
AND
B.MAX_PLU_FLG = '0' /* B.最大PLUフラグ='0' */
)
)
OR (
/*$<2007/12/18>追加*/
NOT EXISTS
(SELECT
*
FROM
T_BAIHEN_SETTING_INFO B
WHERE
B.PRICE_CHANGE = A.PRICE_CHANGE_NO /* B.売変指示No=A.売変指示No */
AND
B.GOODS_NO = A.GOODS_NO /* B.システムSKU=A.商品コード */
AND
B.FR_PRICE_CHG_APPRV_STTS = :hsFrPriceChgApprvSttsA /* B.承認='A' */
AND
B.TRAN_TYPE = :hdTrantype11 /* B.TRAN_TYPE=11 */
)
/*$<2007/12/18From*/
)
)
/*$<2007/12/18>追加*/
AND
A.GOODS_NO = C.GOODS_NO /* A.商品コード=C.商品コード */
There are many places like the above needs to modify. From this example, you must know why the testing work is not easy.
flow. In this program, the most business functions will abort the whole business flow by return a abort value, when they found no data or a fatal
error.
So, I test functions in the program, I also test the whole business at once.
The testing is not smooth. There are some table in the test database that have so much fields, some table must add some fields. The fields
that result in the different flow are a little.
SELECT
A.GOODS_NO, /* 商品コード */
A.PRICE_SEQ, /* 一連番号 */
( '"' ||
TO_CHAR(A.GOODS_NO) || '","' ||
TO_CHAR(A.PRICE_SEQ) || '","' ||
A.START_DT || '","' ||
A.END_DT || '","' ||
A.PRICE_CHNG_TP || '","' ||
TO_CHAR(A.PRICE) || '","' ||
A.ONLINE_ONLY_FLG || '","' ||
A.APPROVE_FLG || '","' ||
A.REG_DM || '","' ||
A.UPD_DM || '","' ||
A.USER_ID || '","' ||
TO_CHAR(A.PRICE_CHANGE_NO) || '","' ||
A.PLU || '","' ||
TO_CHAR(A.PROMOTION) || '","' ||
TO_CHAR(A.PRICE_PRIR_SEQ) || '"' ) AS CSVRECORD
FROM
TGOODSPRICE A, /* 売価リスト */
TGOODSDEPL C /* デプロイ商品 */
WHERE
A.PRICE_CHANGE_NO = :hdPriceChange /* 売変指示No */
AND
/*/<2007/12/18> A.ONLINE_ONLY_FLG = :hsOnlineOnlyFlg */
A.ONLINE_ONLY_FLG = '0'
/*$<2007/12/18From*/
AND (
(
EXISTS(
SELECT 1
FROM
T_BAIHEN_SETTING_INFO B
WHERE
B.PRICE_CHANGE = A.PRICE_CHANGE_NO /* B.売変指示No=A.売変指示No */
AND
B.GOODS_NO = A.GOODS_NO /* B.システムSKU=A.商品コード */
AND
B.MAX_PLU_FLG = '0' /* B.最大PLUフラグ='0' */
)
)
OR (
/*$<2007/12/18>追加*/
NOT EXISTS
(SELECT
*
FROM
T_BAIHEN_SETTING_INFO B
WHERE
B.PRICE_CHANGE = A.PRICE_CHANGE_NO /* B.売変指示No=A.売変指示No */
AND
B.GOODS_NO = A.GOODS_NO /* B.システムSKU=A.商品コード */
AND
B.FR_PRICE_CHG_APPRV_STTS = :hsFrPriceChgApprvSttsA /* B.承認='A' */
AND
B.TRAN_TYPE = :hdTrantype11 /* B.TRAN_TYPE=11 */
)
/*$<2007/12/18From*/
)
)
/*$<2007/12/18>追加*/
AND
A.GOODS_NO = C.GOODS_NO /* A.商品コード=C.商品コード */
There are many places like the above needs to modify. From this example, you must know why the testing work is not easy.