소프트웨어 개발에서 중국과 미국의 차이점에 대해 이야기해 보겠습니다. (TikTok의 'QA 및 가벼운 테스트 강조'를 예로 들어)
10만명 규모의 회사에서는 단위 테스트나 코드 리뷰도 없고 QA에만 의존하는데 이게 "효과적인" 방법이에요!
많은 중국 해외 기업들이 해외 시장을 빠르게 점유하고 있습니다. 예를 들어, 2021년에 TikTok은 미국의 Alphabet이 소유한 최초의 리더인 Google을 제치고 세계에서 가장 많이 방문한 인터넷 웹사이트가 되었습니다.
중국인이 만든 인터넷 플랫폼은 항상 세계를 지배해왔던 미국 플랫폼을 능가했습니다. 이는 매우 실질적이고 상징적인 의미의 발전입니다.
동시에 중국 기술 기업의 영향력이 날로 증가함에 따라 많은 사람들이 중국 기업의 근무 문화에 대해 궁금해하고 이러한 성공의 원동력이 무엇인지 알고 싶어합니다.
최근 미국 내 중국 기업(TikTok)에서 1년 이상 근무한 중국계 미국인(이전에는 Snapchat 및 Facebook에서 근무)이 YouTube에 'TikTok에서 일하는 데 대한 5가지 미친 점(왜? 우리는 PM과 엔지니어링 일을 그만뒀다)”라며 중국 기업에서 배운 경험을 다섯 가지 측면으로 요약했다.
YouTube 地址: https://www.youtube.com/watch?v=RNUrZFkHXlo
그의 견해는 중국과 미국 또는 중국 기술에 관심이 있는 많은 트위터 사람들의 관심을 끌었습니다. 네티즌들은 이 게시물이 중국과 미국 간의 공학 문화의 차이를 정확하게 설명하고 있다고 믿습니다.
첫 번째 요점: 많은 서구 회사들이 단위 테스트를 작성하고 있으며 이것이 매우 기본적인 것임을 모두가 알고 있습니다. 하지만 여기 중국 엔지니어들은 단위 테스트를 작성할 필요가 없습니다! 모든 코드 커밋은 QA 부서의 수동 테스트에 의존하며 팀은 각 코드 커밋을 커밋하기 전에 수동으로 테스트합니다.
이것이 완전히 미친 짓이라고 생각할 수도 있습니다. 단위 테스트를 작성해 보는 것은 어떨까요? 실제로 테스트를 위해 QA를 사용한다는 것은 엔지니어가 기능에 집중하고 신속하게 시작해야 하는 반면 테스트 작성은 전적으로 QA에 맡겨진다는 것을 의미합니다.
그리고 또 다른 충격적인 점은 병합 요청에도 승인이 필요하지 않다는 것입니다. 10만 명 규모의 회사(소규모 스타트업이 아님)에서는 단위 테스트도 코드 리뷰도 없이 QA에만 의존하는데 이것이 '효과적인' 방법입니다! 큰 정전은 발생하지 않았습니다.
중국 기업은 더 많은 제품 팀을 보유하는 경향이 있으며 비즈니스 성장을 추진하기 위해 운영 팀에 의존하는 경향이 있습니다. 이는 미국의 수동적이고 데이터 중심 성장 아이디어와 다릅니다. 제가 느낀 중국과 미국 기술 기업의 가장 큰 차이점은 중국 기업이 인력에 대한 의존도가 더 높다는 점입니다. 이러한 장점은 중국 기업이 새로운 시장을 빠르게 선점할 수 있는 핵심 이유이기도 합니다.
두 번째 포인트: 중국 기업에서는 확장성이 너무 떨어지기 때문에 일대일 회의가 거의 없습니다. 각 팀 내에는 추가적인 세분화가 거의 없으므로 더 많은 동료와의 상호 작용이 필요합니다. 나는 종종 90분 이상 지속되고 60명 이상의 사람들이 동시에 참여하는 전형적인 하향식 회의를 봅니다. 대부분의 경우 한 사람이 앞에서 말하고 나머지는 회의 자료를 살펴봅니다. 유럽과 미국 기업에서 흔히 볼 수 있는 공개 대화나 토론은 거의 없습니다.
세 번째 요점: 헤드헌터의 밀렵을 방지하기 위해 여기에는 명확한 조직 구조 시스템이 발표되지 않았습니다. 조직 구조는 매우 수평적입니다. 일부 엔지니어링 관리자는 200개가 넘는 성과 검토 보고서(부서 없이!)를 처리해야 하고 일부 보고서 제출자는 직속 상사가 어떻게 생겼는지조차 모릅니다.
네번째 포인트: 중국 기업은 프로세스나 실행 면에서 별로 똥이 없습니다. 다들 머리 숙이고 일하느라 바빠서 가십을 퍼뜨리거나 도덕적인 판단을 내리는 일이 거의 없습니다. 반면 중국 기업은 프로세스 설계가 충분히 성숙되지 않았습니다. 문서화 및 개선 팀의 동료들은 아무리 잘해도 동기를 부여하기가 어렵습니다. 아무도 엔지니어의 코드를 검토하지 않습니다.
포인트 5: 일과 삶의 균형 측면에서 미국 팀은 996이 필요하지 않지만 중국 시간대에 적응해야 합니다. 정말 힘들고, 제가 상대했던 PM들이 모두 1년 만에 떠나는 것이 이직의 주된 이유이기도 합니다.
중국의 STEM(과학, 기술, 공학, 수학) 박사 학위 수는 미국의 4배이지만 기술 직위는 미국보다 적기 때문에 경쟁률이 미국보다 높습니다. 국가 사람들은 이러한 상황을 "내부 롤"이라고 부릅니다. 중국 동료들은 기술 우위를 잃고 사회 발전에 뒤쳐질 것을 두려워해 엄청난 업무 에너지를 터뜨릴 수 있다.
휴먼 QA에 대해 이야기해보자
최근 몇 년간 중국과 미국은 기술과 인터넷 혁신 분야에서 서로 보조를 맞춰왔다고 할 수 있습니다. 이는 적어도 경쟁에서 특정 이점이 있음을 보여줍니다.
그러나 루카스의 설명을 보면 중국과 미국의 소프트웨어 개발 프로세스에서 몇 가지 차이점을 더 확인할 수 있습니다. 예를 들어, 미국 기업은 소프트웨어 개발 시 기술 문서 및 사용 문서의 세부 사양에 큰 관심을 기울이고, 코드 제출 및 검토 프로세스에 중점을 두고 있으며, 단위 테스트에도 특별한 관심을 기울입니다. 인력에 의존하지 않고 개발에 의존합니다. 최종 품질을 보장하는 프로세스.
인터넷 회사의 등장으로 인해 많은 소프트웨어 설계, 개발 및 출시 모델이 바뀌었습니다.
단위 테스트 측면에서 보면 전통적인 개발 프로세스에서 일반적으로 QA(품질 보증)는 프로그램 블랙박스 테스트를 담당하고 인터페이스 호출 시 특정 매개변수를 전달한 다음 인터페이스 응답 값이 특정 기대치를 충족하는지 확인합니다. . 단위 테스트는 일종의 화이트박스 테스트로, 테스터가 테스트 중인 프로그램의 구조를 이해하고 프로그램의 각 분기 논리를 검증하기 위한 테스트 케이스를 구성해야 합니다.
분명히 후자가 더 까다롭고, 블랙박스 테스트처럼 쌓인 인력에 의존해서는 빠르게 작업을 완료하는 것이 불가능하므로 단위 테스트로 인해 배송이 느려집니다. 릴리스 주기를 가속화하기 위해 업무 분업이 점진적으로 바뀌었습니다. 개발자는 기능 생성에 집중하는 반면, 비즈니스 리더는 제공에 집중하고 개발자의 테스트 작업은 무시됩니다.
개발 및 QA 테스트는 오랫동안 관심을 받아온 고전적인 주제입니다. 회사마다 방법이 다릅니다. 이 시점에서 중국과 미국 소프트웨어 개발 팀의 차이는 상당히 큽니다. Google의 테스트 책임자인 James Whittaker는 2011년에 Google에 "거대한" 테스트 부서가 없으며 대신 일부 테스트 작업이 개발자에게 위임되었다고 말했습니다. James는 "Google 테스트 방법" 기사에서 다음과 같이 썼습니다.
"테스트와 개발은 동시에 이루어집니다. 몇 가지 코드를 작성하고 바로 테스트하고 빌드하세요. 그런 다음 더 많은 코드를 작성하고 계속 테스트하세요. 코딩 또는 코딩 전 테스트는 별도의 프로세스가 아니며 개발의 일부입니다.품질은 테스트와 동일하지 않습니다. 품질은 테스트가 아닌 개발에서 나옵니다."
Google에서 테스터는 주로 테스트를 위해 "개발자가 자동화된 프레임워크 및 관련 프로세스를 갖추고 있는지 확인"합니다. 개발자가 다른 사람에게 의존하는 문제를 해결하기 위한 핵심 아이디어는 팀에 많은 수의 테스터를 두는 것이 아닙니다. 10여년 전만 해도 구글의 개발과 테스트 비율은 10:1이었고, 나중에는 "Go to QA"라는 슬로건을 외치기도 했습니다. "QA 부서가 죽은 날"이라는 기사에서 Google 전문가들은 단위 테스트를 QA 킬러로 간주하기도 합니다.
단위 테스트는 특정 코드 조각이 제대로 작동하고 소프트웨어에 적합한지 확인하기 위해 테스트하는 방법입니다. 퍼즐. 단위 테스트를 통해 코드의 90% 이상을 확인할 수 있다는 증거가 있으며, QA의 수동 테스트 도구와 달리 적절하게 구축된 자동화된 단위 테스트는 코드베이스와 함께 발전하여 코드를 실시간으로 테스트할 수 있습니다.
Google은 테스트 책임이 개발자에게 이전되면 개발자가 더 깔끔한 코드를 작성하고 결함이 적은 고품질 소프트웨어를 구축할 것이라고 믿습니다. 이는 모두 품질 저하 없이 비용을 절감하기 위해 회사가 어떻게 조직되어 있는지에 달려 있습니다.
2017년, 구글은 “자동화된 테스트 기술보다 엔지니어링 효율성 향상에 더 관심을 갖는다”는 이유로 10년 동안 개최된 테스트 기술 컨퍼런스인 GTAC를 취소했다고 발표했습니다. 실제로 엔지니어링 효율성의 구현은 일반적으로 "개발자가 개발 작업을 완료한 것을 기반으로 테스트, 온라인, 운영 및 유지 관리의 모든 작업을 수행해야 한다"는 사실에 반영되어 개발자의 작업에 필요한 모든 전체 링크를 제공합니다. "원스톱" 작업 도로 툴체인 지원.
하지만 이전에 Google이 옹호했던 방식은 전적으로 개발에 의존하여 품질을 보장하는 방식은 Lucas가 언급한 "QA에 대한 의존"과 정반대인 것 같습니다.
국내 인터넷 기업은 최근 몇 년간 급속도로 성장했습니다. 2018년 초 Mary Meeker의 연례 인터넷 보고서에서 중국은 시가총액/가치 평가 상위 20개 인터넷 기업 중 절반을 차지했습니다. 국내 인터넷 기업은 비즈니스 모델의 혁신을 강조하고 있으며, 소프트웨어 개발 프로세스는 기존 소프트웨어에 비해 약간의 변화를 겪기 시작했습니다. 예를 들어, 문제가 없는 것보다 반복 속도가 더 중요합니다. 문제가 발생하면 가능한 한 빨리 찾아서 복구할 수 있으며, 영향을 줄이는 것이 일정에 맞춰 배송되는 것보다 더 중요합니다. 가장 빠른 반복 속도를 개발한 다음 이를 결정하기 위해 사용자 피드백을 수집합니다. 제품의 기능을 변경할지 또는 어떻게 변경할지, 배송이 지연될 수 있는 "테스트" 링크를 포기합니다...
단지 저희로서는 어렵습니다. 이러한 기술적 이점이 개선인지 아니면 모든 사람이 점진적으로 변화해야 하는 것인지 명확하게 알려줍니다. 아마도 유럽과 미국 소프트웨어 산업의 선진 관리 방법과 기술을 결합하고 중국 개발자의 장점과 전문성을 최대한 활용함으로써 전반적인 소프트웨어 개발 수준을 더 향상시킬 수 있을 것입니다.
더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 비디오를 방문하세요! !

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Furmark에 대해 어떻게 생각하시나요? 1. 메인 인터페이스에서 "실행 모드"와 "디스플레이 모드"를 설정하고 "테스트 모드"도 조정한 후 "시작" 버튼을 클릭하세요. 2. 잠시 기다리면 그래픽 카드의 다양한 매개변수를 포함한 테스트 결과가 표시됩니다. Furmark는 어떻게 자격을 갖추었나요? 1. 푸르마크 베이킹 머신을 사용하여 약 30분 동안 결과를 확인합니다. 기본적으로 85도 정도, 최고 온도는 87도, 실내 온도는 19도입니다. 대형 섀시에 섀시 팬 포트 5개 전면 2개, 상단 2개, 후면 1개로 구성됐으나 팬은 1개만 설치됐다. 모든 액세서리는 오버클럭되지 않습니다. 2. 정상적인 상황에서 그래픽 카드의 정상 온도는 "30-85℃" 사이여야 합니다. 3. 주변온도가 너무 높은 여름에도 정상온도는 "50~85℃"

