# Q&A

SW 테스팅/품질/프로세스 컨설턴트가 되고 싶다면 + 현 경제와 개발자 신입 취업의 어려움
필자는 아직 정확히 어떤 도메인이 하고 싶은지 어떤 테스팅을 잘 하는지 알지 못한다. 같이 수업듣는 분들 얘기 들어보면 게임QA나 가전제품테스팅에 관심이 있다고 얘기를 많이 하신다. 하지만 난 아직 어떤 경험도 없고, 사실상 개발자를 희망하다 좌절되서 tester로 틀어버린 케이스라 딱히 test에 관심이 있어서 여기에 발을 들인 건 아니였다. 그런데 이 교육과정을 들으며 tester란 직업에 대해 알게 되면 알게 될수록 매력적인 직업이란 생각이 들었다. 우선 tester는 나이가 들어서까지도 일을 할 수 있다. 또한 AI가 IT업계를 커버해가고 있어도 이 tester란 직업은 사라지지 않는다. (AI도 우리가 검증하니까...) 단적인 예를 들어 성능이나 코드관련된 테스팅들은 점차 AI에 의해 커버되겠지만 사용자테스팅과 같은 휴먼 인터페이스 분야는 AI가 할 수 없는 영역이다. 이렇듯 앞으로도 tester의 직업의 중요성은 대두되면 더 대두되지, 소멸되지 않을 거라는게 현업에 계신

[QA] 테스트 케이스
테스트 절차 테스크 계획 ➡ 테스트 케이스 설계 ➡ 테스트 실행 및 평가 ➡ 테스트 결과 분석 ➡ 오류 추적 및 수정 테스트 케이스 (TC, Test Case) 테스트 케이스란 특정 프로그램 경로를 실행하거나 특정 요구 사항을 준수하는지 확인하기 위해 특정 목표 또는 테스트 조건을 개발된 입력값, 실행 사전 조건, 예상 결과 및 실행 사후 조건의 집합이다. 테스트 케이스 구성 예시 테스트 케이스 활용 목적에 따라 작성법과 수행 방법이 달라져야 한다. 테스트 설계 기법 테스트 케이스를 작성하기 위해서 다양한 테스트 설계 기법을 사용할 수 있다. 테스트 할 프로젝트 문

SSG와 SSR의 시행착오
기존 프로젝트를 진행하면서 SSG를 쓰려고 하였다. 이유는 첫번째로는 금액이었고, 다음으로 데이터 업데이트를 자주할 필요가 없다고 생각하였다. 그래서 총 2개 화면에서 SSG를 구현하였는데 게임 화면과 랭킹 화면이었다. QA 진행 백엔드 분과 같이 QA를 진행하였는데, 이상형 월드컵을 만들고 다시 캐릭터를 추가하였는데 그것이 반영이 안되는 이슈를 이야기하였다. 정리해서 적어보자면, 나의 생각 유저가 업데이트를 하고 한번보고 바로 나갈 것이라고 생각하였다. 그래서 한번만 마운트 시키고 재접속해도 유지 시키는 방안으

프로젝트 Beta 버전과 QA
4월부터 2개의 프로젝트를 진행하고 있었다. 하나는 귤박스라는 스터디원들과 하는 프로젝트 그리고 두 번째는 메인 프로젝트 백엔드 분과 같이하는 이상형 월드컵 프로젝트이다. 귤박스는 5월 세 번째 주를 마지막으로 정리하였고 이상형 월드컵은 5월까지 기본 코드를 짜고 6월 7월은 리팩토링 작업을 진행하였다. 회사를 다니고나서 운동도 다시 하기 시작했고 이것저것 하다 보니 프로젝트에 집중을 잘하지 못해 아쉬움이 남는다. Jira를 도입한 이유 6월 7월에는 리팩토링 작업을 하였는데 이슈를 생성하면서 세부 내용들을 정리하였고, 체크하는 방식으로 관리하였다.  컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점 NULLNULL_SOCKET TCP/IP 를 추상화시킨 인터페이스 파일

