소프트웨어 엔지니어가 일정 기간 동안 품질 보증 엔지니어로 일하는 것이 좋은 생각이라고 생각하십니까? [닫은]


12

나는 그것을 믿는다. 왜?

  1. QA 엔지니어보다 우수하다고 생각하는 많은 소프트웨어 엔지니어를 만났습니다. QA 엔지니어가 한동안 일을한다면이 신념을 소멸시키는 데 도움이 될 수 있다고 생각합니다.

  2. 소프트웨어 엔지니어가 자체 프로그램을 더 잘 테스트할수록 나머지 소프트웨어 개발 수명주기 동안 코드를 작성하는 데 걸리는 시간이 줄어 듭니다.

  3. 소프트웨어 엔지니어가 프로그램이 중단 될 수있는 방법에 대해 더 많은 시간을 투자할수록 이러한 사례를 개발할 때 이러한 사례를 더 자주 고려하여 최종 제품의 버그를 줄입니다.

  4. "완료"에 대한 소프트웨어 엔지니어의 정의는 항상 흥미 롭습니다. 만약 QA 엔지니어로서 시간을 보낸다면이 정의는 소프트웨어 디자이너와 더 밀접하게 일치 할 것입니다.

참고 나는 누군가가 고용 한 직책이 아닌 직책에서 일하는 것이 개발자를 잃는 레시피라는 것을 알고 있기 때문에 작은 제안을 염두에두고 위의 제안을합니다.

당신은 어떻게 생각하세요?


1
나의 첫 직업은 QA였습니다. 나는 그것을 미워했지만 QA의 중요성을 정말로 이해해야했습니다.
Job

Glenford Myers의 고전 The Art of Software Testing을 읽을 때까지 QA의 독창성을 높이 평가하지 못했습니다 .
Macneil

5
나는 그들이 지구상의 다른 사람들 보다 우월하다고 믿는 많은 소프트웨어 엔지니어들을 만났다 ;-)
Steven A. Lowe

너무 진실한 스티븐.
메이시 수도원

1
대신에 소프트웨어 엔지니어가 일부 미확인 실체가 그들을 강제 할 것이라고 생각하기보다는 QA 작업을하는 것이 좋은 아이디어인지 묻는 것이 좋습니다.
David Thornley

답변:


13

1. QA 엔지니어보다 우수하다고 생각하는 많은 소프트웨어 엔지니어를 만났습니다. QA 엔지니어가 한동안 일을한다면이 신념을 소멸시키는 데 도움이 될 수 있다고 생각합니다.

우수한 소프트웨어 엔지니어링은 테스트, 메트릭 및 통계를 포함하여 품질에 대한 배경 지식이 있습니다. 모든 종류의 소프트웨어 개발을하는 사람은 품질 소스 코드를 유지하고 효과적인 테스트 사례를 생성 / 유지하는 것을 알고 있어야합니다. 시간이 지남에 따라 소프트웨어 개발자는 코드 품질, 이식성, 유지 관리 성, 테스트 가능성, 유용성, 신뢰성, 효율성 및 보안과 같은 품질의 다양한 측면을 이해하게 될 것입니다.

소프트웨어 엔지니어는 라이프 사이클의 특정 측면 (요구 사항 엔지니어링, 아키텍처 및 디자인, 구성, 테스트 및 유지 관리)에 중점을 둘 수 있습니다. 그러나 (직업 또는 프로젝트의 현재 단계에서) 초점에 관계없이 품질을 기억하는 것이 중요합니다.

2. 소프트웨어 엔지니어가 자신의 프로그램을 더 잘 테스트할수록 나머지 소프트웨어 개발 수명주기 동안 코드를 작성하는 데 걸리는 시간이 줄어 듭니다.

사실 일 수도 있습니다. 그러나 일부 문제는 나중에 개발에서 가장 잘 나타납니다. 예를 들어, 성능 및 효율성 문제는 통합 될 때까지 보이지 않을 수 있습니다. 우수하고 견고한 코드와 효과적인 단위 테스트는 시작에 불과합니다. 품질은 요구 사항으로 시작하고 유지 보수 활동을 통해 철저하게 따라야합니다.