새로운 판타지 요정 MMORPG '주선2'의 '무작용 테스트'가 4월 23일 출시된다. 원작으로부터 수천 년이 지난 주선 대륙에서는 어떤 새로운 요정 모험 이야기가 펼쳐질 것인가? 육계선불세계, 불멸수련을 위한 전임 학원, 불멸수련의 자유로운 삶, 불멸세계의 온갖 즐거움이 불멸친구들이 직접 탐험하는 것을 기다리고 있습니다! 이제 'Wuwei 테스트' 사전 다운로드가 공개되었습니다. 요정 친구들은 공식 웹사이트에 접속하여 다운로드할 수 있습니다. 서버가 출시되기 전에는 게임 서버에 로그인할 수 없습니다. 사전 다운로드 및 설치 후에는 활성화 코드를 사용할 수 있습니다. 완성 됐습니다. "Zhu Xian 2" "Inaction Test" 개장 시간: 4월 23일 10:00 - 5월 6일 23:59 Zhu Xian의 정통 속편 "Zhu Xian 2"의 새로운 요정 모험 장은 "Zhu Xian" 소설을 기반으로 합니다. 원작의 세계관을 바탕으로 게임 배경이 설정되었습니다.

'오퍼레이션 델타'는 오늘(3월 7일) '코드네임: ZERO'라는 대규모 PC 테스트를 시작한다. 지난 주말 이 게임은 상하이에서 오프라인 플래시몹 체험행사를 진행했는데, 17173도 행운을 빌어 참여하게 됐다. 이번 시험은 지난 시험으로부터 불과 4개월여밖에 남지 않은 상황인데, 이 짧은 시간 안에 '델타 작전'이 어떤 새로운 볼거리와 놀라움을 선사할지 궁금증을 자아낸다. 4개월여 전 오프라인 테이스팅 세션과 첫 번째 베타 버전에서 'Operation Delta'를 경험했습니다. 당시 게임은 '위험한 액션' 모드만 열었습니다. 그러나 델타 작전은 당시로서는 이미 인상적이었습니다. 주요 제조사들이 모바일 게임 시장에 몰려드는 상황에서 국제 표준에 버금가는 FPS

