Sei sulla pagina 1di 5

Processo de Testes de Desempenho No-Intrusivos Para Sistemas Embarcados Usando Ferramentas Gratuitas

Eric R. de Souza1 2

Universidade de Pernambuco Rua Benfica 455, Madalena,

Modular Mining System Inc Avenida Barbosa Lima 149, Sala 103, Recife Antigo, Recife, Pernambuco - Brasil +55 (81) 3434-4242 ext. 250

Luis R. R. N. Mendes2

Recife, Pernambuco Brasil +55 (81) 3434-4242 ext. 249

esouza@mmsi.com RESUMO
O objetivo principal dos testes de desempenho quantificar e avaliar a eficcia de sistemas em determinados cenrios. Tratando-se de sistemas embarcados, os testes de desempenho com utilizao de tais ferramentas traro resultados imprecisos devido s limitaes de recursos em sistemas desse tipo. Este artigo tem o objetivo de descrever um processo de teste de desempenho simples, eficiente e no oneroso que utilizado na identificao dos cenrios e anlise das caractersticas em sistemas embarcados, tais como: tempo de resposta, nmero de usurios e possveis gargalos. Alm disso, apresentar as ferramentas gratuitas utilizadas e resultados obtidos com a identificao do baixo desempenho.

lmendes@mmsi.com
comparado aos computadores pessoais destinados a execuo de vrias tarefas. Existem diversas motivaes para montarmos equipes especializadas em testes de desempenho de sistemas. Todos ns sabemos que o desempenho o principal indicador da qualidade do produto e serve como parmetro para aceitao por parte dos clientes ou pelo mercado que a cada dia est mais dinmico e competitivo. Com o avano das tecnologias de hardware e meios de propagao de dados, os clientes esto cada vez mais exigentes a procura de sistemas leves, com maior velocidade, escalabilidade, confiabilidade, eficincia, robustez e usando hardwares cada vez menores. Os testes de desempenhos podem ser executados de forma automtica ou manual. De forma automtica podemos usar um software de automao para simular as aes dos usurios podendo gravar simultaneamente os tempos de resposta e vrios parmetros do sistema como acesso para vrias mensagens, dados dos discos de armazenamento, o uso de memria, tamanho da fila, dentre outras coisas, porm isso gera uma sobrecarga adicional aos sistemas embarcados, pois os mesmos, em sua maioria, tm restries de processamento e/ou memria. Na forma manual, a fim de desenvolver uma confiana adequada, os tempos de resposta um bom indicador do desempenho de uma transao e devem ser medidas vrias vezes durante cada teste. A utilizao de cronmetros para aferir os tempos das aes de um teste uma das maneiras mais antigas e eficazes de medir o desempenho do sistema.

Termos Gerais
Medio e Desempenho.

Palavras-Chave
Testes de desempenho, ferramentas gratuitas

1. INTRODUO
O mercado de engenharia de software recomenda o uso de ferramentas automticas de teste de desempenho para que possam medir os tempos de resposta de vrias variveis de um sistema, tais como CPU e uso de memria. No entanto, tais ferramentas automticas podem gerar uma sobrecarga em sistemas embarcados, aferindo resultados que no condizem com o real devido s limitaes de hardware desses sistemas. Devido a este problema, descrevemos uma maneira simples para executar testes de desempenho usando ferramentas gratuitas e considerando o tempo de resposta real do sistema que o esperado pelo usurio final. Este artigo organizado da seguinte forma: A seo 2 apresenta o que um teste de desempenho; A seo 3 mostra uma breve descrio do que um sistema embarcado; Na seo 4 ser apresentado como possvel planejar e executar um teste de desempenho para sistemas embarcados; e finalmente, a seo 0 descreve algumas concluses obtidas com esse caso prtico.

3. SISTEMA EMBARCADO
Um sistema classificado como embarcado quando este dedicado a uma nica tarefa podendo interagir continuamente com o ambiente a sua volta por meio de sensores e atuadores [2]. Por poder ter uma interao contnua com o ambiente, este tipo de sistema requer do projetista um conhecimento em programao, sistemas digitais, noes de controle de processos, sistemas de tempo real, tecnologias de aquisio de dados (converso analgico/digital e sensores) e de atuadores (converso digital/analgico, acionamento eletromecnico e PWM), e cuidados especiais na eficincia de estruturao do projeto e do cdigo produzido [3]. A denominao sistemas embarcados (do ingls Embedded Systems) vem do fato de que estes sistemas so projetados geralmente para serem independentes de uma fonte de energia fixa como uma tomada ou gerador [4], geralmente so usados com baterias. As principais caractersticas de classificao deste tipo de sistema so a sua capacidade computacional reduzida em