3. 소프트웨어 엔지니어가 프로그램이 중단 될 수있는 방법에 대해 더 많은 시간을 투자할수록 이러한 사례를 개발할 때 이러한 사례를 더 자주 고려하여 최종 제품의 버그를 줄입니다.

그것은 완전히 진실한 진술입니다. 그러나 요구 사항에 충돌이 없는지 확인하고 설계자가 실제로 요구 사항을 해결하는지 확인하는 설계자 등도 요구 사항 엔지니어에게 달려 있습니다. 모든 사람은 자신의 작업에 구멍을 뚫고 적절한 사람들과 협력하여 멋지게 단단히 묶어야합니다.

4. "완료"에 대한 소프트웨어 엔지니어의 정의는 항상 흥미 롭습니다. 만약 QA 엔지니어로서 시간을 보낸다면이 정의는 소프트웨어 디자이너와 더 밀접하게 일치 할 것입니다.

"완료"는 요구 사항에 대해서만 측정 할 수 있습니다. 요구 사항이 충족되고 프로젝트가 완료되었거나 요구 사항이 불완전하며 프로젝트가 완료되지 않았습니다. 다른 완전한 측정 방법은 쓸모가 없습니다.


고마워 토마스, 그것은 매우 유익하고 사려 깊은 답변입니다.
Macy Abbey

6

프로그래머가 자신의 코드에 대해 책임을 지도록하고 자신의 버그를 수정하도록 요구하면이를 처리 할 수 ​​있습니다. 보너스 및 / 또는 직업 상실.

이 경험이 도움이되지는 않지만이 사고 방식으로 얼마나 멀리 갈 수 있습니까? 기술 지원, 판매, 베타 사용자는 화장실을 문지릅니다 (이것은 겸손한 경험이 될 것입니다).


제프는 사실이지만, 첫 번째 접근 방식이 반드시 더 효율적이고 견고한 프로그래머가되기 위해 필요한 도구를 가르쳐주지는 않는다고 생각합니다. 그러나 압력을 가하는 것이 좋습니다.
Macy Abbey

또한이 접근법의 단점 중 하나는 한 주 동안 ... 한 달에 두 주 동안 프로그래머를 잃는 것입니까? : 그리고 나는 (P 화장실 세정) ... 그들의 현재 작업과는 매우 작은이 일을해야하는 것이 좋습니다 생각하지 않는다
메이시 수도원을

6

"... 품질 관리 엔지니어로 일해야합니다 ..."? 당신은 그것이 적대적이거나 형벌처럼 들리게합니다.

저는 소프트웨어 개발자입니다. QA 부서가 있지만 QA 엔지니어이기도합니다. 특정 작업을 수행하는 소프트웨어를 제공하는 것이 저의 임무입니다. 그렇게하려면 단위 테스트를 작성하여 소프트웨어가 통과하는지 확인해야합니다.

QA 부서와 제휴하고 있습니다. 저의 목표는 자신이해야 할 일을하는 소프트웨어를 제공한다는 목표를 달성함으로써보다 쉽게 ​​일을 할 수 있도록하는 것입니다. 단위 테스트를하는 것처럼 두 번째 눈과 다소 안전망을 고려합니다.

소프트웨어를 개발하기로 선택하고 소프트웨어를 개발하고 싶습니다. 일부 관리자가 저에게 와서 그렇게 할 수없고 QA를해야한다고 말하면, 내가 거기에서 일하지 않기 때문에 새로운 소프트웨어 개발자와 QA 담당자를 찾아야한다고 말했습니다. 내 코드와 마찬가지로 항문이지만 창조적 인 프로세스와 프로그래밍 퍼즐 / 도전은 나에게 매우 중요합니다. 창의력을 발휘하지 않고 회사 환경에 있고 나에게 절대적으로 지옥이 될 수있는 방법에 도전하기 때문에 코드를 작성할 수 없다면 지게차 운전으로 돌아가고 싶습니다.