인공지능의 등장은 소프트웨어 개발의 급속한 발전을 주도하고 있습니다. 이 강력한 기술은 설계, 개발, 테스트 및 배포의 모든 측면에 광범위한 영향을 미치면서 소프트웨어 구축 방식을 혁신할 수 있는 잠재력을 가지고 있습니다. 역동적인 소프트웨어 개발 분야에 진출하려는 기업에게 생성 인공 지능 기술의 출현은 전례 없는 개발 기회를 제공합니다. 이 최첨단 기술을 개발 프로세스에 통합함으로써 기업은 생산 효율성을 크게 높이고 제품 출시 시간을 단축하며 치열한 경쟁이 벌어지는 디지털 시장에서 두각을 나타내는 고품질 소프트웨어 제품을 출시할 수 있습니다. 맥킨지 보고서에 따르면 생성 인공지능 시장 규모는 2031년 4조4000억 달러에 이를 것으로 예상된다. 이 예측은 추세를 반영할 뿐만 아니라 기술 및 비즈니스 환경도 보여줍니다.

기능 테스트는 블랙박스 및 화이트박스 테스트를 통해 기능 기능성을 검증하고, 코드 커버리지는 테스트 케이스에 포함된 코드 부분을 측정합니다. Python 및 Java와 같은 언어마다 테스트 프레임워크, 적용 범위 도구 및 기능이 다릅니다. 실제 사례에서는 기능 테스트 및 적용 범위 평가를 위해 Python의 Unittest 및 Coverage와 Java의 JUnit 및 JaCoCo를 사용하는 방법을 보여줍니다.