기획단계에서의 QA 역할: 사용자 관점의 리뷰
개발 프로젝트에서 요구사항 정의 단계는 매우 중요한 역할을 하고, 이 단계에서 결정된 시스템의 동작 방식, 기능 등은 프로젝트의 성공 여부에 결정적인 영향을 미칩니다. 이렇게 중요한 단계에 다양한 팀이 참여하고 있지만, 저는 QA(Quality Assurance)팀의 참여가 더욱 필요하다고 생각합니다. 요구사항 문서를 검토하는 것을 비유로 설명해본다면, 이는 특정 필터를 통해 문서를 볼 수 있는 것과 같습니다. 이 필터는 각자의 배경 지식과 역할을 반영하며, 이를 통해 문서를 다양한 관점에서 이해할 수 있습니다
변수와 자료형
변수란? 값을 넣을 수 있는 상자라고 볼 수 있다. 변수를 선언하는 방법으로 첫번째는 키워드를 선언해야 한다. var, val라는 키워드를 이용해서 선언할 수 있다. 이 둘의 차이점은 val은 읽기전용 변수 var 읽기 및 쓰기 변수라고 할 수 있습니다. 다음과 같은 키워드를 선언하면, 변수를 선언해야하는데 변수 선언하는 방법은 다음과 같다. 자료형을 선언하는 방법 자료형을 추론하는 방법 단 자료형을 지정하지 않을때 추론 값을 지정하지 않으면 오류가 생길 수가 있으니, 꼭 추론 값을 넣어줘어야 한다.

Kotlin Package
코틀린은 크게 3가지로 구성되어 있다. 모듈 (Module) 패키지 (Package) 파일 (File) 이것을 이 자체로서의 의미로 받아들이기에는 조금 어렵고 조금 쉽게 풀어보면 여행으로 간단하게 비유하자면 이렇게 비유할 수 있을 것 같다. 모듈 --> 여행 목적지 패키지 --> 여행 가방 파일 --> 여행 짐 이것을 보면 모듈이 가장 큰 개념이고, 파일이 가장 작은 개념으로 보면 된다. ( Module > Package > File ) 근데 Package를 만들어서 작업을 해야할까? 크게 각 항목별 동작방식을 구현하는 것이 다르고, 각 개발자마다의 범위를 침해하지 않기 위해서 쓴다고 보면 이해하는 것이 쉬울 것이다.
Kotlin 그 여행의 시작
코틀린.. 나에게는 아직은 생소한 언어이다. 왜냐면 JAVA를 버리고, Python만 하다가 문득 들었던 생각 조금은 개발자스럽게 만들어보고 싶고, 다양한 코드와 방식을 이야기 하고 싶다라는 생각이 들었다. 특히나 자바라는 생태계란 비슷하고, 파이썬과 마찬가지로 조금은 더 간단하게 쓸 수 있는 언어, 그리고 무엇보다도 점차 코를린의 생태계가 점점 커질 꺼라는 시대적 방향이 보이기 때문에 하나씩 공부를 하면서 정리를 해볼려고 한다. 다음과 같은 책을 보면서 하나씩 내용을 정리할 예정이고, 목표는 다음과 같다. 공부할 책 : Do it 코틀린 프로그래밍 개발 프로젝트 : Selenium + Appium을 활용한 UI 및 API 통합형 자동화 솔루션 자 그럼 이제 부터 하나씩 시작해보자

컴파일(Compile), 빌드(Build) 차이점
🖥 컴파일 (Compile) 컴퓨터가 이해할 수 있는 언어로 바꾸어주는 과정을 말한다. 사용자가 작성한 소스코드 파일(. java)을 컴퓨터가 이해할 수 있는 기계어로 번역한다. (.class) 🖥 빌드 (Build) 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 일이다. 보통 컴파일을 포함한 배포하기 직전까지의 모든 과정을 ‘빌드한다’라고 표현하기도 한다. 컴파일은 빌드의 부분집합이다. 🖥 배포 (Deploy) 빌드가 완성된 실행 가능한 파일을 사용자가 접근할 수 있는 환경에 배치시키는 일이다. 실서버에 반영하는 것이다. 📝 Ref.site https://choseongho93.tistory.com/296 https://bradbury.tistory.com/226 http://kko.to/-8y2KTar0z