2. TESTE DE DESEMPENHO
Inicialmente a definio de Performance Testing para engenharia de software refere-se a avaliao e/ou medio de caractersticas funcionais do software [1]. Porm para aplicaes embarcadas o hardware utilizado deve ser levado em considerao devido sua escassez ou ausncia de alguns recursos quando

comparao a um computador pessoal e a sua independncia de operao. Outros aspectos relevantes dependem dos tipos de sistemas, modos de funcionamento e itens desejados em aplicaes embarcadas, como por exemplo, a quantidade de memria disponvel ir depender do domnio da aplicao.

4. PLANEJAMENTO E EXECUO DE TESTES DE DESEMPENHO


Os testes de desempenho servem para demonstrar que o sistema atende aos critrios acordados, ou ainda compar-los com sistemas similares. E para que tenhamos resultados satisfatrios, propomos que sejam executados de forma incremental os seguintes passos: 1. 2. 3. 4. 5. Identificao do Ambiente de Teste Definio da Necessidade ou Meta de Desempenho Definio de Cenrios de Testes de Desempenho Execuo de teste Anlise do teste.

Figura 2, Especificaes iniciais para um dos sistemas da linha ProVision da Modular Mining Systems Inc

4.2 Definio da Necessidade ou Meta de Desempenho


Aps identificarmos em que condies o sistema embarcado ir trabalhar, o prximo passo definir as metas de desempenho, a quantidade de vezes em que cada teste vai ser executado e qual mtodo de aceitao do resultado. As necessidades podem e devem ser inferidas em conjunto com o cliente ou em relao a produtos similares j existentes no mercado onde um especialista de domnio em conjunto com uma equipe de marketing analisam quais metas de performance deve ser alcanadas para cada funcionalidade do sistema embarcado. Exemplo 1: O sistema X do concorrente faz a operao de inicializao em 10 segundos, logo nossa meta obter no mximo 7 segundos para a mesma operao. Exemplo 2: O especialista de domnio em conjunto com o cliente e equipe de marketing determina que a meta para receber uma mensagem de entrada no autorizada tem que ser de no mximo 1 segundo, pois caso haja retardo na mensagem o infrator poder sofrer um acidente. Definidas as metas de desempenho, Figura 3, o prximo passo definir o mtodo de aceitao dos resultados.

Vale ressaltar que este processo de teste foi executado com sucesso nos projetos da Modular Mining System Inc. [5], empresa lder em desenvolvimento softwares de alta tecnologia e de qualidade (embarcados ou no) no ramo de minerao e gesto ferroviria.

4.1 Identificao do Ambiente de Teste


Nesta etapa devemos fazer a identificao de todos stakeholders e/ou atores envolvidos tais como os equipamentos, protocolos e sistemas que interagem com o sistema embarcado a ser testado. Uma tima ferramenta para organizar nossas idias e pensamentos o FreeMind [6].

Figura 1, Exemplo de Identificao do Ambiente de teste usando MindMap Como podemos observar na Figura 1, o FreeMind tem uma interface simples. Nele, ns podemos adicionar diferentes cores, cones, linhas, etc. Alm disso, possvel imprimir os mapas criados ou export-los para HTML. Ao final dessa etapa definiremos os requisitos no funcionais, como por exemplo, a quantidade de usurios, o volume de dados para que o sistema trabalhe de forma satisfatria. A Figura 2 um exemplo real utilizado em alguns sistemas da linha ProVision [7] da Modular Mining Systems Inc [5] Figura 3, Exemplo de definio das metas de desempenho

Variveis externas no identificadas podem influenciar nos tempos aferidos. Por isso, para garantir a confiabilidade no resultado encontrado, o teste deve ser repetido vrias vezes. Para encontrar o tempo de resposta de cada cenrio de teste, optaremos por utilizar a mediana como resultado final do cenrio de teste em detrimento de outras medidas de tendncia probabilsticas como a mdia, pois a mediana no to sensvel quanto mdia em observaes que so muito maiores ou muito menores do que as restantes. Uma boa prtica tambm aferir o desvio padro, pois esse valor serve para medirmos a disperso da amostragem e a consistncia dos resultados encontrados.

ser observado na Figura 4. A ferramenta torna o processo de teste mais organizado. A ferramenta tem uma interface baseada na web sob a licena GPL (livre para uso). Ela utiliza a linguagem PHP e pode usar os SGBDs MySQL [20], PostgreSQL [21] ou MS-SQL Server [22]. Ela coopera com sistemas de rastreamento de Bugs conhecidos no mercado, tais como Bugzilla [18] e Mantis [19]. O projeto mantido pela comunidade Open source.