일반적으로 당신이 제시하는 옵션은 매우 적대적이며 일부 끔찍한 개발자와의 경험이 정말 좋지 않은지 궁금합니다. 내 생각에 개발자는 항상 품질 문제와 테스트에 대해 알고 있어야하며 공식 QA 부서에서 사용하는 것과 같이 단위 테스트에서 엄격한 테스트를 통과 할 때까지 완료되지 않은 작업에 대해 자부심을 가져야합니다. 내가 동료를 가지고 있거나 팀에서 기술을 주도하고 QA에 대한 '조언'을 보여준 개발자를 보유한 경우 그는 태도 교정을 위해 그를 끌고 갔다. 소프트웨어 제공 코인의 양쪽이 협력 할 수없고 팀으로 활동할 수 없다면 실제 문화 문제가 있습니다. 나는 그곳에서 일하고 싶지 않으며 HR과 고위 경영진이 함께 참여해야합니다.


안녕 그렉, 나는 새로운 분야의 소프트웨어 엔지니어, QA의 가치를 이해하지 못하고, 잘 정의 된 수용 기준을 향한 개발 경험이 많지 않은 소프트웨어 엔지니어에게 질문을 던졌습니다. 내가 "해야"선택한 이유는 많은 소프트웨어 엔지니어가 소프트웨어 개발자로 명확하게 선택했기 때문에 품질 보증 엔지니어 (단독의 의무)로 일할 것이라고 생각하지 않기 때문입니다. 진정으로 훌륭한 소프트웨어 개발자의 태도와 QA와의 관계에 대한 의견을 보내 주셔서 감사합니다.
메이시 수도원

새로운 소프트웨어 엔지니어가 QA 엔지니어로 일하면서 현재 시점에 도달 할 수 있다고 생각하십니까?
메이시 수도원

1
절대적으로하지. 팀의 작동 방식을 이해하도록하십시오. 문제의 소유권에 대한 태도를 개발하십시오. 사람들이 임시 팀에서 일하면서 문제를 논의하고 해결하도록 장려하는 열린 분위기를 조성하십시오. 너무 많은 사람들과 회사는 지식의 사일로와 "모든 것에 반대하는"태도를 장려합니다. 솔직히 말해서, "우리 모두에 대항하는 우리"는 모든 사람을 해칠 수 있기 때문에 회사 내벽으로 가야합니다.
Tin Man

2
@Macy Abbey에서 고려해야 할 한 가지 전략은 개발자가 QA 팀과 협력하여 테스트 시나리오를 개발하도록하는 것입니다. 단위 테스트는 함께 작성하여 설계하거나 QA 팀은 개발자가 단위 테스트를 수행 한 "tests"폴더에 테스트를 추가 할 수 있습니다. 일부 사람들은 개발자와 QA가 분리되어야한다고 생각하지만 경쟁을 촉진합니다. 두 그룹 모두 시선과 테스트 트릭을 함께 사용하면 버그와 누락 된 기능을 훨씬 더 빠르게 찾아 낼 수 있습니다.
Tin Man

@ 그렉 감사합니다 그렉, 좋은 전술처럼 들립니다. 나는 당신이 나에게 다른 전술의 혼합이 내가 처음 제안한 것보다 낫다는 것을 확신했다고 믿는다.
Macy Abbey

5

프로그래머가 QA 엔지니어로 일하도록하는 것은 최고의 개발자를 잃는 레시피입니다. 프로그래밍과 QA에는 다른 기술과 사고 과정이 필요합니다.

그러나 프로그래머가 QA 팀에 전달하기 전에 자신의 작업을 테스트하고 검증하는 기술에 능숙해야합니다. 개발자와 QA는 다양한 도구, 지식 및 기술에 액세스 할 수 있습니다. 개발자는 예상치 못한 동작을 찾는 코드, 경계 조건에 대한 단위 테스트, 경쟁 조건을 찾는 스레드 코드 강조 등 개발자의 관점에서 테스트하는 데 능숙해야합니다.

품질 관리는 사용자 관점에서 테스트를 수행합니다. 다른 유형의 사용자처럼 생각하고 이상한 경우를 발명하고 모호한 문제를 재현 할 수있게 만드는 것이 QA 기술입니다.


