2012년 4월 23일 월요일

Arquillian: So you can rule your code, Not the bugs


So you can rule your code, Not the bugs.
No more mocks. No more container lifecycle and deployment hassles.
Just real test!

Arquillian 어원



영화 "Men in Black”에 나온 외계인, 사람 형태의 로봇에 타고 있는 작은 외계인 종족이 "Arquillan”

Arquillan의 3가지 원칙
1. Tests should be portable to any supported container
2. Tests should be executable from both the IDE and the build tool
3. The platform should extend or integrate existing test frameworks

Arquillan의 Feature

1. Real Tests
Mocks can be tactical, but more often than not, they are used to make code work outside of a real environment. Arquillian let's you ditch the mocks and write real tests. That's because Arquillian brings your test to the runtime, giving you access to container resources, meaningful feedback and insight about how the code really works.

2. IDE Friendly
The learning curve for getting started with Arquillian is minimized by the fact that it integrates with what you already know. Using JUnit for your unit tests? Then you can reuse your knowledge of JUnit to do integration testing. TestNG? Arquillian let's you choose. And you can even run your Arquillian tests right alongside unit tests in your IDE.

3. Test Enrichment
Your application and tests can share the same programming model, regardless of technology stack. For example, Arquillian can inject the deployed Contexts and Dependency Injection (CDI) beans, Enterprise JavaBeans (EJB) components and other Java EE resources directly to your tests. Arquillian can also extend that programming model to provide access to container APIs and implicit objects from test frameworks such as JSFUnit and Selenium.

4. Classpath Control
Most test suites are a mess, but it's not your fault. Test frameworks carelessly use whatever classes and resources are on the classpath of the test, making isolation of the test scenario difficult and turning the test suite into a Frankenstein. Not Arquillian. Micro-deployments are much smaller than the full application, so the test archive deploys faster, which means you get a faster test-code-test development cycle.

5. Drive the Browser
Arquillian is just as relevant for client testing as it is for server-side testing. Arquillian Drone abstracts away all the tedious setup of the Selenium Server, letting you skip right to driving the browser from your test. Arquillian even unifies client and server-side testing, most apparent in our JSFUnit integration.

6. Debug the Server
Arquillian brings you server-side debugging like never before. Typically, you have to package the application, deploy it to the server, connect the debugger and interact with the UI in order to hit the breakpoint. Now you can just drop a breakpoint in the test or application code and debug the test. Bang, you hit the breakpoint inside the server from the comfort of your IDE. Prepare for an eye opening experience!

7. Container Agnostic
You name the container, Arquillian can manage it. If not, why not write an adapter? Having the choice of multiple containers allows you to switch from an embedded container in development to a standalone server for continuous integration, test on different compliant containers to ensure application portability, or even interact with several containers in the same test to validate distributed behavior.

8. Extensible Platform
There's no limit to what you can test using Arquillian. Many extensions are available. If you're looking for an integration that's not yet implemented, Arquillian provides an extensible platform into which you can integrate that next great testing tool.

9. Strong Tooling
Want to take the quick path to getting started with Arquillian? Tools like JBoss Forge can help. Just install the Arquillian plugin, set it up in your project, and get started writing tests in seconds. You'll be amazed how easy it is to get started with Arquillian and Forge - it's the next enterprise evolution.

2012년 4월 13일 금요일

사용자 행위 로그를 이용한 모바일 어플리케이션의 사용성 분석 기법

소프트웨어 어플리케이션이 사용자에게 효율적인 서비스를 제공하는데 있어 사용자 인터페이
스는 중요한 요소이다. 특히, 언제 어디서나 실행 가능한 모바일 어플리케이션의 특성상 다른 도메인의 어플리케이션 보다 소프트웨어의 품질 속성 중에서 사용성의 우선순위가 높다. 현재까지 소프트웨어 어플리케이션의 사용성 향상을 위해 기존 연구에서는 프로토타입과 스토리보드방식을 활용하여 해당 어플리케이션의 사용성에 대해 설문을 하는 방식으로 사용성을 측정하여 문제점을 식별하고 개선시켜왔다.
하지만, 이러한 방식은 특정 어플리케이션의 사용성 관련 문제점을 지속적으로 식별하고 개선하기 위해서 매번 설문을 진행해야하는 한계점이 있다. 따라서, 본 논문에서는 어플리케이션이 배포된 후에도 지속적으로 사용자의 의도를 파악하여 어플리케이션의 문제점을 식별하고 개선시켜 나가기 위해 사용자 행위 로그를 이용해 어플리케이션의 사용성을 분석하는 기법을 제안하고 있다.
제안된 기법의 실효성 검증을 위해 안드로이드폰에 탑재되어 제공되는 모바일 어플리케이션을 대상으로 본 기법을 적용하고 그 결과를 분석하였다.

문서보기

Which Mobile App Development Option is Better?

Different alternatives to native code development have their own advantages and philosophy behind. No one tool or approach can be clearly ma...