티스토리 뷰

CS/Swift

[Swift]객체와 테스트

Napster 2017. 11. 7. 14:37

요구사항은 통제하는 것이 아니라 끊임없이 관리하는 것!!

과연 객체란?

주체 <--> 객체

 나는      무엇을   합니다
Subject Object Verb

대상 = 사물 Object (EBS다큐멘터리 동과 서) 주체의 시각으로 보았을때 모든것이 객체이다.객체를 바라보는 시각이 사람마다 다르다. 즉 언어적인 표현에서도 반영된다. OOP는 서양사람들이 생각하는 것과 비슷하다. 그래서 그러한 사고방식을 받아드리는게 객체를 바라보고 설계하고사용하는데 좀더 용이하다.

객체지향적인 관점에서 주체가되는 곳에서 인스턴스가 메소드를 호출할때 메세지를 보낸다라고생각한다.

테스트

SW품질, 시간과 돈이들어간다. SW공학-Waterfall Process는 길고긴 시간과 비용이 필요하다.

함수하나에 테스트코드도 하나 있어야한다. 객체가 있으면 그 객체를 테스트하는 테스트 코드도같이있어야한다. 애자일 방법론, 일단 요구사항 하나를 짧은 단위로 개발하고 테스팅하고 그런식으로 자주 턴을 돌리는 방법이다. 리팩토링 후 테스트코드가 있으면 확실할 수 있는 코드가 만들어진다. 테스트 코드를 보면 각 객체의 사용법과 의도를 한눈에 쉽게 볼 수 있다.(문서화에 용이하다.)

  • Tip버튼 하나의 동작하는 테스트조차도 무한대의 테스트 범위가 있다. 따라서 무엇을 테스트할지Right - BICEPRight - 결과가 올바른가?B - 범위조건를 넘어가도 잘동작하는가?(Boundary)I - 추가하는게 있다면 빼는것도 제대로 동작하는가?(Inverse)C - 다른수단으로 나의 문제가 풀렸을때 같은동작을 하는지?(Cross-check)E - 에러조건을 강제로 만들수 있는가?(Error)P - (Performance)

스위프트는 멀티패러다임 + 함수 중심 프로그래밍

'CS > Swift' 카테고리의 다른 글

[Swift]백의 자리마다 콤마찍기  (0) 2017.12.29
[Swift]Value vs. Reference  (0) 2017.11.07
[Swift]오늘의 이슈 - 예외처리관련  (0) 2017.11.05
[Swift]String 문자열 하나씩 쪼개기  (1) 2017.11.03
[Swift]Closure  (2) 2017.11.01
Comments