how automate repetitive qa tasks using excel macros
QA의 매크로 사고 방식에 대한이 심층 가이드에서는 Excel 시트의 예제 및 스크린 샷과 함께 Excel 매크로를 사용하여 반복적 인 QA 작업을 자동화하는 방법을 설명합니다.
오늘날의 세계에서 자동화에 대한 요구는 필수적이고 증가하는 요구 사항 중 하나입니다. 오늘날 모든 사람들은 자신의 작업이나 일상적인 작업에 수반되는 번거 로움을 덜어 줄 무언가를 찾고 있습니다.
요즘에는 아무도 모바일 매장을 방문하고 전화를 충전하기 위해 줄을 서고 싶어하지 않습니다. 물리적으로 아무데도 방문하지 않고 1 초 이내에 온라인으로 전화를 충전하는 것이 편리합니다.
인터넷 뱅킹을 통한 공공 요금 지불, 온라인으로 택시 예약 및 추적, 다양한 전자 상거래 사이트에서 온라인 구매, 세탁기, 전자 레인지, 간헐천 및 끊임없이 진화하는 스마트 폰 등과 같은 다양한 자동화 기기 사용에 이르기까지 오늘날 세계는 정말 서비스 또는 가젯 형태의 스마트하고 자동화 된 제품에 대한 갈망.
이 기사에서는 자동화 도구의 사용이나 인공 지능 또는 기계 학습에 대한 어떤 것도 논의하지 않지만 QA의 일상적인 작업을 자동화하기 위해 Excel을 사용하는 데 초점을 맞출 것입니다.
학습 내용 :
QA의 매크로 사고 방식
수동 테스터는 보통 내가 수동 테스터라는 생각이 기술적이거나 다른 말로하면 '코딩 노하우는 내 차가 아니다'라는 사고 방식을 가지고 있습니다. 이것은 아마도 엔지니어로서의 성장을 막을 수있는 잘못된 사고 방식 일 것입니다.
수동 QA에는 동일한 워크 플로에 따라 반복 될 수있는 많은 일일 작업이 있습니다. QA는 이러한 작업을 매우 잘 식별하고 자동화 할 수 있습니다. Excel 매크로 사용 및 / 또는 공식.
이것은 두 가지 방법으로 도움이 될 수 있습니다.
- 수작업에 소요되는 시간을 줄입니다.
- 또한 QA가 기술적 측면에서 논리적 사고와 숙련도를 배우고 이에 적응하도록 고무합니다.
아래 나열된 모든 테스트 단계에서 작업을 자동화 할 수 있습니다.
- 테스트 계획 및 추정.
- 테스트 디자인 또는 테스트 케이스 준비.
- 테스트 실행 상태 업데이트.
- 테스트 보고서 및 메트릭 생성.
빠른 컨텍스트 설정
#1) 함께 저장되는 엑셀. xlsxm 확장은 매크로 사용 Excel입니다.
#두) Excel에서 매크로를 활성화하려면 파일-> 옵션-> 보안 센터-> 보안 센터 설정-> 매크로 설정-> '모든 매크로 사용'라디오 버튼 선택 'VBA 프로젝트 개체 모델에 대한 액세스 신뢰'확인란을 선택합니다. 확인을 클릭하십시오.
#삼) 메뉴 선택 보기-> 매크로-> 매크로 기록-> 일부 활동 수행 및 매크로 중지 . 매크로를 편집하고에 기록 된 VBA 코드를 볼 수 있습니다. VBA 편집기 창문. 마찬가지로 코드를 명시 적으로 추가하여 매크로를 만들 수 있습니다.
# 4) Excel 매크로 / 공식을 통해 자동화를위한 좋은 후보가 될 수있는 이러한 반복적 인 작업의 특정 예를 살펴 보겠습니다.
사용 예 # 1
모든 기능 단계가 끝날 때 기능 스위트에서 회귀하기 위해 식별 된 몇 가지 테스트 케이스가 있어야합니다. 이것은 모든 스프린트 또는 반복에서 따라야 할 프로세스입니다.
해결책
회귀 제품군을 식별하고 수동으로 만드는 노력을 줄이기 위해 아래의 혁신적인 프로세스를 구현할 수 있습니다.
- 회귀를 위해 테스트 케이스 / 시나리오를 예 / 아니오로 표시하기위한 추가 열이있는 기능 테스트 케이스가있는 시트를 작성할 수 있습니다.
- 그런 다음 매크로가 실행될 때 회귀가 '예'로 표시된 모든 테스트 케이스 / 시나리오가 다른 시트로 복사되도록 동일한 매크로를 만듭니다.
- 따라서 스프린트가 끝날 때 모든 기능 테스트 케이스를 검토 한 다음 각 테스트 케이스를 회귀 스위트로 추출하는 데 추가 노력을 기울이는 추가 연습을 피할 수 있습니다.
데모
- 첫 번째 시트 인‘FunctionalTestScenarios’에는 모든 기능 테스트 시나리오 / 테스트 사례가 포함되어 있습니다.
- 추가 열이 있습니다 '회귀 제품군에 포함 하시겠습니까?' 각 테스트 시나리오가 회귀 스위트에 포함되어야하는지 식별하여 '예'또는 '아니오'를 표시하기 위해 테스트 열 끝에 추가됩니다.
- 두 번째 시트가 다음과 같이 생성됩니다. ‘RegressionSuite’ 그러면 매크로를 통해 모든 회귀 테스트 시나리오를 자동으로 가져옵니다.
- CTRL + SHIFT + S는 매크로를 실행할 바로 가기로 설정됩니다.
FunctionalTestScenarios
RegressionSuite
VBA (매크로) 코드
Sub RegressionSuite() ' Keyboard Shortcut: Ctrl+Shift+S Sheets('FunctionalTestScenarios').Activate Rows('1:1').Select Selection.AutoFilter Sheet1.Range('$A:$D').AutoFilter Field:=4, Criteria1:='Yes' Lastrow=Sheets('FunctionalTestScenarios') .Cells(Sheets('FunctionalTestScenarios').Rows.Count, 'A').End(xlUp).Row Range('A2:C2' & Lastrow).Select Selection.Copy Sheets('RegressionSuite').Select Range('A2').Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=False End Sub
코드 설명
- 시트 ( 'FunctionalTestScenarios'). 활성화 : Excel에 여러 시트가있는 경우 Activate 메서드는 첫 번째 시트를 활성화하므로 포커스가 명시 적으로 첫 번째 시트로 설정됩니다.
- 행 ( '1 : 1'). 선택 : 이 문은 첫 번째 시트의 모든 열에 대한 첫 번째 행을 선택합니다.
- 선택. 자동 필터 : 이 문은 선택한 첫 번째 행에 필터를 적용합니다.
- Sheet1.Range (“$ A $ 1 : $ D $ 38 ″). AutoFilter 필드 : = 4, Criteria1 : =”예”: 이 문은 열 번호 4에 자동 필터를 적용합니다. '회귀 제품군에 포함 하시겠습니까?' 'Yes'값에 대한 레코드를 필터링합니다.
- Lastrow = Sheets ( 'FunctionalTestScenarios'). Cells (Sheets ( 'FunctionalTestScenarios') .Rows.Count, 'A'). End (xlUp) .Row : 이 문은 첫 번째 시트의 마지막 행 수를 가져옵니다.
- Range ( 'A2 : C2'& Lastrow). 선택 : 이 문은 회귀 모음에 포함? = 예인 첫 번째 시트의 모든 행과 열을 선택합니다.
- 선택. 복사 : 이 문은 선택한 모든 레코드를 복사합니다.
- 시트 ( 'RegressionSuite'). 선택 : 이 진술은 2를 엽니 다nd시트.
- 범위 ( 'A2'). 선택 : 이 문은 2 개의 셀 A2를 선택합니다.nd시트.
- Selection.PasteSpecial Paste : = xlPasteValues, 작업 : = xlNone, SkipBlanks _ : = False, Transpose : = False : 이 문은 선택한 소스 셀 값을 대상 시트에 복사합니다. 대상 셀 범위에는 수식을 사용하여 계산 된 값만 포함됩니다. 또는 Paste : = xlValues를 사용할 수도 있습니다. 공백은 건너 뛰지 않습니다. 소스 셀은 전치되지 않으며 수학적 연산이 수행되지 않습니다.
예제 사용 # 2
예를 들어 100 개 주 또는 1000 개 엔터티 (예 : 1000 개의 보험 양식)에 대해 테스트 사례를 만들어야하는 경우가 있습니다. 이 방대한 상태 또는 엔티티 목록에 대한 테스트 단계는 동일하고 반복적 일 수 있습니다.
그럼에도 불구하고 테스트 케이스 준비는 가장 시간이 많이 소요되는 활동 중 하나 일 수 있습니다. 테스트 케이스 문서를 준비하는 것은 클라이언트로부터 필요한 추정치를 구입하고 QA 팀이 각 테스트 케이스를 테스트하도록하는 데 매우 중요합니다. 정확하게 추정 된 타임 라인.
해결책
이러한 경우, 매크로를 사용하면 긴 시간의 테스트 케이스 준비 노력을 몇 초로 줄일 수 있습니다.
- 입력을 테스트 케이스 ID 및 고유 엔티티 목록으로 제공하는 시트를 작성할 수 있습니다.
- 실행시 이러한 각 엔터티에 대해 반복적 인 테스트 단계를 추가하고 테스트 사례를 준비하는 데 필요한 상당한 양의 수동 작업을 소비하지 않고도 몇 초 안에 테스트 사례 문서를 준비하는 매크로를 만듭니다.
데모
- 첫 번째 시트 인‘GetTestcasesASAP’는 처음에는 비어있는 유일한 매크로 기반 시트입니다.
- 다른 시트 '샘플 입력 데이터' 매크로에서 역할을하지 않습니다. 데모 목적으로 샘플 입력 데이터 만 보유합니다.
- 샘플 입력 데이터 범위 A2에서 B12까지의 데이터를 첫 번째 시트에 복사하여 붙여 넣습니다.
- 입력 데이터를 A 열 = …… 형식으로 복사하여 붙여 넣을 수 있습니다. 및 열 B =.
- 입력 데이터가 준비되면 실행할 매크로의 바로 가기 키로 CTRL + SHIFT + T를 누릅니다.
- 각 테스트 케이스 ID에 대해 테스트 단계가 자동으로 추가되고 테스트 케이스 문서가 단 몇 초 만에 준비됩니다.
GetTestcasesASAP
샘플 입력 데이터
입력 데이터는 첫 번째 시트에 붙여 넣습니다.
CTRL + SHIFT + T를 눌러 매크로 실행 중 이미지.
VBA (매크로) 코드
Sub GetTestcasesQuick() ' GetTestcasesQuick Macro ' Keyboard Shortcut: Ctrl+Shift+T Sheets('GetTestcasesASAP').Activate lastrow =Sheets('GetTestcasesASAP').Cells(Sheets('GetTestcasesASAP').Rows.Count, 'A').End(xlUp).Row Dim AddRows As Integer AddRows = 5 Dim i As Integer i = lastrow Do While i <> 1 Rows(i & ':' & i + AddRows).Insert i = i - 1 Loop ScreenUpdating = True lastrow = Sheets('GetTestcasesASAP').Cells(Sheets('GetTestcasesASAP').Rows.Count, 'A').End(xlUp).Row i = 2 While i <= lastrow + 6 Sheets('GetTestcasesASAP').Cells(i, 3) = 'Validate rates-factor combinations' Sheets('GetTestcasesASAP').Cells(i + 1, 3) = 'Batch job schedules and runs. ' Sheets('GetTestcasesASAP').Cells(i + 2, 3) = 'Commissioning calculations settlements' Sheets('GetTestcasesASAP').Cells(i + 3, 3) = 'Quick and detailed quote' Sheets('GetTestcasesASAP').Cells(i + 4, 3) = 'Benefit illustration ' Sheets('GetTestcasesASAP').Cells(i + 5, 3) = 'Benefit summary validation' i = i + 7 Wend End Sub
코드 설명
(a) 시트 ( 'GetTestcasesASAP'). 활성화 : 이 문은 첫 번째 시트를 활성화합니다.
폭 우선 검색 C ++ 트리
(b) lastrow = Sheets ( 'GetTestcasesASAP'). Cells (Sheets ( 'GetTestcasesASAP'). Rows.Count, 'A'). End (xlUp) .Row : 이 문은 마지막 행 수를 가져옵니다. 이번에는 매크로 실행 전에 입력 데이터의 일부로 추가 된 초기 테스트 케이스 ID의 총 행 수를 가져옵니다.
(c) Dim AddRows As Integer : 이 문은 AddRows 변수를 정수 데이터 형식으로 선언합니다.
(d) AddRows = 5 : 이 문은 AddRows를 5로 초기화합니다. 변수는 각 테스트 케이스에 대해 정적 테스트 단계를 추가 할 수 있도록 모든 테스트 케이스 ID 뒤에 몇 줄을 삽입하는 데 사용됩니다.
(e) Dim i As Integer : 이 문은 변수 i를 정수로 선언합니다.
(f) i = 마지막 행 :이 명령문은 초기 마지막 행 수를 변수 i에 할당합니다.
(g) 내가하는 동안 1 :이 do while 루프는 모든 테스트 케이스 ID 뒤에 6 개의 빈 행을 삽입합니다. 루핑은 마지막 테스트 케이스 ID부터 첫 번째 테스트 케이스 ID까지 진행됩니다.
행 (i & ':'& i + AddRows) .Insert
나는 = 나 – 1
고리
(h) ScreenUpdating = True :이 문은 모든 화면 업데이트를 표시합니다. 따라서 매크로의 성능이 약간 느려질 수 있습니다. 매크로의 성능을 최적화하기 위해 다음을 설정할 수도 있습니다. ScreenUpdating = 거짓 .
ScreenUpdating을 False로 설정하면 매크로 성능이 향상되고 실행 속도가 빨라지지만 매크로를 실행하는 동안 발생하는 간헐적 인 변경 사항을 볼 수 없습니다. 대신 매크로 실행이 완료된 후에 만 변경 사항이 표시됩니다.
(i) lastrow = Sheets ( 'GetTestcasesASAP'). Cells (Sheets ( 'GetTestcasesASAP'). Rows.Count, 'A'). End (xlUp) .Row :이 명령문은 각 테스트 케이스에 대해 새로운 6 개 행을 추가 한 후 마지막 행 수를 다시 계산합니다.
(j) 나는 = 2
(k) 내가<= lastrow + 6
Sheets ( 'GetTestcasesASAP'). Cells (i, 3) = '요율-요인 조합 확인'
Sheets ( 'GetTestcasesASAP'). Cells (i + 1, 3) = '일괄 작업을 예약하고 실행합니다. “
Sheets ( 'GetTestcasesASAP'). Cells (i + 2, 3) = '수탁 계산 결제'
Sheets ( 'GetTestcasesASAP'). Cells (i + 3, 3) = '빠르고 상세한 견적'
Sheets ( 'GetTestcasesASAP'). Cells (i + 4, 3) = 'Benefit illustration'
Sheets ( 'GetTestcasesASAP'). Cells (i + 5, 3) = '혜택 요약 유효성 검사'
나는 = 나는 + 7
대다
while 루프의이 스 니펫은 각 테스트 케이스 ID 다음에이 행을 설정하여 모든 테스트 케이스에 대해 6 단계의 정적 테스트 단계를 추가합니다.
각 테스트 케이스에 추가 된 정적 테스트 단계는 다음과 같습니다.
- 1 단계: 요율-요인 조합을 검증합니다.
- 2 단계: 배치 작업을 예약하고 실행합니다.
- 3 단계 : 커미셔닝 계산 합의.
- 4 단계 : 빠르고 상세한 견적.
- 5 단계 : 혜택 그림.
- 6 단계 : 혜택 요약 확인.
또한 시퀀스에서 다음 테스트 케이스 ID를 6 + 2 즉 8로 푸시합니다.일열.
예 : TC1이 첫 번째 행에 있으면 두 번째 행부터 일곱 번째 행까지 단계가 추가되고 TC2는 8 번째 행으로 푸시됩니다. 나머지 테스트 케이스 ID에도 유사한 방식이 적용됩니다.
사용 예 # 3
클라이언트가 1000 개 이상의 레코드에 가까운 거대한 데이터 파일을 제공하고 이러한 엄청난 레코드에 대한 테스트 케이스를 작성하고 각 테스트 단계에 대해 각 데이터를 매핑하는 것이 지루한 작업 인 경우가 있습니다. 매크로를 사용하면 작업 시간을 몇 분으로 단축하여 테스트 케이스 준비 시간을 절약 할 수 있습니다.
해결책
클라이언트에서 제공 한 데이터 파일을 매크로 사용 시트에 복사 할 수 있습니다. 매크로를 실행하면 각 테스트 케이스의 각 테스트 단계에 대해 테스트 데이터를 자동으로 매핑하여 두 번째 시트에 테스트 케이스가 자동 생성됩니다.
데모
- 첫 번째 시트 '입력 파일' 그리고 두 번째 시트 ‘ReadyTestCases’ 매크로의 주요 기여자입니다.
- 또 다른 시트‘Sample -InputFile’은 매크로에서 역할을하지 않습니다. 데모 용으로 샘플 입력 데이터 파일 만 보유합니다.
- 데이터가 ‘Sample-InputFile’ 또는 클라이언트가 제공 한 데이터 파일이 첫 번째 시트 (예 : 'InputFile')에 복사됩니다.
- 매크로를 실행하면 주문 ID가 테스트 케이스 ID로 설정된 각 테스트 케이스에 대해 테스트 케이스가 자동으로 생성됩니다 ( 노트 : InputFile의 첫 번째 열로 배치 된 고유 식별자를 배치해야합니다.
- 지금은 매크로 실행에 대한 단축키가 설정되어 있지 않고 대신 실행 옵션을 통해 실행해야합니다. 보기-> 매크로-> 매크로 선택-> 편집-> VBA 창.
- 매크로 코드는 테스트 단계 추가를 동적으로 처리합니다. 마지막으로 필드 값이 비어 있는지 확인하기 위해 검사를 수행하고, 그렇다면 빈 필드에 대해 단계가 필요하지 않은 것과 동일한 테스트 단계를 삭제합니다. 예를 들어, 아래 입력 파일을 보면 2nd레코드에 Ship Date에 대한 값이없고 세 번째 행에 Region에 대한 값이 없습니다. 따라서 매크로 실행 후 자동 생성되는 테스트 케이스에는 이러한 공백 값에 해당하는 테스트 단계가 없습니다.
샘플-InputFile
InputFile : 샘플 InputFile에서 InputFile로 데이터 복사 붙여 넣기 수행 후
노트 :
- ‘Sample-InputFile’시트의 열 헤더를 붙여 넣지 마십시오.
- 노란색으로 강조 표시된 필드는 비어 있으므로 이러한 공백 값에 해당하는 테스트 단계는 매크로를 통해 생성되지 않아야합니다.
매크로 실행 후 ReadyTestcases 시트 이미지.
VBA (매크로) 코드
Sub Macro1() ScreenUpdating = False '-------- Assign the first column value of Inputfile sheet to first column of ReadyTestCases sheet' This is the TC Id -- ThisWorkbook.Sheets('InputFile').Activate nrow = ThisWorkbook.Sheets('InputFile').Cells(Rows.Count, 1).End(xlUp).Row ncol = ThisWorkbook.Sheets('InputFile').Cells(1, Columns.Count).End(xlToLeft).Column i = 1 j = 1 For i = 1 To nrow ThisWorkbook.Sheets('ReadyTestCases').Cells(i, 1) = ThisWorkbook.Sheets('InputFile').Cells(i, 1) Next i ' ---------------------Inserting 20 buffer blank rows for each row in InputFile sheet--------- lastrow = Sheets('InputFile').Cells(Sheets('InputFile').Rows.Count, 'A').End(xlUp).Row ThisWorkbook.Sheets('InputFile').Activate AddRows = 21 i = lastrow Do While i <> 1 Rows(i &; ':' & i + AddRows - 1).Insert i = i - 1 Loop ' Inserting 21 buffer blank rows for each row in ReadyTestCases sheet----------- lastrow = Sheets('ReadyTestCases').Cells(Sheets('ReadyTestCases').Rows.Count, 'A').End(xlUp).Row ThisWorkbook.Sheets('ReadyTestCases').Activate AddRowsTC = 21 j = lastrow Do While j <> 1 ' 1 because we dont need extra blank lines after last row Rows(j & ':' & j + AddRowsTC - 1).Insert j = j - 1 Loop '------- Input values into ReadyTestCases sheet from each row of inputfile sheet lastrow = Sheets('ReadyTestCases').Cells(Sheets('ReadyTestCases').Rows.Count, 'A').End(xlUp).Row Dim a a = 1 ThisWorkbook.Sheets('ReadyTestCases').Activate For a = 1 To lastrow ThisWorkbook.Sheets('ReadyTestCases').Cells(a,3) = ThisWorkbook.Sheets('InputFile').Cells(a, 2) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 1, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 3) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 2, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 4) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 3, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 5) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 4, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 6) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 5, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 7) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 6, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 8) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 7, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 9) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 8, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 10) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 9, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 11) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 10, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 12) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 11, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 13) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 12, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 14) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 13, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 15) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 14, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 16) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 15, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 17) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 16, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 18) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 17, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 19) a = a + 21 Next a '------- Add verbiages reserved for each row lastrow = Sheets('ReadyTestCases').Cells(Sheets('ReadyTestCases').Rows.Count, 'C').End(xlUp).Row a = 1 ThisWorkbook.Sheets('ReadyTestCases').Activate For a = 1 To lastrow ThisWorkbook.Sheets('ReadyTestCases').Cells(a, 2) = 'Verify Order Date' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 1, 2) = 'Verify Ship Date' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 2, 2) = 'Verify Ship Mode' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 3, 2) = 'Verify Customer Id' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 4, 2) = 'Verify Customer Name' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 5, 2) = 'Verify Segment' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 6, 2) = 'Verify City' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 7, 2) = 'Verify State' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 8, 2) = 'Verify Postal Code' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 9, 2) = 'Verify Region' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 10, 2) = 'Verify Product Id' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 11, 2) = 'Verify Category' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 12, 2) = 'Verify Sub-Category' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 13, 2) = 'Verify Product Name' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 14, 2) = 'Verify Sales' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 15, 2) = 'Verify Quantity' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 16, 2) = 'Verify Discount' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 17, 2) = 'Verify Profit' a = a + 21 Next a '------Second last step- remove blank rows from ReadyTestCases and InputFile----- Deleteblankrows ('ReadyTestCases') 'call Delete blank row function for TC sheet ScreenUpdating = True End Sub ‘-------------------------------------------------------------------------------- Sub Deleteblankrows(ByVal Sheet As String) Dim wks As Worksheet Set wks = ThisWorkbook.Worksheets(Sheet) Dim i As Long wks.Activate lastrow = wks.Cells(Sheets(Sheet).Rows.Count, 'C').End(xlUp).Row With ActiveSheet For i = 1 To lastrow 'check each row of column B , if any row is empty then countA=0, delete that entire row If WorksheetFunction.CountBlank(Range(Cells(i, 2), Cells(i, 3))) = 1 Then Selection.Rows(i).EntireRow.Delete End If Next i End With End Sub
코드 설명
# 1) ScreenUpdating = False : ScreenUpdating을 False로 설정하면 화면 업데이트가 표시되지 않습니다.
# 2) ThisWorkbook.Sheets ( 'InputFile'). Activate : 이 문은‘InputFile’시트를 활성화합니다.
# 3) nrow = ThisWorkbook.Sheets ( 'InputFile'). Cells (Rows.Count, 1) .End (xlUp) .Row : 이 문은 총 행 수를 가져옵니다.
# 4) ncol = ThisWorkbook.Sheets ( 'InputFile'). Cells (1, Columns.Count) .End (xlToLeft) .Column : 이 문은 총 열 수를 가져옵니다.
# 5) i = 1 : 이 문은 i를 1로 초기화합니다.
# 6) j = 1 : 이 문은 j를 1로 초기화합니다.
# 7) i = 1의 경우 nrow
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (i, 1) = ThisWorkbook.Sheets ( 'InputFile'). Cells (i, 1)
다음 i : For 루프 복사의이 스 니펫은‘InputFile’시트의 첫 번째 열 값 (이 경우 Order Id)을 테스트 케이스 ID로‘ReadyTestCases’시트의 각 행에 붙여 넣습니다.
# 8) lastrow = Sheets ( 'InputFile'). Cells (Sheets ( 'InputFile'). Rows.Count, 'A'). End (xlUp) .Row : 이 명령문은 InputFile의 마지막 행 수를 다시 계산합니다.
# 9) AddRows = 21 : 이 문은 AddRows 변수에 21을 할당합니다. 이 변수에는 테스트 단계를 추가하기 위해 각 테스트 케이스에 21 개의 추가 공백 행을 삽입 할 목적으로 21이 지정되었습니다.
# 10) i = 마지막 행 : 이 문은 최신 마지막 행 수를 i에 할당합니다.
# 11) 내가 할 동안 1
행 (i & ':'& i + AddRows – 1) .Insert
나는 = 나 – 1
루프 : 이 문은 아래에서 위로 시작하여 각 테스트 케이스에 대해 20 개의 행을 추가합니다.
# 12) lastrow = Sheets ( 'ReadyTestCases'). Cells (Sheets ( 'ReadyTestCases'). Rows.Count, 'A'). End (xlUp) .Row : 이 문은 최신 총 행 수를 다시 계산합니다.
# 13) ThisWorkbook.Sheets ( 'ReadyTestCases'). 활성화 : 두 번째 시트는이 문을 통해 활성화됩니다.
# 14) 어둡게 : 이 문은 변수 a를 선언합니다.
# 15) a = 1 : 이 문은 a에 1을 할당합니다.
# 16) For a = 1 To lastrow
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 2)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 1, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 3)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 2, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 4)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 3, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 5)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 4, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 6)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 5, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 7)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 6, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 8)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 7, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 9)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 8, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 10)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 9, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 11)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 10, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 12)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 11, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 13)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 12, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 14)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 13, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 15)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 14, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 16)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 15, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 17)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 16, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 18)
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 17, 3) = ThisWorkbook.Sheets ( 'InputFile'). Cells (a, 19)
a = a + 21
다음 a : for 루프의 스 니펫은 각 테스트 케이스 ID의 각 테스트 단계에 대해 InputFile 시트의 모든 열의 값을 매핑합니다.
# 17) lastrow = Sheets ( 'ReadyTestCases'). Cells (Sheets ( 'ReadyTestCases'). Rows.Count, 'C'). End (xlUp) .Row :이 명령문은 각 테스트 케이스 ID에 대해 21 개의 행을 추가 한 후 총 행 수 ReadyTestCases 시트를 다시 계산합니다.
# 18) a = 1 : 이 문은 변수 a에 1을 할당합니다.
# 19) ThisWorkbook.Sheets ( 'ReadyTestCases'). 활성화 : 이 문은 ReadyTestCases 시트를 활성화합니다.
# 20) For a = 1 To lastrow
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a, 2) = '주문 날짜 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 1, 2) = '배송 날짜 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 2, 2) = '배송 모드 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 3, 2) = '고객 ID 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 4, 2) = '고객 이름 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 5, 2) = 'Verify Segment'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 6, 2) = 'Verify City'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 7, 2) = '상태 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 8, 2) = '우편 번호 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 9, 2) = '지역 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 10, 2) = '제품 ID 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 11, 2) = '범주 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 12, 2) = '하위 범주 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 13, 2) = '제품 이름 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 14, 2) = '판매 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 15, 2) = '수량 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 16, 2) = '할인 확인'
ThisWorkbook.Sheets ( 'ReadyTestCases'). Cells (a + 17, 2) = '수익 확인'
a = a + 21
다음 a –이 For 루프 스 니펫은 각 테스트 케이스에 대한 정적 테스트 단계를 추가합니다.
# 21) 빈칸 삭제 ( 'ReadyTestCases') : 'Ready TestCases'시트에 대해 Deleteblankrow 함수를 호출합니다.
# 22) ScreenUpdating = True : 이를 통해 매크로 실행의 일부로 발생하는 화면 업데이트를 시각화 할 수 있습니다.
# 23) Sub Deleteblankrows (ByVal Sheet As String) : 아래 코드는 데이터 필드에 빈 값이 있는지 동적으로 확인하는 Deletblankrows 함수에 대한 것입니다. 그렇다면 빈 데이터에 대해 생성 된 테스트 단계는 해당 행을 삭제하여 차례로 삭제됩니다.
# 24) 워크 시트로 Dim wks : 이 명령문은 wks 변수를 Worksheet로 선언합니다.
# 25) wks = ThisWorkbook.Worksheets (Sheet) 설정 : 이 명령문은 입력 매개 변수로 제공된 wks 시트를 지정합니다.
# 26) 어둡게 : 이 라이너는 I를 Long으로 선언합니다.
# 28) wks. 활성화 : 이 문은 시트를 활성화합니다.
# 29) lastrow = wks.Cells (Sheets (Sheet) .Rows.Count,“C”). End (xlUp) .Row : 이 문은 시트의 마지막 행 개수를 가져옵니다.
# 30) For i = 1 마지막 행 : For 루프는 첫 번째 행에서 마지막 행까지 반복됩니다.
# 31) If WorksheetFunction.CountBlank (Range (Cells (i, 2), Cells (i, 3))) = 1 그러면 : 이 조건은 각 행에 대해 두 번째 및 세 번째 열이 공백 값을 1로 계산하는지 확인합니다.
# 32) Selection.Rows (i) .EntireRow.Delete : 이 문은 조건이 참인 경우 선택한 행을 삭제합니다.
사용 예 # 4
테스트 견적 템플릿의 Excel 수식도 매크로를 사용하여 실행할 수 있습니다. 매크로를 사용하여 차트도 생성됩니다.
데모
- 사용자가 비즈니스 요구 사항 이해에서 시작하여 테스트 스크립트 업데이트에 대한 생성, 실행 및 재 작업에 이르기까지 테스트 단계의 예상 시간을 추가 할 수있는 '예상'시트가 유지됩니다.
- 녹색으로 강조 표시된 셀이 사용자 입력에 활성화됩니다. 입력 필드입니다.
- 파란색으로 강조 표시된 항목은 자동으로 파생됩니다.
- 두 번째 시트에는 재 작업 메트릭이 포함되고 세 번째 시트에는 복잡성 메트릭이 포함됩니다.
- 사용자는 D 열에 H, L 및 M 측면에서 복잡성 크기를 입력하고 E 열은 Vlookup을 사용하여 복잡성 계수를 자동으로 가져옵니다. '복잡성 메트릭' 시트.
- 사용자는 F 열에 H, L, M으로 재 작업 크기를 입력하고 G 열은 '재 작업 메트릭'시트의 vlookup을 사용하여 복잡성 요인을 자동으로 가져옵니다.
- 그런 다음 H 열에서 계수를 사용하여 추정을위한 총 노력을 가져옵니다.
- 다른 매크로를 실행하면 차트가 준비되어 네 번째 시트 인 '차트'에 추가됩니다.
- 포함 된 수식은 바로 가기 키 CTRL + SHIFT + E를 사용하여 매크로를 통해 구동됩니다.
견적
재 작업 지표
복잡성 메트릭
차트
견적 시트 용 VBA (매크로) 코드
' Keyboard Shortcut: Ctrl+Shift+E ThisWorkbook.Sheets(1).Activate Sheets('Estimates').Cells(4, 8) = Sheets('Estimates').Cells(4, 2) * Sheets('Estimates').Cells(4, 3) * Sheets('Estimates').Cells(4, 5) * Sheets('Estimates').Cells(4, 7) Sheets('Estimates').Cells(5, 8) = Sheets('Estimates').Cells(5, 2) * Sheets('Estimates').Cells(5, 3) * Sheets('Estimates').Cells(5, 5) * Sheets('Estimates').Cells(5, 7) Sheets('Estimates').Cells(6, 8) = Sheets('Estimates').Cells(6, 2) * Sheets('Estimates').Cells(6, 3) * Sheets('Estimates').Cells(6, 5) * Sheets('Estimates').Cells(6, 7) Sheets('Estimates').Cells(7, 8) = Sheets('Estimates').Cells(7, 2) * Sheets('Estimates').Cells(7, 3) * Sheets('Estimates').Cells(7, 5) * Sheets('Estimates').Cells(7, 7) Sheets('Estimates').Cells(8, 8) = Sheets('Estimates').Cells(8, 2) * Sheets('Estimates').Cells(8, 3) * Sheets('Estimates').Cells(8, 5) * Sheets('Estimates').Cells(8, 7) Sheets('Estimates').Cells(9, 8) = Sheets('Estimates').Cells(9, 2) * Sheets('Estimates').Cells(9, 3) * Sheets('Estimates').Cells(9, 5) * Sheets('Estimates').Cells(9, 7) Sheets('Estimates').Cells(10, 8) = Sheets('Estimates').Cells(10, 2) * Sheets('Estimates').Cells(10, 3) * Sheets('Estimates').Cells(10, 5) * Sheets('Estimates').Cells(10, 7) Sheets('Estimates').Cells(11, 8) = Sheets('Estimates').Cells(4, 8) + Sheets('Estimates').Cells(5, 8) + Sheets('Estimates').Cells(6, 8) + Sheets('Estimates').Cells(7, 8) + Sheets('Estimates').Cells(8, 8) + Sheets('Estimates').Cells(9, 8) + Sheets('Estimates').Cells(10, 8) ‘--------------------------------------------------- For i = 3 To 10 Sheets('Chart').Cells(i - 2, 1) = Sheets('Estimates').Cells(i, 1) Sheets('Chart').Cells(i - 2, 2) = Sheets('Estimates').Cells(i, 8) Next i End Sub
코드 설명
(a) ThisWorkbook.Sheets (1) .Activat : 첫 번째 시트 '예상'이 활성화됩니다.
(b) Sheets ( 'Estimates'). Cells (4, 8) = Sheets ( 'Estimates'). Cells (4, 2) * Sheets ( 'Estimates'). Cells (4, 3) * Sheets ( 'Estimates' ) .Cells (4, 5) * Sheets ( 'Estimates'). Cells (4, 7) : 이 명령문은 열 B * 열 C * 열 E * 열 G를 계산하고 행 4의 열 H에 할당합니다.
(c) Sheets ( 'Estimates'). Cells (5, 8) = Sheets ( 'Estimates'). Cells (5, 2) * Sheets ( 'Estimates'). Cells (5, 3) * Sheets ( 'Estimates' ) .Cells (5, 5) * Sheets ( 'Estimates'). Cells (5, 7) : 이 문은 B 열 * 열 C * 열 E * 열 G를 계산하고 행 5의 H 열에 할당합니다.
(d) Sheets ( 'Estimates'). Cells (6, 8) = Sheets ( 'Estimates'). Cells (6, 2) * Sheets ( 'Estimates'). Cells (6, 3) * Sheets ( 'Estimates' ) .Cells (6, 5) * Sheets ( 'Estimates'). Cells (6, 7) : 이 문은 B 열 * C 열 * E 열 * G 열을 계산하고 행 6의 H 열에 할당합니다.
(e) Sheets ( 'Estimates'). Cells (7, 8) = Sheets ( 'Estimates'). Cells (7, 2) * Sheets ( 'Estimates'). Cells (7, 3) * Sheets ( 'Estimates' ) .Cells (7, 5) * Sheets ( 'Estimates'). Cells (7, 7) : 이 문은 B 열 * 열 C * 열 E * 열 G를 계산하고 행 7의 H 열에 할당합니다.
(f) Sheets ( 'Estimates'). Cells (8, 8) = Sheets ( 'Estimates'). Cells (8, 2) * Sheets ( 'Estimates'). Cells (8, 3) * Sheets ( 'Estimates' ) .Cells (8, 5) * Sheets ( 'Estimates'). Cells (8, 7) : 이 명령문은 열 B * 열 C * 열 E * 열 G를 계산하고 행 8의 열 H에 할당합니다.
(g) Sheets ( 'Estimates'). Cells (9, 8) = Sheets ( 'Estimates'). Cells (9, 2) * Sheets ( 'Estimates'). Cells (9, 3) * Sheets ( 'Estimates' ) .Cells (9, 5) * Sheets ( 'Estimates'). Cells (9, 7) : 이 문은 B 열 * 열 C * 열 E * 열 G를 계산하고 행 9의 H 열에 할당합니다.
(h) Sheets ( 'Estimates'). Cells (10, 8) = Sheets ( 'Estimates'). Cells (10, 2) * Sheets ( 'Estimates'). Cells (10, 3) * Sheets ( 'Estimates' ) .Cells (10, 5) * Sheets ( 'Estimates'). Cells (10, 7) : 이 명령문은 열 B * 열 C * 열 E * 열 G를 계산하고 행 10의 H 열에 할당합니다.
(i) Sheets ( 'Estimates'). Cells (11, 8) = Sheets ( 'Estimates'). Cells (4, 8) + Sheets ( 'Estimates'). Cells (5, 8) + Sheets ( 'Estimates' ) .Cells (6, 8) + Sheets ( 'Estimates'). Cells (7, 8) + Sheets ( 'Estimates'). Cells (8, 8) + Sheets ( 'Estimates'). Cells (9, 8) + Sheets ( 'Estimates'). Cells (10, 8) : 이 문은 H2에서 H10까지의 셀을 합산하고 최종 값을 H11에 할당합니다. 이 값은 총 작업량 (시간)을 제공합니다.
(j) i = 3 ~ 10 인 경우
Sheets ( 'Chart'). Cells (i – 2, 1) = Sheets ( 'Estimates'). Cells (i, 1)
Sheets ( 'Chart'). Cells (i – 2, 2) = Sheets ( 'Estimates'). Cells (i, 8)
다음 I : 이 For 루프 복사는 견적 시트의 열 1과 열 8의 데이터를 차트 시트에 붙여 넣습니다. 이것은 차트 시트의 데이터를 사용하여 원형 차트를 준비 할 수 있도록 수행됩니다. 동일한 차트를 준비하는 '차트'시트에 대해 작성된 또 다른 매크로가 있습니다.
차트 시트 용 VBA (매크로) 코드
Sub CreateChart() Dim rng As Range Dim cht As Object ThisWorkbook.Sheets('Chart').Activate Set rng = ActiveSheet.Range('A2:B8') Set est = ThisWorkbook.Sheets('Chart').Shapes.AddChart2 est.Chart.SetSourceData Source:=rng est.Chart.ChartType = xl3DPieExploded est.Chart.HasTitle = True est.Chart.ChartTitle.Text = 'Test Estimates' est.Chart.SetElement (msoElementDataLabelCenter) est.Chart.SetElement (msoElementLegendBottom) End Sub
코드 설명
- 범위로 흐리게하기 : 이 문은 rng를 Range 값으로 선언합니다.
- Dim is As Object : 이 문은 est를 Object 값으로 선언합니다.
- 이 Workbook.Sheets ( '차트'). 활성화 : 이 문은 차트 시트를 활성화합니다.
- rng = ActiveSheet.Range ( 'A2 : B8') 설정 : sheet-Chart의 A2에서 B8 범위는 rng로 설정됩니다.
- Set est = ThisWorkbook.Sheets ( 'Chart'). Shapes.AddChart2 : 이 문은 시트-차트에 새 차트를 만드는 데 사용됩니다.
- est.Chart.SetSourceData 출처 : = rng : 이 진술은 차트에서 묵상 할 데이터 범위를 제공합니다.
- est.Chart.ChartType = xl3DPieExploded : 차트 유형은 분해 유형의 3D 파이로 설정됩니다. xl3DPieExploded는이 차트 유형을 결정하는 데 도움이됩니다.
- est.Chart.HasTitle = True : 이 문은 차트에 이미 제목이 있는지 확인합니다.
- est.Chart.ChartTitle.Text =“테스트 견적”: 이 문은 차트 제목을 '예상 테스트'로 재정의합니다.
- est.Chart.SetElement (msoElementDataLabelCenter) : 이 문은 차트의 데이터 레이블 및 범례를 설정합니다.
- est.Chart.SetElement (msoElementLegendBottom) : 이 문은 데이터 레이블을 차트의 맨 아래에 설정합니다.
매크로를 실행하는 방법
매크로는 4 가지 방법으로 실행될 수 있습니다.
- VBA 편집기 창에서 실행 아이콘을 사용합니다.
- Excel 파일에서 메뉴 옵션을 선택하십시오. 보기-> 매크로-> 매크로보기-> 매크로 이름을 선택하고 실행을 선택합니다.
- 매크로를 만드는 동안 바로 가기를 만들고 바로 가기 키를 누르면 매크로가 실행됩니다.
- 가장 사용자 친화적 인 방법은 작업 버튼 ( 예 : 클릭하면 매크로 실행을 트리거하는 매크로가 할당되는 명령 단추).
명령 단추를 추가하고 단추에 매크로를 할당하는 방법을 살펴 보겠습니다. 버튼을 클릭하면 매크로가 실행됩니다.
Excel에서 양식 제어 단추 추가
- 고르다 메뉴‘개발자’-> 삽입-> 양식 컨트롤-> 버튼 선택 아이콘 Excel 시트에 버튼을 추가합니다.
- 버튼의 이름과 텍스트 값을 입력합니다. 버튼의 이름은 VBA 코딩에서이 명령 버튼을 인식하는 데 사용되는 반면 텍스트는 버튼에 표시되는 것입니다.
- 이제 명령 버튼을 마우스 오른쪽 버튼으로 클릭하고 옵션을 선택하십시오. ‘매크로 할당’ , 매크로 목록이 표시되면 할당 할 매크로 이름을 선택합니다.
- 매크로가 할당 된 후 버튼을 클릭하면 할당 된 매크로가 실행됩니다.
- 이 예에서 ‘테스트 견적 받기’ 버튼이 할당 됨 ‘예상’ 매크로.
- 마찬가지로 차트 시트에 대한 명령 단추를 추가하고 차트 생성을 트리거하기 위해 차트에 매크로를 할당합니다.
- 클릭 ‘차트 만들기’ 버튼은 차트에 대한 매크로를 실행합니다. 이것은 매크로의 유용성을 향상시킵니다.
결론
이들은 매크로 생성을 위해 현명하게 식별 할 수있는 테스터의 일상 업무의 일부가 될 수있는 실시간 사례가 거의 없었으며, 따라서 작업을 자동화하여 관련이없고 반복적 인 수동 작업에 많은 시간을 절약 할 수있었습니다.
관련 스크린 샷, VBA 코드 및 각 코드 줄에 대한 자세한 이해는이 기사에서 다루었습니다. 나는 이것이 수동 테스트 사고 방식에서 거시적 사고 방식으로 전환하는 방법에 대한 QA를위한 좋은 출발점이되기를 바랍니다.
수동 테스터의 작업이 순전히 비 기술적 인 작업이라고 생각하는 사람들을 위해 생산성 향상을 위해 필요한 기술 지식을 적용하여 그들이 잘못되었음을 증명하도록합시다.
저자: 이 심도있는 유용한 게시물은 Shobha D가 작성했습니다. 그녀는 프로젝트 리더로 일하고 있으며 수동, 자동화 (Java를 사용하는 IBM RFT 및 Selenium) 및 API 테스트에서 9 년 이상의 경험을 가지고 있습니다.
추천 도서
- VBScript Excel 개체 작업
- Selenium 프레임 워크 생성 및 Excel에서 테스트 데이터 액세스-Selenium Tutorial # 21
- 테스터가 테스트를 잊는 5 가지 가장 일반적인 테스트 작업 (및이를 방지하는 방법)
- 테스터가 Excel을 실행하기 위해 반드시 가져야하는 5 가지 사항 (및 소프트웨어 테스터의 변화하는 관점)
- 예제가있는 JIRA 하위 작업 (JIRA 하위 작업 만들기)