4.3 Definio dos Cenrios de Testes de Desempenho


Depois da definio das metas de desempenho devemos focar nos cenrios de testes. Nesta etapa devemos descrever todos os cenrios a serem testados seguindo o seguinte template:
Descrio: <Inserir o propsito do teste> Pr-condies: <pre-condio 1> <pre-condio 2> <pre-condio 3> Ponto Inicial: <Inserir ao que identifica o inicio do teste> Ponto Final: <Inserir ao que identifica o final do teste>

Figura 4, Grficos representando os resultados dos testes na ferramenta TestLink

4.4 Execuo dos Testes


Nesta etapa devemos montar o ambiente de teste e executarmos os testes aferindo seus respectivos tempos. A nossa proposta requer os seguintes equipamentos: webcam, computador pessoal e o hardware com o sistema embarcado; e os seguintes softwares: o visualizador do vdeo capturado pela webcam de preferncia com qualidade de alta definio [10], um cronometro [11] [12] [13] [14] e um programa de captura de imagem [15]. A ambientao deve ser feita como exibida na Figura 5.

Exemplo de um teste de performance para funcionalidade de login: Descrio: A aplicao embarcada deve carregar os dados do usurio e completar a operao de login em menos de 3 segundos Pr-condies O banco de dados deve esta populado com o documento x (definido na primeira etapa) O usurio esta registrado no banco de dados. O login e senha do usurio j esta digitado nos textbox especficos Ponto Inicial: O boto OK pressionado Ponto Final: A tela de boas vindas totalmente carregada

Figura 5, Ambientao para execuo do teste de desempenho Para aferir o tempo de resposta do sistema, o cronmetro estar funcionando junto com o vdeo exibido pela cmera dentro da rea definida pelo software de captura. O software de captura gratuito que utilizamos foi o Wink [15] que pode ser visualizado na Figura 6. O Wink serve para capturar telas, acrescentar caixas de explicaes, botes, ttulos, etc e gerar tutoriais altamente eficazes. No nosso caso, utilizamos o aplicativo apenas para capturar as telas, configurando o tempo para captura de acordo com o nvel de criticidade de cada cenrio. A ferramenta distribuda como freeware para negcios ou uso pessoal. No entanto, se o usurio desejar o distribuir, ento preciso obter permisso do autor.

extremamente aconselhado que esses cenrios de testes sejam armazenados em ferramentas de gerenciamento casos de teste como, por exemplo, o TestLink [8] [9]. O TestLink permite facilmente criar e gerir casos de teste, bem como organiz-los em planos de teste. Estes planos permitem que o analista de teste priorize e atribua testes para os testadores e na medida em que os testes so executados, seus resultados so armazenados de forma dinmica, gerando relatrios em tempo real, facilitando o acompanhamento do ciclo de teste como pode

Figura 7, Exemplo de planilha com agrupamento de resultados para analise dos testes Identificadas as funcionalidades com tempo de resposta abaixo da meta, podemos investigar mais precisamente no cdigo o motivo do baixo desempenho de vrias maneiras, tais como: anlise de cdigo fonte, ferramentas que aferem o tempo de processamento de cada mtodo, dentre outras. A partir dos resultados encontrados, possvel identificar e planejar iteraes para otimizao do cdigo comeando pelas features com pior performance. Na Erro! Fonte de referncia no encontrada., podemos observar a representao grfica de um dos resultados alcanados com os testes de desempenho em um sistema real da Modular Mining System Inc [5].

Figura 6, Ferramenta Wink Os testes so executados na quantidade de vezes em que foi especificado na etapa de definio das metas e o tempo a ser aferido para cada teste obtido pela subtrao do tempo registrado na ao Ponto Final Ponto Inicial que foram especificados no template de criao dos cenrios de teste. O tempo de resposta de cada cenrio de teste ser a mediana da amostragem realizada, pois os tempos de cada teste podem sofrer grandes diferenas devido a agentes externos como, por exemplo, a velocidade de trfego de rede. Quando o tempo final do cenrio de teste for maior que a meta estabelecida ento, uma no conformidade foi encontrada e deve ser reportada para ser analisada pelo Change Control Board (CCB) ou Software Change Control Board (SCCB) que um comit que toma as decises a respeito do que dever ou no ser desenvolvido ou alterado em um projeto de software. Essa no conformidade pode ser reportada em um repositrio de defeitos do qual usamos a ferramenta chamada de Mantis [19]. Mantis uma ferramenta gratuita (liberado nos termos da GNUGeneral Public License), baseada na web que serve para rastreamento de defeitos de um software. Ele escrito na linguagem de script PHP e pode trabalhar com os SGBDs MySQL[20], MS-SQL Server [22] ou PostgreSQL [21].