Q&A : [Java] Scanner에서 nextInt, nextDouble 사용시 주의사항
문제 상황 계산기를 만들다가, double firstNum = nextDouble(); 으로 더블형에 대한 입력을 받으려고 했다. 그런데 숫자를 입력하고 엔터를 클릭한 순간, 다음 입력을 받아야할 것까지 받아버렸다. (37행을 주석한 것을 잘 보자.) 하나만 입력을 받아야하는데 개행문자까지 입력받아서 문제가 된 것이다. 문제 해결 `next

Q&A : 자바 소스파일과 클래스파일명이 일치해야 하는 이유
문제 상황 Java 연습문제 풀이 도중 main 메소드를 public 클래스가 아닌 다른 클래스에게 주고 동작을 실행했더니 Console 창에 아무런 결과값도 나타나지 않았다. 자바 소스파일과 public 클래스 이름이 같아야 한다는 것은 객체지향 파트에서 배워서 알고 있었지만, public 클래스가 main 메서드까지 포함해야 한다는 사실은 이해하기 어려웠다. JVM의 구동 원리와 연관이 있을 듯 했다. Chat GPT > Q. Why does the java sourcecode name match the same named class that has main method? > A. In Java, the name of the source code file must match the name of the public class defined within the file. **This is a requirement for the Java compiler to

Q&A : 이차원 배열 중 가변 길이 배열
가변 길이 배열(variable length array)" 또는 "jagged 배열" Q. 이차원배열은 꼭 정사각형 형태의 데이터만 다룰 수 있니? > A.아니요, 이차원 배열은 각 행마다 서로 다른 길이의 열을 가질 수 있으므로, 직사각형이 아닌 "불규칙한" 모양의 데이터를 다룰 수 있습니다. 이러한 배열을 "가변 길이 배열(variable length array)" 또는 "jagged 배열"이라고도 부릅니다. >예를 들어, 다음과 같이 각 행마다 열의 길이가 다른 이차원 배열을 만들 수 있습니다. 이 배열은 4개의 행으로 구성되며, 각 행마다 열의 길이가 다릅니다. 첫 번째 행은 2개의 열을 가지고 있고, 두 번째 행은 3개의 열을 가지고 있습니다. 세 번째 행은 1개의 열을 가지고 있으며, 네 번째 행은 4개의 열을 가지고 있습니다.

Q&A : char타입 배열을 그대로 String으로 변환하기
Q)** char 타입 배열 chArr이 있다고 가정하자, char chArr = { c, o, m, p, u, t, e, r }; 해당 배열 안의 요소를 묶어서 String 타입으로 변환할 수 있어?** A) new String(question) : > chatGPT🧑🍳: char 타입 배열 안의 요소들을 묶어서 String 타입으로 변환할 수 있습니다. 이를 위해서는 String 클래스의 생성자 중 하나인 String(char[] value) 생성자를 사용하면 됩니다. > 다음은 char 타입 배열을 String 타입으로 변환하는 예시 코드입니다. >위 예시 코드에서 String 클래스의 생성자 String(char[] value)를 사용하여 chArr 배열을 String 객체인 str으로 변환합니다. 그리고 str을 출력하면 "computer"가 출력됩니다.

Q&A : for문을 사용해 변수 이름에 접근하는 방법?
💡🤔궁금점 : for문을 이용해서 각각의 변수 자체에 접근할 수 있는 방법은 없을까 궁금해졌다. 예를 들면 str1, str2, str3의 변수에 각각 문자열이 할당되어 있다. 변수명에 각각 규칙이 있으므로 해당 변수에 for문을 사용해서 접근할 수 있을까? chatGPT에 물어보니 이런 답변이 달렸다 Q. 참조변수 str1, str2, str3가 있어. for문을 이용해서 각각의 변수 명에 접근할 수는 없을까? 예를들어 System.out.println(str + i)처럼 말이야. (해당 코드가 안된다는 사실은 이미 알고 있었음) A.➡️ ① 변수명은 컴파일 시점에 이미 정적으로 결정되어 있기 때문에, str + i와 같이 동적으로 문자열을 만들어서 변수명으로 사용할 수 없습니다. ②즉, str1, str2, str3과 같은 **변수명은 컴파일 시점에 이미 결정되어 있으며, 이 변수들은 각각의 고유한 메모리 주소를

테스트 코드 작성하는 이유
왜 테스트를 작성하는가 테스트 자동화 장점 사람이 수행해야 하는 반복된 테스트를 자동화 할 수 있음 (비용 감소) 사람이 수행하는 것보다 훨씬 빠르게 테스트할 수 있음 사람이 수행하는 것보다 더 신뢰할 수 있음 단점 감각적인 요소(시각, 청각) 등 사용자 경험과 관련된 문제를 찾아낼 수 없음 실제 환경에서 벌어지는 다양한 상황을 자동화하기 어려움 (네트워크, 디바이스 관련 등) 개발자가 테스트 작성해야 하는 이유 제품 품질 개발자는 작성한 프로그램의 퀄리티에 대한 책임이 있음 QA에 넘기기 전에 기본 요구사항을 모두 만족하는지에 대한 검증은 개발자가 해야 함 자동화된 테스트를 작성해 두지 않으면, 어플리케이션이 복잡해질 수록 테스트 비용이 증가함 이 경우 개발 기간이나 인력 등은 한정되어 있기 때문에, 테스트를 소홀히 하게 되는
[Cypress] Cypress Intro.
새로운 자동차가 세상에 출시되기 전 수많은 주행, 또는 성능, 안정성 테스트를 거칩니다. 개발자가 개발하는 웹 또는 앱 어플리케이션도 수많은 소프트웨어 테스트를 거쳐 우리가 이용하는 서비스로 다가옵니다. 가장 작은 단위를 테스트하는 unit test부터 3세대 웹의 기반인 Front-end와 Back-end를 아울러 테스트하는 E2E test까지.. 이번 포스팅에서는 서비스를 실제 출시하기 이전에 E2E 테스트 목적으로 사용하는 Cypress에 대해 알아보겠습니다. ✨E2E Test 프로그래밍 테스트는 소프트웨어를 세상에 서비스로 내놓기 전 정상적으로 작동하는 지에 대해 검증하는 단계입니다. 종류는 통상 3가지로 나눌 수 있습니다. Unit Test 유닛 테스트는 소프트웨어 중 가장 작은 단위인 모듈, 함수, 클래스를 테스트할 수 있는 방법입니다. 물론 개발자가 작성한 코드를 또 다시 개발자가 코드로써 테스트를 하기 때문에 가장 적은

출근 108일차 - V모델?
오늘은 정말 재밌고 존나 힘들었다.(진심) 신규 피쳐 기획 리뷰를 했다. >사실상 전쟁(?)을 했다. 기획리뷰는 총 4명으로 대표,기획자,FE,BE이서 진행을 하고 전반적인 기획서는 대표님이 써오시고 그것에 대하여 리뷰를 진행하면서 기획서를 고쳐가는 과정을 했는데 팀에서 아무리 대표님이더라도 기획이랑 관련되면 공격적으로 리뷰를 하는 FE BE 두명이 붙었더니 대표님이 행복사하는 모습을 볼 수 있었다(깔깔) 대충 3시간 가까이 기획리뷰를 진행하면서, 기획서가 상당히 많이 변경됐고 해당 프로덕트는 개발자쪽에서 도메인지식이 더 많다보니 명확한 명세로 작업을 진행할 수 있도록 잘 만들어진 것 같다. 지금까지 기획서에 대해서 불만도 많고 이래저래 이슈가 많았는데 각잡고 기획리뷰를 하려고 했던 이번 피쳐는 상당히 만족스러운 기획서를 받아봤달까? 목차 다음페이지부터 개발쪽에서 준비한 노션문서를 가지고 모든 요소를 다 질문하면서 고치는 과정이 있었다(....)

QA와 TC 이해
QA 진행과 TC 작성 할 때 어떠한 목적 및 소통 진행해야 할지 들었던 강의 노트 정리 하고자 한다. > 왜 QA인가 프로젝트 관리란 우리의 계획(일정,리소스)과 기획(해결 방안)이 약속 대로 문제 없이 잘 되도록 챙기는 과정이라면 QA란 기획한 내용과 품질의 제품이 나왔는지, 우리의 목표를 달성하거나 가설을 검증할 수 있는지 확인하는 과정이다. > 왜 Test Case인가 Test case란? 특정한 프로그램 부분 및 경로를 실행해보거나 요구사항에 준수하는 지를 확인하기 위해 개발된 입력 값, 실행 조건, 예상된 결과 테스트하려는 시스템이 수행해야 하는 Action들로 구성되는 일련의 단계라고 볼 수 있다. Test case 제작을 하므로써 아래와 같은 이슈 보완 목적이다. 다양한 종류, 숫자 사용자 다양하고 복합다단한 서비스의 사용 흐름, 시나리오 대비 또 만다는 과정에서 휴먼 에러 감안 특히나 결제, 주문, 배송 처리 등등 이슈가 생길 시 곤란한
QA프로세스
QA프로세스 소프트웨어 품질은 제품품질도 중요하지만, 업무를 수행함에 있어서 프로세스 품질 역시 중요 테스트기법 버그발견 BTS등록 개발자 수정 버그 수정확인 발견된 버그의 보고(커뮤니케이션) & 보고된 버그의 수정 확인(추적) > 1. 빌드 확인 & 분석단계 > - "Smoke Test"와 "AdHoc Test", 이 두가지 테스팅을 사전에 먼지 진행하는 목적은 실제 주요 테스팅을 진행할 제품의 상태를 먼저 확인하는 목적 > > - 테스트 엔지니어의 불필요한 리소스 투입을 사전에 예방 > - Smoke,AdHoc 테스팅에서 도출된 결과를 취합해서 '제품의 세부 기능들에 대하여 확인이 가능한 상태'라고 확인이 되면 실질적인 테스팅 업무에 들어간다. > 2. TC(TestCase)작성 + TC수행단계 > - '결정 테이블 테스팅'과 '탐색적 기반 테스팅'을 동시 또는 병행하여 진행 > - 두가지를 동시, 병행하는