728x90
반응형

오늘 포스팅할 내용은

state-of-quality-report-2022

 

을 주관적으로 분석한 글입니다.

 

관련 자료는 아래 링크에서 다운로드하여보실 수 있습니다.

 

제 글을 읽으시기전에 한 번 본인의 생각은 어떤지 

 

정하고 보시는 걸 추천드려요.

 

팀 내에서만 공유했지만 혼자보기 아까워서 개인 블로그에 올립니다~!

 

 

https://katalon.com/state-quality-2022

 

The State of Quality Report 2022 | Katalon

Insights from 3,000+ professionals on software testing trends, test automation for ROI improvements, and best practices for quality assurance.

katalon.com

 

 

 

요약

Katalon 에서 소프트웨어 품질에 대한 설문 조사와 분석을 바탕으로 작성된 리포트입니다.

QA 업계에서 일어나는 변화, 테스트 자동화와 인공지능 기술의 활용 등에 대한 정보를 제공하는 문서입니다.

 

 

머리말

요즘 빠르게 변화하는 세상에서, 조직들은 소프트웨어 품질(QA) 관행에서의 개선을 위해 내부와 외부 모두를 살펴야 합니다. 소프트웨어 품질을 빠른 속도로 제공하는 데에 대한 강점과 약점을 결정하기 위해 자신들의 관행에서 생성된 정보와 데이터를 수집하고 분석해야 합니다. 동시에, 그들은 각자의 산업에서 현재 상황과 트렌드를 찾아내야 합니다.

이 보고서는 3,000명 이상의 응답자를 대상으로 한 조사 결과를 바탕으로, 현재 소프트웨어 품질의 상태를 스냅숏으로 담아내며, QA 기술, 관행, 도구에 대한 통찰력과 트렌드를 예측합니다. 우리의 연구는 소프트웨어 엔지니어, QA 엔지니어, 분석가 및 관리자를 대상으로 조사되었으므로, 이러한 소프트웨어 품질을 보장하는 데 직접 관여하는 사람들의 의견과 목소리를 반영합니다.

 

 

본문

반응형

 


결론(이라 쓰고 3줄 요약이라고 적기)

자동화 테스트는 생각보다 많은 팀이 사용하지 않는다.

그럼에도 필요한 기술이다.

왜냐면 자동화를 도입한 팀들은 시간과 비용을 절약했기 때문이다.

 

 

 

 

 

상업적인 목적으로 만들어진 자료이기 때문에 100% 맹신할 필요는 없습니다.

그냥 이런 흐름이 있구나~라고 가볍게 보는 걸 추천드려요!

 

 

 

58 page 중에 3분의 1 정도는 Katalon이 어떤 회사인지... 알 수 있습니다.

 

 

 


참고 링크

https://xmlangel.kr/posts/2023-04-10-Katalon-2022-Report : 다른 분들은 어떻게 분석했나 보고 싶었는데 해당 블로그가 많은 도움을 주었습니다.

 

 

 

 

위 글은 Katalon에서 만든 자료를 제 개인적인 생각을 넣어서 분석한 글이기 때문에 모든 저작권 및 권한은 Katalon에 있습니다.

728x90
반응형
728x90
반응형

안녕하세요!

 

무작정 강의 듣고 따라 하기 2탄이자 마지막 시간입니다.

 

2023.03.19 - [자동화 QA로 단단해지기/cypress로 단단해지기] - [cypress]#01_cypress 무작정 강의 듣고 따라 하기 01

 

[cypress]#01_cypress 무작정 강의듣고 따라하기01

오늘은 cypress 2번째 시간입니다. 2023.03.19 - [자동화 QA로 단단해지기/cypress로 단단해지기] - [cypress]#00_cypress 무작정 시작해 보기 전에! 자동화 왜 합니까? [cypress]#00_cypress 무작정 시작해 보기 전에!

ddanx2.tistory.com

오늘은 계산기 애플리케이션을 테스트하는 코드를 작성해 볼 것입니다.

 

그럼 거두절미하고 

 

바로 시작하겠습니다.

 


vscode 실행 ~ cypress open
./node_modules/.bin/cypress open

 

요구사항 파악하기
## 🎯 기능 요구사항