Maven은 Java 프로젝트 빌드, 종속성 관리 및 문서 게시와 같은 작업에 일반적으로 사용되는 오픈 소스 프로젝트 관리 도구입니다. 프로젝트 빌드에 Maven을 사용할 때 mvnpackage와 같은 명령을 실행할 때 테스트 단계를 무시하고 싶을 때가 있습니다. 이는 특히 프로토타입이나 테스트 환경을 빠르게 빌드해야 하는 경우 빌드 속도를 향상시킵니다. 이 기사에서는 특정 코드 예제를 사용하여 Maven에서 테스트 단계를 무시하는 방법을 자세히 설명합니다. 프로젝트 개발 중에 테스트가 종종 무시되는 이유

소개 CI(지속적 통합) 및 CD(지속적 배포)는 팀이 고품질 소프트웨어를 더 빠르고 안정적으로 제공하는 데 도움이 되는 최신 소프트웨어 개발의 핵심 사례입니다. Jenkins는 빌드, 테스트 및 배포 프로세스를 자동화하는 인기 있는 오픈 소스 CI/CD 도구입니다. 이 문서에서는 PHP를 사용하여 Jenkins로 CI/CD 파이프라인을 설정하는 방법을 설명합니다. Jenkins 설정 Jenkins 설치: 공식 Jenkins 웹사이트에서 Jenkins를 다운로드하여 설치합니다. 프로젝트 생성: Jenkins 대시보드에서 새 프로젝트를 생성하고 PHP 프로젝트와 일치하도록 이름을 지정합니다. 소스 제어 구성: PHP 프로젝트의 git 저장소를 Jenkin으로 구성합니다.

소프트웨어 개발이 계속 발전함에 따라 자동화된 테스트와 지속적인 통합이 점점 더 중요해지고 있습니다. 효율성을 높이고 오류를 줄이며 새로운 기능을 더 빠르게 출시할 수 있습니다. 이 글에서는 자동화된 테스트와 지속적인 통합을 위해 Go 언어를 사용하는 방법을 소개합니다. Go 언어는 빠르고 효율적이며 기능이 풍부한 프로그래밍 언어입니다. 원래 Google에서 배우기 쉬운 언어를 제공하기 위해 개발했습니다. Go의 간결한 구문과 동시 프로그래밍의 장점은 자동화된 테스트와 지속적인 통합에 이상적입니다.