Figura 8, Iteraes e Resultados Application Launch Neste artigo no entraremos no mrito de analisar as metas estipuladas, pois isso especifico para cada domnio. Por exemplo, uma aplicao para controle de vos em um aeroporto deve ter seus tempos de aceitao e de tolerncia bem mais rgidos que um sistema de entrega de uma pizzaria.

4.5 Anlise dos Testes


Como utilizamos formulas matemticas como subtrao do tempo final pelo tempo inicial, a mediana em uma amostragem de tempos e desvio padro, ento nada mais prtico e eficaz que o uso de um software de planilha eletrnica para executar todos os clculos de forma automtica para facilitar a anlise dos resultados Figura 7Erro! Fonte de referncia no encontrada.. Uma tima planilha eletrnica gratuita pode ser usado no pacote de programas para escritrio chamado BROffice [17]

5. CONCLUSO
Com o presente artigo vimos que possvel conseguir timos resultados na execuo de testes de desempenho pela medio do tempo de resposta do sistema. Tambm foram apresentadas as limitaes dos sistemas embarcados que podem por em risco os resultados dos testes, ou os prprios testes podem adicionar rudos na obteno de seus tempos quando usamos testes de desempenho automticos. Demonstramos que possvel executar testes de desempenho com qualidade, de forma no-intrusiva e no onerosa

seguindo os seguintes passos: Identificao do Ambiente de Teste, Definio da Necessidade ou Meta de Desempenho, Levantando Cenrios de Testes de Desempenho, Execuo de teste e Anlise do teste.

[20] Site oficial do MySQL, http://www.mysql.com/ acessado em 29/12/2010 [21] Comunidade Brasileira de PostgreSQL, http://www.postgresql.org.br/ acessado em 29/12/2010 [22] Site oficial do MS-SQL Server, http://www.microsoft.com/sqlserver/en/us/default.aspx acessado em 29/12/2010

6. REFERNCIAS
[1] Molinari, Leonardo Teste de Performance, Editora Visual Books, So Paulo, Brasil, 2009 [2] Ball, Stuart. Embedded Microprocessor Systems: Real World Design, 3rd edition, Editora: MCPros, EUA, 2005. [3] Shaw, Alan C., Real-time system and software john wiley &sons, inc, Washington, set [4] Reis, Claiton Sistemas Operacionais para Sistemas Embarcados, Tutorial, Editora: EDUFBA, BRASIL, 2004. [5] Site oficial da empresa Modular Mining System Inc, http://www.modularmining.com [6] Site oficial da FreeMind Tools, http://freemind.sourceforge.net/wiki/index.php/Main_Page acessado em 18/10/2010 [7] Site da Linha de produtos ProVision, http://www.modularmining.com/ProVision.html acessado em 28/12/2010 [8] TestLink Tool, http://testlink.sourceforge.net/docs/testLink.php acessado em 10/10/2010 [9] TestLink Tool, http://blog.testlink.org/ acessado em 10/10/2010 [10] Site oficial do Windows Media Player, http://windows.microsoft.com/ptBR/windows/products/windows-media acessado em 28/12/2010 [11] Site do Cronometro Online, http://www.cronometronline.com.br/ acessado em 01/10/2009 [12] Site oficial da ferramenta Marxio, http://www.marxiotools.net/en/marxio-timer.php acessado em 26/07/2010 [13] Site para ferramenta Lap-Timer = http://www.superdownloads.com.br/download/60/lap-timer2000/ acessado em 28/12/2010 [14] Site do DNChrono, http://www.dnsoft.be/ acessado em 02/07/2010 [15] Site para ferramenta 1Time, http://www.superdownloads.com.br/download/86/1time/ acessado em 28/12/2010 [16] Site oficial da ferramenta Wink, http://www.debugmode.com/wink/ acessado em 01/02/2010 [17] Site oficial da ferramenta BrOffice, http://www.broffice.org/ acessado em 28/12/2010 [18] Site oficial da ferramenta Bugzila, http://www.bugzilla.org/ acessado em 29/12/2010 [19] Site oficial da ferramenta Mantis, http://www.mantisbt.org/ acessado em 29/12/2010

Potrebbero piacerti anche