- [ ] 2개의 숫자에 대해 덧셈이 가능하다.
- [ ] 2개의 숫자에 대해 뺄셈이 가능하다.
- [ ] 2개의 숫자에 대해 곱셈이 가능하다.
- [ ] 2개의 숫자에 대해 나눗셈이 가능하다.
- [ ] AC(All Clear)버튼을 누르면 0으로 초기화 한다.
- [ ] 숫자는 한번에 최대 3자리 수까지 입력 가능하다.
- [ ] 계산 결과를 표현할 때 소수점 이하는 버림한다.

테스트 케이스 작성 및 테스트할 링크 연결
describe("계산기 어플 테스트", () => {
  beforeEach(() => {
    cy.visit("http://127.0.0.1:5500/index.html");
  });

계산기 어플 테스트라는 test suite를 작성할 것이고

 

beforeEach를 통해 매번 테스트는 visit("링크")로 시작합니다.

 

 

첫 번째 요구사항 
it("2개의 숫자에 대해 덧셈이 가능하다.",()=>{
    cy.get(".digit").contains("2").click();
    cy.get(".operation").contains("+").click();
    cy.get(".digit").contains("1").click();
    cy.get(".operation").contains("=").click();
    cy.get("#total").should("have.text","3");
  });

it으로 첫 번째 testcase("2개의 숫자에 대해 덧셈이 가능하다")를 작성합니다.

우리는 숫자에 대한 클래스와 사칙연산에 대한 클래스가 무엇인지 알아야 합니다.

 

숫자는 digit , 사칙연산 버튼은 operation입니다.

 

첫 번째 숫자. digit에서 2를 contain 한 button을 click 해줍니다.

 

그리고. operation에서 + button을 click 해줍니다.

 

두 번째 숫자. digit에서 1을 contain 한 button을 click 해줍니다.

 

그리고 계산의 결과 값을 알기 위해 = button 을 click 해줍니다.

 

그 결과 (#total)는

should (여야만 합니다.) "have.text", "3"(3을 가진 텍스트여야 합니다.)

 

두 번째 ~ 네 번째 요구사항
it("2개의 숫자에 대해 뺄셈이 가능하다.",()=>{
    cy.get(".digit").contains("2").click();
    cy.get(".operation").contains("-").click();
    cy.get(".digit").contains("1").click();
    cy.get(".operation").contains("=").click();
    cy.get("#total").should("have.text","1");
  });


  it("2개의 숫자에 대해 곱셈이 가능하다.",()=>{
    cy.get(".digit").contains("2").click();
    cy.get(".operation").contains("x").click();
    cy.get(".digit").contains("2").click();
    cy.get(".operation").contains("=").click();
    cy.get("#total").should("have.text","4");
  });


  it("2개의 숫자에 대해 나눗셈이 가능하다.",()=>{
    cy.get(".digit").contains("2").click();
    cy.get(".operation").contains("/").click();
    cy.get(".digit").contains("2").click();
    cy.get(".operation").contains("=").click();
    cy.get("#total").should("have.text","1");
  });

위의 덧셈 테스트 코드와 별로 다를 게 없습니다.

 

각 사칙연산에 맞는 button을 입력해 줍니다.

 

다섯 번째 요구사항
it("AC버튼을 누르면 0으로 초기화" ,()=>{
    cy.get(".digit").contains("2").click();
    cy.get(".modifier").contains("AC").click();
    cy.get("#total").should("have.text", "0");
  });

AC버튼을 누르면 0으로 초기화되도록 testcase를 작성합니다.

 

초기화하기 전에 사전 조건은 

 

계산기에 값이 있어야 합니다.

 

따라서 2를 먼저 입력해 줍니다.

 

그리고. modifier에 포함된 AC button을 클릭해 줍니다.

 

그러면 결과 값(#total)은 should (여야만 합니다.) "have.text", "0"(0을 가진 텍스트여야 합니다.)

 

여섯 번째 요구사항
  it("숫자는 한번에 최대 3자리수까지 입력", ()=>{
    cy.get(".digit").contains("1").click();
    cy.get(".digit").contains("2").click();
    cy.get(".digit").contains("3").click();
    cy.get(".digit").contains("4").click();
    cy.get("#total").should("have.text", "123");
  });

이 계산기 애플리케이션은 숫자를 한 번에 최대 3 자릿수까지 입력 가능합니다.

 

따라서 3자리수까지 입력 가능한지 확인을 하기 위해

 

1~4를 클릭해 줍니다.

 

원래대로라면 1234 가 나오겠지만 애플리케이션 특성상 123 만 출력되어야 합니다.

 

그러면 결과 값(#total)은 should (여야만 합니다.) "have.text", "123"(123을 가진 텍스트여야 합니다.)

 

일곱 번째 요구사항
it("계산 결과를 표현할 때 소수점 이하는 버림한다.", ()=>{
    cy.get(".digit").contains("1").click();
    cy.get(".operation").contains("/").click();
    cy.get(".digit").contains("2").click();
    cy.get(".operation").contains("=").click();
    cy.get("#total").should("have.text","0");
  });

이 계산기 애플리케이션은 소수점 이하는 버립니다.

 

그래서 1 나누기 2를 하면 0.5 가 나오게 되지만

 

이 계산기 애플리케이션은 0 만 나오게 됩니다.

 

결과 값(#total)은 should (여야만 합니다.) "have.text", "0"(0을 가진 텍스트여야 합니다.)

 

테스트 결과

 

 

 


이 계산기 어플리케이션 과제를 끝으로

 

https://inf.run/Yb4d

 

하루만에 Cypress로 작성하는 자바스크립트 E2E 테스트 코드 - 인프런 | 강의

프론트엔드는 사용자와의 접점이 이루어지는 곳이기 때문에 개발자의 입장이 아닌, 사용자의 입장에서의 테스트가 매우 중요합니다. E2E테스트를 통해 사용자 시나리오가 정상적으로 동작하는

www.inflearn.com

 

강의가 마무리되었습니다.

 

이제 어떻게 응용해 볼지는 다음시간에 알아보도록 하겠습니다.

 

무작정 따라 해봤고

 

무작정 이해해 봤습니다.

 

그럼 다음시간에 만나요~

 

반응형

 

728x90
반응형
728x90
반응형

안녕하세요!!

 

오늘은 처음 써보는 유머글입니다.

 

 

 

 

 

인터넷에서 재밌는 걸 봤는데

 

이걸 QA 엔지니어 관점에서 봤을 때

 

단위테스트만 진행하고 통합테스트를 진행하지 않은 결과물

 

관련한 짤(gif)을 보도록 하겠습니다.

 

옷 다 젖는 수도꼭지

잠금장치만 확실한 문

이중 보안

보는 사람만 재미있는 워터 슬라이드

 

좋지 못한 곳에 설치된 물비누 디스펜서

 


위의 짤(gif)만 봐도

 

왜 통합테스트가 이뤄져야 하는지 이해가 되시죠??

 

 

그냥 웃고 넘길 수 있는 짤(gif) 지만

 

QA엔지니어 관점에서 다시 보니 웃음과 교훈도 얻을 수 있었습니다.

 

그럼 이만!

 

 

 

 

반응형

 

 

출처 : https://m.cafe.daum.net/dotax/Elgq/3359298?svc=topRank

728x90
반응형
728x90
반응형

오늘은 cypress 2번째 시간입니다.

 

2023.03.19 - [자동화 QA로 단단해지기/cypress로 단단해지기] - [cypress]#00_cypress 무작정 시작해 보기 전에! 자동화 왜 합니까?

 

[cypress]#00_cypress 무작정 시작해 보기 전에! 자동화 왜 합니까?

자동화 QA 관련 카테고리를 생성했습니다. 당분간 cypress에 관한 글을 자주 포스팅 할 것 같습니다. 갑자기 웬 자동화 QA?? 라고 생각할 수 있지만, 이제 6년 차 QA 엔지니어로써 언제까지 Manual QA만

ddanx2.tistory.com

첫번째는 왜 자동화가 필요하고, E2E TEST가 무엇인지에 대해 간단하게 알아봤습니다.

 

오늘은 cypress 무작정 시작을 위해 인프런에서 눈에 띄는 강의를 발견해서

 

따라해보는 시간을 갖도록 하겠습니다.

 

https://inf.run/Yb4d

 

하루만에 Cypress로 작성하는 자바스크립트 E2E 테스트 코드 - 인프런 | 강의

프론트엔드는 사용자와의 접점이 이루어지는 곳이기 때문에 개발자의 입장이 아닌, 사용자의 입장에서의 테스트가 매우 중요합니다. E2E테스트를 통해 사용자 시나리오가 정상적으로 동작하는

www.inflearn.com

 

하루만에 Cypress로 작성하는 자바스크립트 E2E 테스트 코드 강의입니다.

 

11개 수업에 45분이라는 부담스럽지 않은 수강시간입니다.

 

물론 유료입니다.

 

저는 회사에서 교육비 지원이 되기 때문에 이걸 아주 잘 활용해볼 예정입니다.

 

자 그럼  교육 과정에 대한 자세한 설명은 생략하고 무작정 따라해보겠습니다.

 

궁금하면 인프런 가입 해서 제가 적은 링크 따라가시면 됩니다.

 

저는 MAC 환경으로 시작하겠습니다.

 

 

 


수업을 위한 git hub 저장소를 로컬에 clone 하기

교육용 git hub 저장소에서 코드를 복사 한 후 터미널에서 git clone 진행

$ git clone https://github.com/~~~~

교육내용에서 과제를 주고 이를 어떻게 해결하는지 알려주는 방식입니다.

 

처음 해볼 과제는 counter 하는 방법입니다.

 

vscode 에 Live Server 확장

 

Live Sever 를 다운 받아 주어야

 

Open with Live Server 항목이 생깁니다.

 

그래야 이제 내가 테스트할 페이지 URL 을 확인할 수 있습니다.

 

클릭하면 아래와 같은 테스트 페이지가 나오게 됩니다.

 

vscode 이동 후 터미널을 열고 cypress 를 설치합니다.

 

 

터미널을 열어 준 후

 

https://www.cypress.io/

 

JavaScript Web Testing and Component Testing Framework | cypress.io

Test. Automate. Accelerate. With Cypress, you can easily create tests for your modern web applications, debug them visually, and automatically run them in your continuous integration builds.

www.cypress.io

에 접속해서 문서대로 따라만 하면됩니다.

 

문서가 비록 영문이지만 잘 정리되있습니다.

 

꼭 확인해보세요.

 

https://docs.cypress.io/guides/getting-started/installing-cypress

 

Installing Cypress | Cypress Documentation

What you'll learn

docs.cypress.io

 

npm install cypress --save-dev

를 입력해 줍니다.

 

 

설치하고 cyperss 열기

 

https://docs.cypress.io/guides/getting-started/opening-the-app

 

Opening the App | Cypress Documentation

What you'll learn

docs.cypress.io

 

./node_modules/.bin/cypress open

 

The long way with the full path 방식으로 cypress open 합니다.

 

Welcome to Cypress!

 

화면을 확인하고

 

E2E Testing 을 클릭합니다.

 

Choose a browser화면에서

 

사용할 브라우저를 선택하고

 

Start E2e Testing in Chrome 를 눌러줍니다.

 

E2E specs 에 도착했습니다.

 

여기서는 examples 로 어떻게 동작하는지에 대한 예시를 간단하게 보여줍니다.

 

 과제를 하기 위해 New spec 을 클릭해서 cy.js 파일을 만들어주거나

 

vscode에서 e2e 폴더 하위에 cy.js 파일을 만들어줍니다.

 

 

 

 

과제 분석

 

이 counter 라는 서비스의 요구사항은 무엇일까요?

 

- [ ] counter의 초기값은 0이다.
- [ ] + 버튼을 클릭 시 count가 1증가한다.
- [ ] - 버튼을 클릭 시 count가 1감소한다.
- [ ] + 버튼을 클릭 시 count가 10이 넘는 경우 더이상 증가하지 못한다. (Max 값이 10)
- [ ] - 버튼을 클릭 시 count가 0보다 작아지는 경우 감소하지 못한다. (Min 값이 0)
- [ ] reset 버튼을 클릭 시 counter가 0으로 초기화된다.

위의 요구사항에 맞게 테스트 코드를 짜야합니다.

 

과제하기 1. 서비스 접속하기
describe("example counter app", () => {
  beforeEach(() => {
      cy.visit("http://127.0.0.1:5500/index.html");
  });
});

어떤 테스트 코드들인지 묶어주는 함수 describe

 

beforeEach 하나의 테스트 코드(it)들을 실행시키기전에 실행하는 함수

 

it 하나의 테스트 코드 

 

cy.visit 을 사용해서 테스트할 페이지를 방문한다.

 

사진에서 보이는 것처럼 

 

테스트 케이스마다 BEFORE EACH 로 테스트할 사이트를 visit 해줍니다.

 

그리고 it 에 적은 테스트 케이스를 볼 수 있습니다.

 

과제하기 2. 첫번째, 두번째, 세번째 요구사항 진행
describe("example counter app", () => {
  beforeEach(() => {
      cy.visit("http://127.0.0.1:5500/index.html");
  });

  it("최초의 카운터 값을 0으로 보여준다", () => {
      cy.get("#value").invoke("text").should("eq","0");
  });

  it("+버튼 클릭 count 1 증가한다",() => {
    // 먼저 기존 값으 가져오고
    // + 값 클릭
    // 변화된 값이 기존값 + 1인지 체크
    cy.get("#value")
    .invoke("text")
    .then((value) => {
      const preValue = Number(value);
    cy.get(".increase-btn").click();
    cy.get("#value")
    .invoke("text")
    .should("eq", String(preValue + 1));
  });
});

it("-버튼 클릭 count 1 감소한다", ()=> {
  // + 버튼 클릭 해서 1로 만듬
  // 기존 값 1 가져오고
  // - 버튼 클릭
  // 변화된 값이 기존값 0인지 체크
  cy.get(".increase-btn").click();
  cy.get("#value")
  .invoke("text")
  .then((value)=>{
    const preValue = Number(value);
    cy.get(".decrease-btn").click();
    cy.get("#value")
    .invoke("text")
    .should("eq", String(preValue - 1));
  });
})

it 최초의 카운터 값을 0으로 보여줍니다.

 

html의 span 의 요소 #value 가 어떤 값이여야 합니다.

 

invoke 를 써서 text 값을 가져옵니다.

 

그 값이 should ("eq" , "0") 0 과 같아야 합니다.

 

it + 버튼을 클릭하면 count 1 증가합니다.

 

html 에서 + 버튼에 대한 class 를 확인 후 가져온 후 클릭

 

cy.get(".increase-btn").click();

 

then 으로 메소드를 체이닝(연결) 시켜줍니다.

 

숫자비교를 위해 String 사용합니다.

 

두번째와 같은 방법으로 세번째 과제 clear 입니다.

 

 

 

과제하기 3. 네번째, 다섯번째 요구사항 진행
it("+ 버튼을 클릭 시 count가 10이 넘는 경우 더이상 증가하지 못한다. (Max 값이 10)", ()=> {
  for(let i=0; i<11; i++) {
    cy.get(".increase-btn").click();
  }
  cy.get("#value").invoke("text").should("eq","10");
});

it("- 버튼을 클릭 시 count가 0보다 작아지는 경우 감소하지 못한다. (Min 값이 0)", ()=>{
  cy.get(".decrease-btn").click();
  cy.get("#value").invoke("text").should("eq","0");
});

For 문을 사용해 + 버튼을 클릭합니다.

 

이런식으로 계속 클릭하는 것을 볼 수 있습니다.

 

그리고 다섯번째 요구사항은

 

그리고 0에서 - 버튼을 눌럿을 경우 0보다 작아지지 않아야 하므로

 

-버튼을 클릭 한 다음 0과 비교를 합니다.

 

과제하기 4. 여섯번째 요구사항
it(" reset 버튼을 클릭 시 counter가 0으로 초기화된다.", () =>{
  cy.get(".increase-btn").click();
  cy.get(".reset-btn").click();
  cy.get("#value").invoke("text").should("eq","0");
});

reset 버튼을 클릭하기 위해 임의의 값을 주고

 

reset btn 클래스를 사용해서 reset btn 을 클릭하면

 

그 값은 0 과 같아야 합니다.

 

 

잘 돌아가는지 봅시다.

 


이렇게 해서 설치부터 ~ 간단한 과제까지 마무리 해보았습니다.

 

저도 무작정 따라하다보니 이게 한 15~20 분과정인데

 

3시간은 걸린것 같습니다.

 

처음이라 그런지 쉽지않네요.

 

자주 해봐야 실력이 늘겠죠?

 

다음 과제는 계산기 테스트 코드를 작성하는 과제를 진행할 예정 입니다.

 

그럼 이만!

 

반응형

 

728x90
반응형
728x90
반응형


자동화 QA 관련 카테고리를 생성했습니다.

 

당분간 cypress에 관한 글을 자주 포스팅 할 것 같습니다.

 

갑자기 웬 자동화 QA??

 

라고 생각할 수 있지만, 이제 6년 차 QA 엔지니어로써

 

언제까지 Manual QA만 진행할 수 없기 때문이죠.

 

자신의 가치는 자신이 올리는 거라고 자동화 QA 엔지니어로써 첫 단추를 꿰매려고 합니다.

 

자동화 중 비교적 쉬운 cypress를 선택하였고, cypress는 E2E Test에 특화된 Frontend 테스트 도구입니다.

 

 

그럼 cypress를 설치하기 전에 E2E Test가 무엇인지부터 알고 가야 할 것 같습니다.

 

그리고 왜 자동화 테스트가 필요한지, 좋은 자동화 테스트를 하려면 어떻게 해야 하는지

 

간단하게 느껴보는 시간을 갖도록 하겠습니다.

 

 

 


E2E TEST가 뭘까?
E2E TEST는 (End To End Test), Endpoint 간의 테스트입니다.
쉽게 말하자면 "사용자 관점에서 테스트하는 것"
풀어 말하자면 "실제 사용하는 것과 같은 조건에서 전체 시스템 테스트" 진행입니다.
주로 사용자에게 제공하는 Web이나 App 등 GUI를 통해서 시나리오, 기능테스트를 수행합니다.
API, DB 등 외부 서비스들을 모두 사용하여 통합된 시스템을 테스트합니다.
그렇기 때문에 위에 말한 것처럼 사용자 관점에서 테스트한다고 말할 수 있습니다.

 

 

왜 자동화 테스트가 필요할까?

위와 같이 장점, 단점이 있지만 

높은 비용과 진입장벽이 높다고 생각하기 때문에 자동화 테스트를 꺼려하는 사람들이 많습니다.

 

그러나 적절한 자동화테스트를 조합한다면 위와 같은 문제를 해결할 수 있습니다.

 

테스트를 자동화를 하기 위해 코드를 설계하고 테스트를 한다.

엄청 복잡하죠?

그래서 명확한 목적을 가지고 자동화 테스트를 도입해야 합니다.

빠르고, 버그를 찾고, 안정적이게 진행해야 합니다.

실행속도가 느리면 차라리 사람이 하는 게 더 좋습니다. 그래서 항상 실행속도가 빨라야 합니다.

그리고 테스트 코드의 가독성도 좋아야 어떤 내용을 테스트하는지 알 수 있으며 수정도 용이합니다.

그리고 자주 변하는 로직과 변하지 않는 로직을 구분하는 것은

자주 변하는 로직에 대해 자동화테스트를 설계한다고 하면, 변할 때마다 수정이 필요합니다.

테스트를 하기 위해 비효율적인 비용이 들어가는 부분입니다.

그리고 버그를 찾을 수 없는 테스트는 의미가 없습니다. 단순히 "잘 돌아간다" 식의 테스트는 배척해야 합니다.

또, 신뢰성을 바탕으로 자동화 테스트가 진행되어야 합니다.

테스트할 때마다 결과가 달라진다? 특정환경에서만 안된다? 신뢰성이 낮아지게 되는 이유가 됩니다.

 

그러면 다 자동화 돌리면 되는 거 아닌가?

정답은 NO입니다.

테스트를 위한 자동화 코드를 설계한다고 할 때

설계 비용보다 얻을 수 있는 효과가 더 작다면 사람이 진행해야 합니다.

그리고 모든 모듈에 대해 단위 테스트를 진행해야 한다? 

물론 초기에는 가능하겠지만 운영하고 있는 서비스라면 이것 또한 비효율적입니다.

마지막으로 모든 테스트 케이스를 E2E TEST로만 진행한다?

이것도 NO입니다.

무조건적인 테스트는 없습니다.

주어진 환경, 리소스, 일정 등에 따라 알맞은 퍼즐을 끼워야 합니다. (사실 제일 애매함) 

 

그래서 결론은?
APP, API, WEB 모두 자동화가 필요합니다.

그리고 어떤 상황에서 자동화 테스트를 추가해야 할지도 알고 있어야 합니다.

그렇게 하기 위해서는 자동화 QA SKILL은 필수입니다.

상황에 닥쳤을 때, 자동화 QA를 알아보는 것이 아니라 

자동화 QA를 어느 상황에 도입해야 할지를 알고 있어야 합니다.
반응형

따라서 저는 일단은 cypress 무작정 따라 해보기 시리즈를 작성할 예정입니다.

 

신입사원이면 모르겠지만

 

제게는 시간이 여유롭지 않습니다.

 

직접 부딪혀보며 실무에서 사용할 수 있게끔 SKILL을 끌어올리는 것이 목표입니다.

 

그럼 다음시간에 만나요!

728x90
반응형
728x90
반응형

안녕하세요.

 

두 번째 모드 추천 글입니다.

 

사이버펑크 2077 정말 신박했지만 아쉬웠던 기능 중 하나입니다.

 

캐릭터 커스터마이징 할 때 생식기의 커스터마이징도 가능하지만

 

실제로 히로인들과의 러브러브 장면, 혹은 조이토이와의 러브 장면에서는

 

속옷만 입고 나오잖아요?

 

이게 말이 됩니까? 성인게임에서?

 

암튼 그런 말도 안 되는 설정을 없애주는 모드입니다.

 

https://www.nexusmods.com/cyberpunk2077/mods/185?tab=files 

 

Underwear Remover

Removes the nevernude underwear from the player. Works with males and females.

www.nexusmods.com

 

아래 넥서스 모드에서 

 

Underwear, Bra 파일을 MANUAL DOWNLOAD 해줍니다.

 

 

그리고 archive > pc > mod에 옮겨주시면 됩니다.

 

그리고 옷을 다 벗은 후 복장 지정을 하면 이렇게 됩니다.

 

평소에는 옷을 입고 다니다가

 

관련 이벤트 때만 복장을 변경해 주면 됩니다.

 

가끔 복장변경이 잘 안 될 때는 착용하고 있던 장비를 빼면 적용됩니다.

 

이런 식으로 말이죠.

 

반응형

그러면 다들 게임에 집중할 수 있겠죠?

 

그러면 오늘은 이만~

728x90
반응형
728x90
반응형

오늘은 제가 사이버펑크 2077을 하면서 사용한 모드를 공유해 드리겠습니다.

 

사이버펑크 2077 초반에 버그 2077로 유명했던 게임이지만

 

출시한 지 2년이 지난 지금

 

아직도 많은 버그가 있지만 그래도 할만하더라고요.

 

제일 불편했던 건 특전은 초기화가 가능하지만

 

특성은 초기화가 불가능합니다.

 

그래서 다른 무기를 사용하고 싶으면 캐릭터를 다시 키워야 했는데요.

 

 

오늘 알려드릴 모드에서는

 

이렇게 모든 특성을 20으로 올리거나 원하는 만큼 올릴 수 있습니다.

 

 

1. 네이버에서 넥서스 모드 검색

 

 

2. 넥서스 모드 가입 후 로그인 > Cyberpunk 2077 클릭

 

 

 

 

3. Mods > Top files 클릭

 

 

4. Cyber Engine Tweaks 클릭 및 다운로드

FILES 에들러 가서 MANUAL DOWNLOAD 클릭해서 다운로드합니다.

 

 

5. 압축 풀고 사이버 펑크 2077 파일에 복사하기

압축풀고 위의 파일들을 복사해서

 

본인이 사이버펑크를 설치한 폴더에 진입한 후에

 

bin > x64 폴더에 붙여 넣기 합니다.

 

 

자 이러면 모드설치는 완료되었습니다.

 

이제 인게임에서 적용해 볼까요?

 

반응형

 


모드를 최초 설치하면 

 

모드를 킬 수 있는 단축키를 입력해 줍니다.

 

게임에서 사용하지 않는 키를  쓰는 게 좋겠죠? 

 

저는 [ ' ] 키로 단축키를 설정했습니다.

 

해당 키를 누르면 이제 콘솔창이 열릴 겁니다.

 

그러면 변경하고 싶은 능력치를 아래 명령어를 통해 변경할 수 있습니다.

 

뒤에 숫자는 얼마큼 변경할 건지 적어주시면 됩니다.

 

신체 : Game.SetAtt("Strength", 3)
지능 Game.SetAtt("Intelligence", 3)
테크 능력 Game.SetAtt("TechnicalAbility", 3)
반사 신경 Game.SetAtt("Reflexes", 3)
냉정 Game.SetAtt("Cool", 3)
특전 초기화 Game.AddToInventory("Items.PerkPointsResetter",1)
특성 포인트 Game.GiveDevPoints("Attribute", 1)
특전 포인트 Game.GiveDevPoints("Primary", 1)
게임 머니 Game.AddToInventory("Items.money",1234)
레벨 변경 Game.SetLevel("Level",50)

아래는 특전샤드 ( 경험치 500을 하나씩 준다고 생각하시면 됩니다.)


강습 Game.AddToInventory("Items.AssaultSkillbook", 1)
운동신경 Game.AddToInventory("Items.AthleticsSkillbook", 1)
길거리 싸움꾼 Game.AddToInventory("Items.BrawlingSkillbook", 1)
냉혈 Game.AddToInventory("Items.ColdBloodSkillbook", 1)
퀵해킹 Game.AddToInventory("Items.CombatHackingSkillbook", 1)
제작 Game.AddToInventory("Items.CraftingSkillbook", 1)
섬멸 Game.AddToInventory("Items.DemolitionSkillbook", 1)
엔지니어링 Game.AddToInventory("Items.EngineeringSkillbook", 1)
핸드건 Game.AddToInventory("Items.GunslingerSkillbook", 1)
침투 프로토콜 Game.AddToInventory("Items.HackingSkillbook", 1)
블레이드 Game.AddToInventory("Items.KenjutsuSkillbook", 1)
은신 Game.AddToInventory("Items.StealthSkillbook", 1)
특전샤드 Game.AddToInventory("Items.PerkPointSkillbook", 1)

 

 


특성은 레벨단위지만 특전은 경험치 단위입니다.

 

지금 제가 지능이 20인데 침투 프로토콜이 4 레벨입니다.

 

이걸 20 레벨로 변경해 주려면 뒤에 경험치량을 입력해 주면 됩니다.

 

침투 프로토콜 Game.AddToInventory("Items.HackingSkillbook", 경험치량)

 

입력해주면 

 

올라가는 건 그렇게 다이내믹하지 않고 일정량만 올라가는 거 같네요.

 

암튼 계속 올리다 보면 언젠간 오르겠죠?

 


이상으로 캐릭터를 새로 만들지 않아도

 

여러 무기를 사용할 수 있는 특성초기화 모드 소개해드렸습니다.

 

즐겜 하세요~~

728x90
반응형
728x90
반응형

오늘은 유명산에 있는 닭볶음탕 맛집 소개 시간입니다.

 

https://naver.me/Fa3SZJ8U

 

유명산흥부네솥뚜껑닭볶음탕 : 네이버

방문자리뷰 2,357 · 블로그리뷰 865

m.place.naver.com

 

 

장작이 엄청 쌓여있습니다.

 

장작향이 입구부터 많이 나요~

 

주차장도 넉넉합니다.

 

네이버 예약이 가능하고, 예약 후에 꼭 전화를 해야 된다네요.

 

유명산 흥부네 소개 글도 있습니다.

 

메뉴판입니다.

 

3인기준 75000입니다. 1인당 25000원이라고 생각하시면 돼요.

 

기호에 맞게 사리를 추가하시면 됩니다.

 

메뉴판에는 없지만 어묵꼬치 사리도 있습니다.

 

밑반찬은 무한리필이 가능합니다.

 

셀프로 가져오시면 됩니다.

 

가게 안에도 장작이 많습니다.

 

그리고 TV에도 여러 번 출연한 적이 있어요~

 

그래서 그런지 평일 점심에 방문했지만 사람이 많았습니다.

 

어느 정도 주방에서 끓여주다가.

 

테이블로 가져다줍니다.

 

그러면 끓이면서 덜어먹는 방식이에요.

 

군침 싹 돌지 않나요?

 

다 먹으면 볶음밥도 하트로 만들어주신답니다.

 

ㅋㅋㅋㅋ

 

닭볶음탕 하나에 75000이면 싼 가격은 아니죠.

 

그러나 장작향과 분위기 있는 곳에서 맛있는 식사 하고 싶으신 분들은 

 

한번쯤 가볼 만한 것 같습니다.

 

후회는 없어요~~

 

 

728x90
반응형

+ Recent posts