1
프톨레마이오스에게 감사합니다. 저는 그들이 제안한 직책이 아닌 직책에서 일하는 사람이 개발자를 잃을 수있는 레시피라는 것을 알고 있기 때문에 작은 제안을 염두에두고이 제안을합니다.
메이시 수도원

그들이 채용 된 직책에서 일하지 않았을뿐만 아니라 직업으로 선택한 직책에 있지 않고 학교에 갔다. 그것은 그들의 경력에 ​​마음을 넣는 많은 사람들에게 큰 타격입니다. 직업을 월급으로 만 생각하는 사람들에게는 괜찮을 것입니다.
Tin Man

@Greg : 월급을받는 사람도 마음에 들지 않습니다. 그들의 이력서는 X 년의 소프트웨어 엔지니어링과 1 년의 QA보다 X + 1 년의 소프트웨어 엔지니어링으로 더 가치가있을 것입니다. 말할 것도없이, QA 직원과 소프트웨어 직원에게 급여를 지불해야한다는 것은 말할 것도 없습니다.
David Thornley

어, 숙련 된 QA 직원에게 개발자보다 적은 비용을 지불하는 장소에서 일하고 있다고 가정합니다. 나는 어떤 곳은 알고 있지만 내 경험을 반영하지는 않습니다. 사람들의 급여를 알았을 때 그들은 일반적으로 동등한 수준이었습니다.
testerab

1
프로그래머가 된 초창기의 급여는 몇 년 동안 프로그래밍 경험을 쌓았 는가에 달려 있습니다. 따라서 C #이 2 년이고 QA가 1 년이면 3 년 C #이 아닌 2 년 C # 급여를 받게됩니다.
Michael Shaw

3

반드시 그런 것은 아닙니다. 프로그래머와 테스터 모두 서로 다른 기술을 가지고 있어야합니다. 당신이 좋은 프로그래머라고해서 좋은 테스터가 될 수있는 것은 아닙니다.

훌륭한 테스터는 실제로 끔찍한 기술을 보유하고 소프트웨어가 설계하지 않은 작업을 수행 할 수 있어야하지만 사용자가 실제 세계에서 할 것을 기대할 수 있어야합니다. 기술, 인내심, 어디에서 무엇이 잘못 될 수 있는지 볼 수있는 능력, 사용자의 정신에 대한 이해 및 기타 많은 요소가 필요합니다.

필자는 프로그래머와 테스터라는 단어를 사용하지만 소프트웨어 엔지니어이고 아직 프로그래머 또는 테스터가 될지 여부를 결정하지 않은 경우이 두 가지를 모두 포함하므로 적어도 경험이 있어야합니다. 결정을 내리기 전에 인생의 처음 몇 년 동안.

그렇다고해서 숙련 된 프로그래머를 고용하고 QA 엔지니어가 얼마나 열심히 일하는지 이해하기 위해 잠시 테스트를하게되는 것은 아닙니다.


True Roopesh는 두 기술 세트 사이에 분명한 교차점이 있다고 생각하지만 짧은 시간 동안 QA로 작업하면 테스트 기술을 향상시키는 속도가 빨라집니다.
메이시 수도원

1

다음은 제안서에서 볼 수있는 몇 가지 잠재적 인 문제입니다.

1) 신기술 소프트웨어 엔지니어를 QA 부서에 간략하게 소개 할 것을 제안하는 경우, 그 반대의 효과가 있습니까? -그들은 당신이 초보자 일 때 QA가 당신이하는 일이라고 가정 할 수 있습니다. 그리고 당신은 당신이하고있는 일을 이해하지 못합니다.

2) 한동안 아주 나쁜 테스터가된다고해서 반드시 가치있는 것을 가르쳐주지는 않습니다. 그러나 나중에 테스트 할 수없는 경우가 있습니다. 그들은 한 번에 테스트 부서에서 6 주를 보냈기 때문에 지금 은 모든 테스트에 대해 알고 있다고 가정 하기 때문입니다 .

