// 이것은 지금 무엇보다도 할 일 목록입니다.
소개
텍스트 입력
기타 입력 (확인란, 스위치, 상호 배타적 인 제어)
오류 관리 (예외, 충돌, 경고, 오류 표시)
내비게이션 (푸시, 팝, 탭, 모달, 화면 회전)
배경 (저장 상태, 스프링 보드 카드)
연결 (Wi-Fi, 느린 에지, 2G, 3G, 4G, 간헐적, 제로 바이트, 오프라인, 평면 모드) 및 하드웨어 연결 (USB, NFC, Bluetooth, Wi-Fi)
현지화 (텍스트 및 이미지, 전화 언어 대 앱 언어 대 현재 영역의 다양한 설정)
중단 (통화, 거절 거부, SMS 보내기/수신, 전원주기, 재시작, 재시작, 알림, 알림, 낮은 메모리, 홈 화면, 앱 스위치, 평면 모드, 스토리지 부위) : 앱이 자체적으로 중단되거나 정지 상태에서 배경으로 들어가거나 중단 될 때마다 정지 상태에서 복구 할 수 있음을 의미합니다. 알림에서 앱에 응답합니다.
스토리지 (올바른 장소에서 위험없이 모든 것이 제대로 저장됩니다)
보안 (애플리케이션이 지불 정보 또는 신용 카드 세부 정보를 저장하고 있습니까? 응용 프로그램은 안전한 네트워크 프로토콜을 사용합니까? 불안한 것보다 더 많은 권한을 요구할 수 있습니까? 애플리케이션이 인증서를 사용합니까? 애플리케이션은 장치 ID를 식별자로 사용합니까? 애플리케이션이 데이터에 액세스하기 전에 사용자가 허용되기 전에 사용자의 수준을 정리해야합니까? 응용 프로그램 실행 응용 프로그램의 보안 및 오류에서의 위반 신청서 인증서 및 권한을 인증하여 자동 응용 프로그램이 계속 끊어지면 끊임없는 입력)
접근성 (소프트웨어 버튼, 확대 / 축소, 글꼴 크기, 텍스트 to Speech, ...)
성능 (배터리 사용량, CPU 사용, 메모리 사용량 (및 누출), 스토리지 (디스크 대 카드) 관리, 응답 성, 스크린 크기, 앱 시작 시간, 앱의 앱 시간, 무거운로드 화면 /로드 스프레드, 연속 키 프레스)는 모든 것을 신속하고 명확한 반응으로 원활하게 처리해야합니다.
백그라운드 작업 (메인 스레드 외부에서 UI를 차단하지 않기 위해 작업을 수행하지만 앱이 "유휴 상태"또는 백그라운드에서 배터리/데이터 등을 배수 할 때 대규모 작업이 없습니다)
통합 (카메라, GPS, Bluetooth는 앱에서 잘 작동합니다)
거꾸로 호환성, 하드웨어 호환성 : 가능한 경우 모든 장치의 모든 버전을 확인하십시오. 앱은 설치 가능하고 완전히 사용할 수 있어야합니다 (해당 장치에서 기능을 사용할 수 없다면)
이미지 : 모든 장치 및 방향의 올바른 크기 및 무게. 스트레칭되지 않고 픽셀 화되지 않고 HD가 아닙니다.
소셜 : 보안 및 개인 정보 보호 정책을 사용할 수 있으며 사용자는 로그 아웃하거나 옵트 아웃 할 수 있습니다. 사용자는 권리를 부여 할 때 발생할 수있는 일과 (게시물/공유/좋아요)가 발생할 때 발생할 수있는 일을 자극합니다.
광고 (표시해야 할 때 표시/숨겨져 있고 적절한 콘텐츠 표시)
Timezones : 원격 통화/시간 대 전화 시간 대 현재 지역 시간 => 어쨌든 UTC를 사용하여 시야에서 현지 시간으로 변환하십시오.
상점 : 앱은 원하는/필요한 상점 (iOS AppStore, Playstore, Android Market 등)에서만 볼 수 있으며 호환 장치에서만 볼 수 있습니다. 스마트 폰 스토어에서는 태블릿 앱이 표시되지 않아야합니다. 스토어 페이지는 버전 업데이트, 설명, 이름/번호, 테스터가 릴리스되기 전에 최신 상태입니다.
사전 릴리스 수표 / 사전 상점 수표 (따라서 상점 검토가 통과해야 함)
앱 아이콘은 모든 필요한 형식으로 사용할 수 있습니다. 상점 아이콘을 사용할 수 있습니다. 모든 앱 이미지는 모든 형식 (1x, 2x, 3x 등)으로 제공됩니다.
OS 호환성, CrossPlatform 호환성 (iOS / Android / Windows Phone에서 어떻게 작동합니까?)
버전 호환성 : iOS 9, 10, 11, 12에서 작동합니까? 대상과 지원해야 할 모든 버전을 테스트하십시오.
모든 버전의 모든 장치에서 작동합니까? : iPhone, iPad, iPhone X, iPhone #및 Android (Omegalul)
방향 (오류 메시지, 비디오, 스플래시 스크린, 내비게이션 및 모든 장치 크기의 모든 방향의 일반 화면)
소리 (배경으로 갈 때 중지? 계속 진행합니까? 통지를 표시합니까? 제어 센터 / 원격 플레이어에서 제어 할 수 있습니까)
알림 (앱을 읽을 때, 딥 링크가 필요한 경우, deep inl
제스처
// 잊고 싶지 않은 것의 실제 할 일 목록
이게 뭐야? 이것은 앱을 철저하고 완전히 테스트하는 것입니다. 이 목록에는 테스트 할 수있는 가능한 많은 요소가 포함됩니다. 당신이 아마 이미 테스트했을 것입니다. 일부는 당신이 생각하지 않았을 것입니다. 이것은 모든 상자를 확인하고 실제로 X & Y를 테스트했다는 사실을 검증하는 것입니다. 그러나 Z를 무시하기로 결정했습니다. 앱에 특정 기능이 없거나 특정 기술을 사용하지 않기 때문에 체크리스트의 많은 요소가 귀하에게 적용되지 않을 수 있습니다. 어떤 이유로 든 테스트를 건너 뛰고 싶을 수도 있습니다. 괜찮습니다. 그것은 당신에게 달려 있고 결정하는 것입니다. 당신이 결정을 내린 한, 그것은 당신이 목록을 읽고, 테스트의 가격과 결과를 수락했으며, 가기에 좋습니다!
프로젝트에 대해 생각한다면 아마도 눈을 멀게 할 것입니다. 프로그래머 또는 소유자의 블라인더는 최악입니다. 앱이 무엇을 해야하는지 알고 필연적으로 해당 경계 내에서 테스트 할 수 있기 때문입니다. 사용자는 앱을 생각하지 않고 앱을 사용할 수 있으며 UX 문제가 될 수 있습니다. 우리는 테스트, 앱이 오프라인 또는 배터리가 낮은지 또는 실제로 필요한 액세스 권한이 거부되는지 확인하는 것에 대해서만 여기에 있습니다. 어떤 일은 사용자 가이 테스트 몇 주 동안 당연한 것으로 여겨 질 수 있습니다. 이것은 주로 "상자 밖에서 생각하는 것"에 관한 것입니다.
여기 내가 의미하는 바를 보여주는 다소 유명한 트윗이 있습니다.
QA 엔지니어는 술집으로 들어갑니다. 맥주를 주문합니다. 주문 0 맥주. 주문 99999999 맥주. 도마뱀을 주문합니다. 주문 -1 맥주. sfdeljknesv를 주문합니다.
- Bill SEMPF (@SEMPF) 2014 년 9 월 23 일
그것은 재미있다 (또는 적어도 나는 그것이 생각하고 싶다) 그리고 그것은 사실이다. 이 간단한 예는 앱에서 확인할 많은 것들을 보여줍니다.
전체 목록은 매우 압도적으로 보이며 그것은 정상입니다. 나는 그것이 가능한 한 완전하기를 원합니다. 앞서 말했듯이 요점은 많은 가능성을 알려주는 것입니다. 요소가 특정 사례에 대해 테스트 할 가치가 있는지 결정하는 것은 귀하의 책임입니다. 당신이 결정을 내리고 그것을 알고있는 한, 그것은 당신의 결정입니다. 그것이이 목록의 요점입니다.
이 목록을 사용할 수 있습니다. 원하는 경우 사용하는 한 소프트웨어의 품질을 향상시킬 수 있습니다. 해당 목록을 사용한다는 사실은 해당 목록을 사용하는 방법보다 훨씬 중요합니다. 철저하고 정기적 인 연습, 사전 릴리스 체크리스트 일 수도 있고 잠자리에 들기 전에 빠른 읽기만큼 간단 할 수 있습니다. 당신이 그것을 읽고 그것이 있다는 것을 알고있는 한, 그것은 어떻게 든 유용 할 것입니다.
빠르지 만 매우 중요한 주목으로,이 테스트의 많은 부분은 고전적인 단위 테스트 및 UI 테스트를 사용하여 수행 할 수 있습니다. 그것은 이미 테스트해야 할 중요한 요소의 대부분을 이미 다루어야합니다. 필요한 경우 나머지는 수동으로 테스트 할 수 있습니다. 즉, 테스트 스위트를 작성하여 장기 안정성을 보장하기 위해 앱의 다양한 장소에서 사용할 수 있습니다. 이 모든 것을 수동으로 테스트하는 것은 악몽 일 것입니다 . 단위 테스트 또는 UI 테스트를 작성하는 방법을 모르면 찾아보십시오. 당신에게 엄청난 시간, 돈을 절약 할 수있는 많은 것을 배우고 수동 테스트가있는 시련을 피할 수 있습니다.
나는 주로 이것을 혼자 쓰고 있습니다. 내가 얻은 유일한 도움/영감은 다양한 주제에 대한 인터넷을 탐색하는 것입니다 (다음 장, ID 참조). 안타깝게도, 나는 내 자신의 지식과 경험에 의해 제한되어 있습니다. 즉, 독자 여러분, 당신이 많은 경험을 가지고있는 영역에 많은 내용이 빠졌다는 것을 의미합니다. 그곳에서 Github가 제자리에 올라 오는 곳입니다. 풀 요청을 자유롭게 요청하거나 내 컨텐츠를 수정하거나 직접 추가 할 수 있습니다. 나는 그것을 검토하고 아마도 커뮤니티의 도움으로 내가 아는 한 최선을 다해 검증 할 것입니다. 보안, 암호화, 네트워킹과 같은 것들이 가장 부족한 영역입니다. 내가 평범한 Joe라는 점을 고려할 때, 아마도 대부분의 사람들이 기술이 부족한 곳과 앱이 가장 취약/부족한 곳일 것입니다. 이것은 그것들이 당신이 약한 지역 (당신이 약한 지역)이 트리플 점검되어야하며 반드시 추가주의를 기울여야한다는 것을 의미합니다!
기여 / 말하는 다른 방법 감사합니다. 감사합니다.
결국, 나는 당신에게 시간을 절약하기 위해 많은 시간을 보내고 있습니다. 그것은 위의 가치가있을 것입니다 : D
그리고 마지막으로, Michael Hunter에게 그의 놀라운 점검표에 감사드립니다.이 점검 목록은 모바일 개발 (iOS, Android, Windows Phone)과 관련하여 내 자신의 체크리스트를 시작하게되었습니다. 그것은 많은 시간과 노력이 목록의 버전에 넣은 것처럼 보이며, 첫 번째 버전조차 아는 것입니다. 그것은 훌륭한 일이며, 당신이 모바일 이외의 외부에 있다면, 나는 당신이 그것을 확인하러 가십시오. 저의 유일한 희망은 언젠가 비슷한 품질의 체크리스트를 달성하는 것입니다. 거기에서 인터넷에서 여러 개의 점검 목록을 발견했는데 대부분은 불완전하지만 눈에 띄는 점검 목록은 David Dias의 프론트 엔드 체크리스트로 여러 가지 방법으로 내 자신을 개선 할 수있었습니다. 제발, 그를 확인하십시오. 퍼질 가치가 있습니다!
텍스트 입력은 많은 맛, 크기 및 사용 사례로 제공됩니다. 분명히 당신은 다른 필드를 처리하는 것과 같은 방식으로 password 필드를 처리하지 않으며 여러 목적을 가진 많은 필드가 있습니다. 이 목록은 그들 모두 또는 적어도 대부분을 다루어야합니다. 입력 테스트는 여러 측면을 통해 수행됩니다. 텍스트 필드가 모든 종류의 응력과 입력을 처리하고 서식이 제대로 작동하도록 유효성 검사가 논리 및 UI에서 작동하는지 확인해야합니다. 함께 모든 사람들은 궁극적으로 당신에게 작동하는 텍스트 필드를 제공해야합니다.
텍스트 입력을 검증 할 때 다음 입력 및 상황을 모두 처리하지 않은 경우 아직 완료되지 않았습니다. 이들은 대부분의 다른 입력 유형 (비밀번호, 이메일, 숫자 등)에도 적용됩니다. 모든 유형의 문자열 입력을 다루는 경우 다음 목록과 관련 목록을 고려하십시오.
aBCd 1234 #@ !? ;) $= § :grinning: 또는 :-) 또는? 또는 U+1F60A 123 t , " , ... string.Empty null다음과 같은 방법으로 데이터를 입력하려고 시도하지 않은 경우 아직 완료되지 않았습니다.
그리고 그것은 앱의 한 화면에서 하나의 텍스트 입력에만 해당됩니다. 앱 전체에서 각 텍스트 입력 필드를 철저히 검증해야합니다. 또한 입력 사이에 자동으로 공간을 추가하거나 일부 문자를 색칠하거나 대문자로 변경하도록하는 등 입력 형식을 언급하지 않습니다.
모든 번호 입력을 철저히 테스트하지 않은 경우 아직 완료되지 않았습니다.
0 13.37 또는 13,37 (로케일에 따라 분리기를 마음에 넣으십시오!) -1337 10^20 "124" 12.23 vs 12,23 10.234,96 vs 10,234.96 13.37 € vs € 13.37 13.34 대신 13.3389 13.00 또는 단지 13 , 아니면 전적으로 다른 것? 4000 입력 할 수는 있지만 3999.99 입력 할 수 있습니까? 아니면 4000.56 입력 할 수 있습니까? 12345 0,12345 또는 ,12345 또는 다른 것입니까? 0,12 로 개혁 되었습니까? -1 , 0 , -1000 , 234940 ) 모든 이메일 입력을 철저히 테스트하지 않은 경우 아직 완료되지 않았습니다.
@ 문자가 없습니다 @ 문자 . 성격 . , - , _ 등) ù , à 등 당신은 아직 끝나지 않았다
당신은 아직 끝나지 않았다면 아직 끝나지 않았습니다
당신은 아직 끝나지 않았다
당신은 아직 끝나지 않았다
당신은 아직 끝나지 않았다
입력은 항상 텍스트의 형태가 아니라 사람들이 자신의 입력을 줄 수있는 다른 방법이 있습니다. 그러므로 물건을 잊어 버리는 다른 방법이 있습니다!
당신은 아직 끝나지 않았다
당신은 아직 끝나지 않았다
당신은 아직 끝나지 않았다
당신은 아직 끝나지 않았다
오류 관리는 건강에 좋은 앱의 기둥입니다. 문제를 추적하는 데 도움이 될 것입니다 (다른 도구도 도움이 될 것입니다). 따라서 버그를 수정합니다. 그러나 당신은 그것이 사용자와 앱 경험에 장애가되는 것을 원하지 않습니다. 좋은 UX, 버그 추적 및 사용자에게 문제가 발생했음을 알리는 것 사이에 균형이 잘 맞습니다.
당신은 아직 끝나지 않았다
당신은 아직 끝나지 않았다
당신은 아직 끝나지 않았다
당신은 아직 끝나지 않았다