3) 그들이 단지 짧은 시간 동안 만있을 것이며 QA 부서는 이것을 알게 될 것이므로, 감독이나 이해가 거의 필요하지 않지만 상대적으로 바쁘지 않은 비교적 까다 롭고 쉬운 작업 만받을 것입니다 . 이것은 1과 2 만 강화할 것입니다.

4) 1, 2 및 3을 피하려면 테스트 부서에 테스트에 관심이없는 사람을 가르치고 감독하는 데 엄청난 양의 에너지를 투자 할 가치가 있다고 테스트 부서에 어떻게 설득 하시겠습니까? ( 시험 적성에 따라 선정되지 않은 사람과 함께 일하는 데는 엄청난 시간과 에너지 가 필요합니다. 테스트 팀에 몇 주 동안 추가 리소스를 제공하지 않습니다. '몇 주 동안 가장 경험이 많은 사람들 중 한 명을 잃어 버리고 초보자를 가르치라고 요청합니다).

모든 것을 말했듯이, 새로운 소프트웨어 엔지니어의 테스트에 대한 이해를 높이는 귀하의 전반적인 목표는 정말 환상적이라고 생각합니다. 나는 Greg의 제안이 그것을 달성 할 가능성이 더 높다고 생각합니다. 개발자 및 QA 팀이 서로 긴밀하게 협력하고 팀 간의 장벽을 무너 뜨릴 수 있도록 노력하십시오. (현재 테스터와 프로그래머가 같은 팀에 속해있는 회사에서 일하고 있습니다. 정말 훌륭하고 별도의 팀에서 다시 일하고 싶지 않습니다.)

그래도 프로그래머가 QA에 악영향을 미치도록하려는 경우 여기에 제안이 있습니다. 먼저 가십시오. 아마도 팀의 구성원이 이미 좋은 때 할 수있는 일을하고 매주 약간의 시간을 겹치는 영역 (테스트, DBA 등)을 전문으로하는 다른 팀과 함께 보내면 더 많은 우위를 얻고 싶을 것입니다. 그런 식으로 선물하면 더 많은 성공 기회를 얻게됩니다.


0

나는 당신이 일반적으로 보는 것과 반대되는 경력 경로를 정렬했습니다. 과학적으로 어려운 물리학에 대한 소프트웨어 지원으로 시작한 후 컴퓨터 회사의 아키텍처, 프로그래밍 및 알고리즘의 교차점에서 일했습니다. 그 후에는 몇 년 동안 주요 엔지니어링 코드의 성능 최적화를 수행했지만 그 작업조차도 끝났습니다. 이제 퇴직 연령이 가까워짐에 따라 동일한 코드에서 QA를 수행하고 있습니다. 도전과 준설의 조합입니다. 우리는 버그 수정에 100 % 일하는 정말 새로운 사람이 있고, 나는 그와 많은 작업을합니다. 도전적인 입장이며 많은 것을 배울 수 있습니다. 이 시점에서 직업 개발에 대한 나의 주요 관심은 sci 대학 신입생 인 쌍둥이 소년들입니다. 그래서 나는 그들의 경력, 특히 응용 수학과 관련이있는 학습 (또는 재 학습)에 새로운 관심을 가지고 있습니다. QA / 유효성 검증에 관심이있는 것은 사물에 대한 다른 관점을 가지고 있습니다. 지난 4 세기 동안 속도, 속도, 속도는 모든 비용이었습니다.


이 일화에는 질문에 대한 답변이 포함되어 있지 않습니다.
아무도

-2

소프트웨어 테스팅은 건설적인 것이 아니라 파괴적인 과정입니다. 그러나 프로그래머는 제품을 제 시간에 예산에 맞게 완성 할 수 있도록 제품을 건설적으로 생각합니다. 소프트웨어 개발자가 자신의 제품을 파괴하는 것처럼 생각하면 누가 제품을 개발할 것인가. 따라서 소프트웨어 개발주기의 각 부분은 개발주기의 각 부분에 지정된 사람들이 수행해야합니다. 둘 이상의 분야에 종사한다면 프로그래머 또는 QA 또는 다른 옵션 중 하나를 수행하고 완벽하게 수행 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.