Relatório Descritivo da Patente de Invenção para "MODELO DE CARGA AUTOMATIZADO".
Antecedentes
Campo da Invenção
A presente invenção refere-se a testes de performance de com-putador. Mais especificamente, a presente invenção refere-se a um métodoe a um sistema para a otimização dos testes de sistemas de computador.Antecedentes da Invenção
Conforme os sistemas de computador evoluíram, assim o fez acomplexidade de aplicativos que operam nestes sistemas. Muitas vezes, asequipes de desenvolvedores criam estes aplicativos e sistemas complexos.Os testes destes sistemas se tornam cada vez mais difíceis, conforme acomplexidade aumenta. Em alguns casos, os aplicativos e os sistemas so-frem testes alfa e beta. Isto envolve tipicamente permitir que grupos selecio-nados de indivíduos exercitem várias funções suportadas pelos sistemas,em uma tentativa para se identificarem quaisquer deficiências que o sistemapossa ter.
Um sistema caracterizado por um grande número de usuáriostambém pode passar por um teste de performance para se avaliar a pronti-dão ou a performance no mundo real do sistema. Isto envolve determinar sea operação em mundo real do sistema rodando se adéqua a expectativasestabelecidas. Para se fazer esta determinação, o sistema sob teste deve: 1)combinar ou se correlacionar diretamente com um sistema de produçãosendo certificado, 2) ser monitorado continuamente por todo o teste, para sedeterminar se os resultados se adéquam ou falham em alvos apropriados, e3) estar operando em uma carga de trabalho realista, a qual reflete um usono mundo real. Contudo, atingir esta terceira exigência pode ser desafiador.
Sumário da Invenção
Para se dirigir aos problemas destacados acima, um método eum sistema para se testar um sistema de computador é provido. Em umaimplementação, o método pode receber uma footprint descript que inclui va-lores de efeito de dimensão correspondentes ao número de vezes que umadimensão de sistema de computador é afetada pelo script. Um script corres-ponde a uma listagem de código executada por um processador que permitetestar uma funcionalidade associada ao sistema de computador. Uma foot-print de script é uma medida da forma pela qual um script afeta o sistema decomputador, conforme representado pelo número de vezes por período detempo que o script exerce operações do sistema de computador. Uma di-mensão corresponde a uma operação realizada pelo sistema de computadorque um script pode ou não exercitar. Por exemplo, um servidor de autentica-ção pode realizar operações tais como autenticação de identidade, autenti-cação de identidade alternativa, atualização de senha, autenticação de gru-po e/ou operações para a regulagem de privilégios com o sistema. Uma in-formação alvo também pode ser recebida. A informação alvo inclui valoresde dimensão-alvo correspondentes a um número desejado de vezes por pe-ríodo de tempo em que cada dimensão deve ser afetada. O método e o sis-tema podem determinar o número de vezes para execução dos scripts noperíodo de tempo, de modo a se minimizar a diferença entre o número realde vezes em que as dimensões são afetadas e a dimensão-alvo durante operíodo de tempo. O método e o sistema também podem executar o scriptno sistema de computador pelo número determinado de vezes no período detempo.
Em um aspecto da presente invenção, as diferenças entre o nú-mero real de vezes que as dimensões são afetadas e os valores de dimen-são-alvo, são minimizados através de um algoritmo de mínimos quadradoslinear.
Em outro aspecto da presente invenção, um fator de ponderaçãopode ser aplicado aos valores de efeito de dimensão e aos valores de di-mensão alvo, de modo a se definir a importância relativa das medidas e/oupara se nivelarem os efeitos de medidas escalonadas diferentes. O fator deatribuição de peso pode corresponder ao recíproco de um valor mais altodos valores de dimensão-alvo, o recíproco de uma média de todos os valo-res de dimensão-alvo e/ou o recíproco de uma soma dos valores de dimen-são-alvo.Em ainda um outro aspecto da presente invenção, os valores dedimensão-alvo podem ser escalonados por um fator de crescimento para aprovisão de valores de dimensão-alvo mais atuais, em casos em que os va-lores de dimensão-alvo são baseados em dados históricos.
Breve Descrição dos Desenhos
A figura 1 é uma modalidade de um sistema de teste para setestar a robustez de sistemas de computador de acordo com a presente in-venção;
a figura 2 é uma modalidade de uma estrutura de árvore de umplano de teste para se testar um sistema de computador de acordo com apresente invenção;
a figura 3 é uma porção de uma tabela de exemplo gerada poruma modalidade de um aplicativo de modelo de carga que permite a carac-terização de vários scripts de teste utilizados para se testar um sistema decomputador de acordo com a presente invenção;
a figura 4 é uma porção de uma tabela de exemplo gerada peloaplicativo de modelo de carga usado na figura 3, que permite a especifica-ção de uma informação alvo para grupos de acordo com a presente inven-ção;
a figura 5 é uma porção de uma tabela de resultado de exemplogerada pelo aplicativo de modelo de carga da figura 3 de acordo com a pre-sente invenção;
a figura 6 é um fluxograma que descreve as operações do apli-cativo de modelo de carga da figura 3; e
a figura 7 ilustra esquematicamente uma modalidade de um sis-tema de computador que usa o aplicativo de modelo de carga da figura 3 deacordo com a presente invenção.
Descrição Detalhada da Invenção
A figura 1 é um sistema de teste 100 para se testar a robustezde sistemas de computador. O sistema de teste 100 inclui um processador115, scripts de teste 105 e um modelo de carga 120.
O processador 115 pode corresponder a qualquer computadorconvencional ou outro dispositivo de processamento de dados capaz de e-xecutar aplicativos para a verificação da funcionalidade de sistemas de com-putador. Por exemplo, o processador 115 pode corresponder a um proces-sador baseado em Intel®, AMD® ou PowerPC® operando, por exemplo, umsistema operacional baseado em Microsoft Windows®, Linux ou outro base-ado em Unix®. O processador 115 pode ser adaptad para executar aplica-ções tais como uma aplicação de modelo de carga e/ou uma aplicação deteste de carga, tal como um HP Load Runner®. O aplicativo de teste de car-ga executa scripts de teste para testar os sistemas de computador de acordocom o modelo de carga. O processador 115 também pode ser adaptado pa-ra comunicação com os sistemas de computador através de uma interface,tal como uma interface de rede.
Os scripts de teste 105 correspondem a listagens de código e-xecutadas pelo processador 115, que permite testar a funcionalidade asso-ciada a vários sistemas de computador. As listagens de código podem cor-responder a uma linguagem de criação de script, tal como Java® e/ou Mi-crosoft Visual Basic®. As listagens de código também podem correspondera linguagens de programação, tais como C ou C++. Os scripts de teste 105podem incluir listagens de código projetadas para simularem interações hu-manas associadas a vários sistemas de computador a serem testados pelosistema de teste 100. Por exemplo, um primeiro script de teste pode incluirum código que permita a simulação de interações humanas associadas àleitura e à escrita de mensagens de e-mail. Neste caso, o script de teste po-de incluir um código que gere uma mensagem de e-mail, selecione um des-tinatário para a mensagem de e-mail e comunique a mensagem de e-mailpara um servidor de e-mail 125. Um segundo script de teste pode incluir umcódigo que permita a simulação de interações humanas associadas à nave-gação em páginas da web. Por exemplo, o script pode incluir um código querequisite uma página da web a partir de um servidor da web 130, especifiquecampos na página da web e comunique os campos de volta para o servidorda web 130. Um terceiro script de teste pode incluir um código que permita asimulação de interações humanas associadas a interações de banco de da-dos. Por exemplo, o script pode incluir um código que recupere e armazenedados para e a partir de um servidor de banco de dados 135. Outros siste-mas e scripts para teste dos sistemas podem existir também.
Em operação, o processador 115 executa os scripts de teste 105de acordo com um modelo de carga 120. O modelo de carga 120 é geradopor um aplicativo de modelo de carga e especifica quantas vezes por perío-do de tempo cada um dos scripts de teste 105 é executado. Por exemplo,um primeiro script pode ser executado 159,24 vezes por minuto e um se-gundo script pode ser executado 26,29 vezes por minuto. Quão frequente-mente se executa um dado script é determinado pelo aplicativo de modelode carga. O aplicativo de modelo de carga determina as taxas de execuçãodos scripts com base em uma variedade de fatores, incluindo várias medidasque incluem dimensões. Uma medida corresponde a uma coleção de dimen-sões associadas a um aspecto em particular de um sistema sob teste. Umadimensão corresponde a uma operação realizada naquela medida ou naque-le aspecto em particular do sistema. Por exemplo, medidas de autenticaçãopodem estar associadas a um servidor de autenticação que realiza opera-ções tais com autenticação de identidade, autenticação de identidade alter-nativa, atualização de senha, autenticação de grupo e/ou operações para oestabelecimento de privilégios junto ao sistema.
As figura 2 a 4 descrevem várias interfaces de usuário e opera-ções associadas ao aplicativo de modelo de carga.
A figura 2 é uma estrutura de árvore 220 de um plano de testepara se testar um sistema de computador pelo sistema de teste 100. O planode teste pode ser criado através do aplicativo de modelo de carga descritoacima. A estrutura de árvore 220 inclui vários nós de grupo 225 e vários nósde script 210. A estrutura de árvore 220 pode ser utilizada para a definiçãodas relações entre vários scripts utilizados para se testar o sistema de com-putador. A funcionalidade interna do aplicativo de modelo de carga é guiadapelo agrupamento dos scripts. Freqüentemente, há relações importantesentre os scripts que podem precisar ser levadas em consideração. Estasrelações podem ser inerentes à forma como o software ou sistema de com-putador opera. Por exemplo, em muitos aplicativos de web, após um usuáriofazer um Iogin com sucesso, ao usuário é apresentada com uma tela de bo-as vindas. Se houver dois scripts, um para Iogin e um para navegação pelatela de boas vindas, pode fazer sentido rodá-los um após o outro. Contudo,um modelo de carga sem restrição pode tentar romper esta relação entre osscripts, porque não está ciente dela. A estrutura de árvore 220 permite res-tringir o modelo de carga, de modo a se manterem estas relações.
Os nós de grupo 225 são utilizados para scripts relacionados agrupos e/ou outros grupos, e para a especificação de uma informação alvoutilizada para restrição das taxas de execução de scripts associados ao gru-po. Por exemplo, um nó de grupo "Plano de Teste" 200 pode ser utilizadopara a especificação de uma informação alvo para todos os scripts abaixo donó de grupo "Plano de Teste" 200 na estrutura de árvore 220, o que, nesteexemplo, inclui aqueles scripts abaixo do nó de grupo "grupo de Aplicativode Administração" 205, do nó de grupo "Relacionado a Lote" 207 e do nó degrupo "Aplicativo de Cliente" 209. Cada um destes nós de grupo por sua vezpode ser utilizado para a especificação de uma informação alvo para os s-cripts abaixo do respectivo grupo. Por exemplo, o nó de grupo "Aplicativo deAdministração" 205 pode ser utilizado para a especificação de uma informa-ção alvo para todos os scripts abaixo do nó de grupo "Aplicativo de Adminis-tração" 205, o que inclui os nós de script 210 para desabilitação de uma co-ta, pesquisa de uma conta, atualização de uma conta e Iogin em uma conta,por um administrador.
A informação alvo mencionada posição vertical inclui uma listade medidas, pesos para cada medida, valores para dimensões associadas acada medida e fatores de crescimento para cada medida. Os pesos são utili-zados para a definição da importância relativa das medidas. Os valores dedimensão-alvo podem ser com base em valores históricos ou esperados.
Cada medida no perfil pode ser multiplicada por um fator de crescimentopara a predição de algum estado futuro ou ter um peso atribuído para seguiar o modelo, quando da feitura de comprometimentos. Os fatores decrescimento são expressos como múltiplos de valores históricos.Os nós de script 210 são utilizados para a especificação de umafootprint de script. Um script corresponde a uma listagem de código execu-tada por um processador que permite testar uma funcionalidade associada aum sistema de computador que esteja sob teste. Uma footprint de script éuma medida da forma pela qual um script afeta o sistema de computador,conforme representado pelo número de vezes por período de tempo que oscript exerce operações do sistema de computador. Uma footprint de scriptinclui uma lista de dimensões que podem ser afetadas pelo script, valoresnuméricos para cada dimensão que mede o efeito de uma execução indivi-dual daquele script, e a duração mínima esperada quando se roda o scriptsozinho, sem quaisquer outros scripts rodando.
A footprint de um script pode ser monitorada por uma combina-ção de conhecimento de aplicativo e experimentação. Pode ser importantedeterminar quais medidas aplicar a um script. Freqüentemente, isso incluiacesso a um analista com conhecimento específico do aplicativo para a de-terminação de quais servidores da web, bancos de dados e sistemas debackend são tocados quando se roda um script. Se isto não estiver disponí-vel, pode ser possível determinar esta informação pela rodada do script so-zinho, sem quaisquer outros scripts rodando, e registrando-se e/ou monito-rando-se o comportamento do script.
Após a determinação da lista de medidas que se aplicam a umscript, pode ser melhor medir os efeitos do script em um ambiente limpo,sem registro / monitoração habilitado(a) para aquelas medidas de sistemaque foram almejadas. A rodada de um script múltiplas vezes pode ajudar aidentificar e eliminar erros ou um tráfego não pretendido. Por exemplo, seum script for rodado vinte vezes em sucessão, então, o tráfego resultantepoderá ocorrer em múltiplos de vinte. Métricas que não estejam em múltiplosuniformes mostram um tráfego de fundo interferente (o que freqüentementepode ser ignorado e subtraído) ou um comportamento variável (não determi-nístico). Este tipo de tráfego pode ser considerado com valores fracionários.
A figura 3 é uma porção de uma tabela de exemplo 325 geradapelo aplicativo de modelo de carga, que permite a especificação da footprintde vários scripts utilizados para se testarem sistemas de computador, con-forme descrito acima. A tabela 325 inclui os scripts 310, as dimensões 315que podem ser afetadas por um script, e campos de efeito de dimensão 320.Cada dimensão 315 corresponde a uma operação realizada pelo sistemasob teste. Por exemplo, um servidor de autenticação do sistema sob testepode realizar operações tais como autenticação de identidade, autenticaçãode identidade alternativa, atualização de senha, autenticação de grupo e/ouoperações para estabelecimento de privilégios junto ao sistema. Estas ope-rações são representadas pelas dimensões 315 no topo da tabela 325.
Os campos de efeito de dimensão 320 são campos de entradada tabela de exemplo que são utilizados para a especificação de um valorassociado ao efeito de uma execução individual de um script em uma dadadimensão 315. Por exemplo, com referência à figura 3, o script "DesabilitarConta" pode afetar as dimensões 315 "Autenticação de ID", "Atualização deSenha" e "Autenticação de Grupo" uma vez por execução, e a dimensão"Privilégios" duas vezes por execução, conforme ilustrado pelos valores deefeito de dimensão 1,0 e 2,0 na tabela de exemplo 325. O script "Login deAdministração" pode afetar a dimensão "Autenticação de ID" e a dimensão"Autenticação de Grupo" uma vez por execução.
Os scripts 310 na tabela de exemplo 325 são agrupados juntosde acordo com a estrutura em árvore 220 da figura 2. Por exemplo, na tabelaexemplar 325, os scripts 310 "Desabilitar Conta", "Pesquisa de Conta", "Atu-alização de Conta" e "Login de Administração" são agrupados abaixo dogrupo de "Aplicativo de Administração" 305, o qual, por sua vez, está abaixodo grupo "Plano de Teste" 300.
A figura 4 é uma porção de uma tabela de exemplo 420 geradapelo aplicativo de modelo de carga, que permite a especificação de uma in-formação alvo para grupos, conforme descrito acima. A tabela 420 inclui li-nhas de grupo 402, dimensões 410, e campos de dimensão-alvo 415. Aslinhas de grupo 402 mostradas na tabela de exemplo 420 podem correspon-der aos grupos mostrados na estrutura de árvore de exemplo 220 da figura2. Por exemplo, a tabela 420 inclui uma linha de linha de grupo de "Plano deTeste" 400 e uma linha de grupo "Aplicativo de Administração" 405.
As dimensões 410 podem corresponder às dimensões que sãoafetadas pelos vários scripts, tais como as dimensões "Autenticação de ID","Autenticação de Alt", "Atualização de Senha", "Autenticação de Grupo" e"Privilégios", conforme descrito acima com referência à figura 3.
Os campos de dimensão-alvo 415 são utilizados para a especifi-cação de valores de dimensão-alvo para cada dimensão. Na tabela de e-xemplo 420, as dimensões de alvo 415 especificadas na linha de grupo de"Plano de Teste" 400 e na linha de grupo "Aplicativo de Administração" 405são utilizadas para restrição do número de vezes por período de tempo queas dimensões 410 são afetadas pelos scripts associados àqueles grupos.
Por exemplo, com referência à tabela 420, o número de vezes por minutoque as dimensões "Autenticação de ID", "Autenticação de Alt" e "Atualizaçãode Senha" podem ser afetadas pelos scripts que são parte do grupo de "Pla-no de Teste" 400 pode ser restrito a 5003, 2345 e 45,3 vezes por minuto,respectivamente. De modo similar, no grupo "Aplicativo de Administração"405, o número de vezes por minuto que as dimensões "Autenticação de Alt"e "Autenticação de Grupo" podem ser afetadas pelos scripts que são partedo grupo "Aplicativo de Administração" 405 pode ser restrito a 45,0 e 121vezes por minuto, respectivamente.
As tabelas 1 a 10 abaixo descrevem como o aplicativo de mode-lo de carga determina a taxa de execução ótima dos scripts individuais ne-cessária para adequação aos alvos definidos. A tabela 1 mostra as footprintsde script de exemplo ou os perfis de script associados a vários scripts. Nestecaso, a tabela define as footprints de scripts denominados "Script 1 e "Script2". As dimensões de um sistema sob teste que podem ou não ser afetadaspelos scripts são listadas através do topo da tabela e incluem "Consulta 1","Consulta 2" e "URL 1", "URL 2" e "URL 3". As dimensões de consulta po-dem corresponder a operações realizadas por um banco de dados e, portan-to, são incluídas sob o cabeçalho de "Medida de Banco de Dados". De modosimilar, as dimensões de URL podem corresponder a operações realizadaspor um servidor da web e, portanto, são incluídas sob o cabeçalho de "Medi-da da Web".
A footprint de script é definida pelos valores de dimensão de s-cript na tabela. Os valores de dimensão de script correspondem ao númerode vezes que as várias dimensões são afetadas pelo script a cada vez emque o script se executa. Por exemplo, conforme mostrado na tabela 1, "S-cript 1" afeta a dimensão "Consulta 2" uma vez por execução, "URL 1" duasvezes por execução e "URL 3" uma vez por execução. "Script 2" afeta a di-mensão "Consulta 1" uma vez por execução, "URL 2" uma vez por execução
<table>table see original document page 11</column></row><table>
Tabela 1 - Perfis de script de exemplo
A tabela 2 abaixo é uma tabela que mostra os valores de dimen-são-alvo correspondentes ao número de vezes por minuto que as dimensõesna tabela 1 são afetadas de forma ideal
<table>table see original document page 11</column></row><table>
Tabela 2 - Contagens de execução de função de alvo exemplar
Neste caso, a tabela especifica que as dimensões "Consulta 1,""Consulta 2," "URL 1," "URL 2," e "URL 3" devem ser afetadas 10, 8, 16, 10,e 18 vezes por minuto, respectivamente. Isto é, quando se executam "Script1" e "Script 2" simultaneamente, o número de vezes que uma dada dimen-são é afetada deve ser restrito aos valores de dimensão-alvo na tabela 2.
A questão se torna: qual é o número ótimo de vezes para execu-ção do "Script 1" e do "Script 2" na tabela 1, de modo a se combinarem me-lhor os valores de dimensões de alvo da tabela 2? A tabela 3 representauma solução para este problema.<table>table see original document page 12</column></row><table>
Tabela 3 - Solução de ajuste perfeito de exemplo
Os valores de dimensão-alvo da tabela 1 e os valores de dimen-são de script da tabela 2 são representados no lado esquerdo da tabela 3. Aporção média da tabela 3 representa o número de vezes por minuto que ca-da script é executado. Por exemplo, "x8" indica que o "Script 1" é executado8 vezes por minuto e "x10" indica que o "Script 2" é executado 10 vezes porminuto.
O lado direito da tabela 3 mostra o número real de vezes porminuto que as dimensões são afetadas pelos scripts. Por exemplo, quando"Script 1" é executado 8 vezes em um minuto, as dimensões "Q2," "URL 1,"e "URL 3" são afetadas 8, 16, e 8 vezes por minuto, respectivamente. Quan-do "Script 2" é executado 10 vezes em um minuto, as dimensões "Q1," "URL2," e "URL 3" são afetadas, cada uma, 10 vezes por minuto.
Neste caso, a execução de "Script 1" oito vezes por minuto e de"Script 2" dez vezes por minuto provê uma solução perfeita para o problema,porque o número real de vezes que as dimensões são afetadas no lado di-reito da tabela eqüivale aos valores de dimensão-alvo no lado esquerdo databela. Por exemplo, o número real de vezes que a dimensão "Q1" é afetadaeqüivale a 10 vezes por minuto, o que é igual ao valor de dimensão-alvo pa-ra "Q1". Da mesma forma, os números reais de vezes que as outras dimen-sões são afetadas correspondem aos respectivos valores de dimensão-alvo.
Isto significa que a execução de "Script 1" 8 vezes por minuto e de "Script 2"dez vezes por minuto é a melhor combinação de taxas de execução.Muitas vezes, os valores de dimensão-alvo são baseados emvalores históricos. Neste caso, um fator de crescimento pode ser aplicadoaos valores de dimensão-alvo para a provisão de valores de dimensão-alvomais atuais. Por exemplo, todos os valores de dimensão-alvo podem serdobrados para se criarem valores de dimensão-alvo históricos para maisvalores atuais.
O exemplo prévio foi uma solução perfeita porque todos os valo-res de dimensão-alvo foram encontrados. Isto pode acontecer sob condiçõesde mundo real, em que os scripts são fiéis aos comportamentos de usuário.Contudo, freqüentemente, os comportamentos de usuário são muito comple-xos, ou os valores de dimensão-alvo são estimados, tornando difícil, se nãoimpossível, encontrar um ajuste perfeito. Isto pode resultar em um erro entreos valores de dimensão reais e de alvo. A meta nestas situações é encontraruma combinação de taxas de execução de script que minimize este erro. Osparágrafos a seguir explicam como isto pode ser realizado.
<table>table see original document page 13</column></row><table>
Tabela 4 - Solução de Melhor Ajuste
A tabela 4 representa um caso em que um ajuste perfeito nãopode ser encontrado. Neste caso, ambos os scripts são executados seis ve-zes por minuto, mas isto resulta em um erro, conforme mostrado no ladodireito. Aqui, os valores reais para as dimensões A, B e C estão fora em 4, -2e 4, respectivamente. Em outras palavras, as funções AeC são afetadasquatro vezes por minuto muito poucas vezes e a dimensão B é afetada duasvezes por minuto vezes demais.
Uma vez que cada erro, negativo ou positivo, representa algumnível e falha em adequação ao alvo, todos os valores de erro devem ser con-tados. A adição direta destes números em conjunto não é possível, uma vezque erros negativos e positivos se cancelarão. Ao invés disso, o erro total écomputado de acordo com a equação a seguir:
Erro Total = 42 + (-2 f + A2
A vantagem de representar o erro desta forma é que se presta àaplicação de uma abordagem matemática conhecida como Mínimos Qua-drados Lineares (LLS). Esta abordagem permite encontrar combinações detaxas de execução de script que minimizam o erro total.
Geralmente, a aplicação da abordagem de LLS começa pelaconsideração de um sistema sobredeterminado na forma\_xXjJp = yj,{i = \,2,...,m), de m equações lineares em η incógnitas,βλ,β2,...,βη, com m > n, escrito em forma matricial como Χβ = y. A aborda-gem de Mínimos Quadrados Lineares tem uma solução única, desde que asη colunas da matriz X sejam linearmente independentes. A solução pode serobtida pela resolução das equações normais (χτχ)β = Χτy.
Quando se encontra uma melhor combinação, o modelo pode termedidas diferentes que são usadas simultaneamente para a definição deuma carga. Muitas vezes, essas medidas têm unidades e escala completa-mente diferentes. Por exemplo, chamadas de banco de dados podem ocor-rer em uma taxa de 5000 vezes por minuto, enquanto um servidor da webpode estar provendo uma página a uma taxa de 30 vezes por minuto. Quan-do estas duas medidas são processadas pelo algoritmo de LLS, um erro de10% na extremidade de banco de dados é de 500 e é elevada ao quadradopara 250.000; onde um erro de 10% ou a extremidade de servidor da web é3 elevada ao quadrado para 9. Uma vez que o valor de erro para o banco dedados é muito maior, o modelo fará sacrifícios extremos à custa do tráfegode servidor da web para adequação a alvos de banco de dados. Um exem-plo em que as unidades e a escala são completamente diferentes é mostra-do na tabela 5 abaixo.
<table>table see original document page 14</column></row><table><table>table see original document page 15</column></row><table>
Tabela 5 - Solução de melhor ajuste não-ponderada
Neste exemplo, a combinação de taxas de execução que mini-miza o erro total pode corresponder à execução de "Script 1" 10 vezes porminuto, "Script 2" 19,62 vezes por minuto e o "Script 3" 9,81 vezes por minu-to. Contudo, a execução dos scripts de acordo com estas taxas, enquanto seminimiza o erro geral, resulta em um erro de 96,2% nos valores de dimensãoreais associados às dimensões B e C, em oposição a um erro de 1,9% paraos valores de dimensão reais associados às dimensões EeF. Em outraspalavras, o erro não é equilibrado através das dimensões. Isto ocorre porqueos valores de dimensão-alvo para a "Medida da Web" são de uma ordem demagnitude abaixo daqueles para a "Medida de Banco de Dados".
Como isto pode não ser um resultado pretendido, atribuições depeso podem ser providas. Há várias formas para a definição de pesos entremedidas: pesos manuais e normalização automática. Os pesos manuais sãovalores que podem ser atribuídos a cada valor de dimensão de medida emum grupo. Os valores de dimensão-alvo e os valores de dimensão de scriptpodem ser multiplicados por este peso, e isto pode resultar em uma soluçãode melhor ajuste diferente.
A tabela 6 abaixo ilustra os resultados quando os valores de a-tribuição de peso são aplicados. Neste caso, os valores de dimensão A, B eC são multiplicados pelo valor de atribuição de peso 10 e os valores de di-mensão para D, E e F são multiplicados pelo valor de atribuição de peso 1.Com estas atribuições de peso aplicadas, a combinação de taxas de execu-ção que minimiza o erro total agora corresponde à execução de "Script 1" 10vezes por minuto, de "Script 2" 12 vezes por minuto e de "Script 3" 6 vezespor minuto. Quando da execução dos scripts de acordo com estas taxas, oerro associado aos valores de dimensão BeC diminui de 96,2% para 20% eo erro associado aos valores de dimensão EeF aumentam de 1,9% para40%. O erro entre as dimensões agora é mais equilibrado._
<table>table see original document page 16</column></row><table>
Tabela 6 - Solução de melhor ajuste ponderada manualmente
Embora as atribuições de peso possam ser usadas para o nive-lamento de efeitos de medidas escalonadas diferentemente, elas tambémpodem ser usadas para a introdução de um tratamento preferencial preten-dido de medidas. Por exemplo, na tabela 7 abaixo, uma preferência é dadaàs dimensões de "Medida da Web", ao invés de às dimensões de "Medidade Banco de Dados" pela atribuição de peso às dimensões de "Medida daWeb" com um fator de 15 e pela atribuição de peso às dimensões de "Medi-da de Banco de Dados" com um fator de 1.<table>table see original document page 17</column></row><table>
Continuação...
<table>table see original document page 17</column></row><table>
Tabela 7 - Ponderada manualmente para a provisão de resultados pre-ferenciais
Os valores de atribuição de peso normalizados também podemser aplicados. Os pesos normalizados tentam encontrar um ajuste que con-sidere todas as medidas igualmente. As tabelas 8 a 10 ilustram várias for-mas nas quais os pesos podem ser normalizados.
A tabela 8 ilustra uma atribuição de peso com base no valor demedida de pico em um grupo. Neste caso, os valores de dimensão-alvo noprimeiro grupo são divididos pelo valor de dimensão-alvo máximo de 10. Istoefetivamente muda as dimensões de alvo no primeiro grupo de 10, 1 e 1 pa-ra 1, 0,1 e 0,1, respectivamente. Os valores de dimensão-alvo no segundogrupo são divididos por 100, o que é o valor de dimensão alvo máximo na-quele grupo. Isto efetivamente muda as dimensões de alvo no segundo gru-po de 100, 24 e 4 para 1, 0,24 e 0,04, respectivamente.<table>table see original document page 18</column></row><table>
Tabela 8 - Atribuição de peso de valor de pico
A tabela 9 abaixo ilustra a atribuição de peso com base na mé-dia dos valores de dimensão-alvo em um grupo. Neste caso, o primeiro gru-po de valores de dimensão-alvo é dividido por 4,6, o que corresponde à mé-dia dos valores de dimensão-alvo 10, 3 e 1, e o segundo grupo de valores dedimensão-alvo é dividido por 42,6, o que é a média dos valores de dimen-são-alvo 100, 24 e 4. Isto efetivamente muda os valores de dimensão-alvono primeiro grupo para 2,2, 0,65 e 0,22, e os valores de dimensão-alvo nosegundo para 2,35,0,56 e 0,09, respectivamnete.
<table>table see original document page 18</column></row><table>
Tabela 9 - Atribuição de peso de valor médio
A tabela 10 abaixo ilustra uma atribuição de peso com base nasoma dos valores de dimensão-alvo em um grupo. Neste caso, o primeirogrupo de valores de dimensão-alvo é dividido por 45, o que corresponde àsoma dos valores de dimensão-alvo 12, 10, 8, 7 e 4, e o segundo grupo devalores de dimensão-alvo é dividido por 25, o que é a soma dos valores dedimensão-alvo 2, 2, 12, 9 e 4. Isto efetivamente muda os valores de dimen-são-alvo no primeiro grupo para 0,27, 0,22, 0,18, 0,16 e 0,09, respectiva-mente, e os valores de dimensão-alvo no segundo grupo para 0,08, 0,08,0,48, 0,36 e 0,16, respectivamente.
<table>table see original document page 18</column></row><table>
Tabela 10 - Atribuição de peso de valor total
A figura 5 é uma porção de uma tabela de resultado de exemplo500 que é gerada pelo modelo de carga após se completarem as etapas dedefinição de medidas, construção da árvore de componente e introdução deperfis de script. A porção da tabela de resultado de exemplo 500 pode sercomunicada para um visor, de modo que um operador possa avaliar a efeti-vidade do modelo de carga no teste de um sistema sob teste. O lado es-querdo da tabela de resultado 500 inclui grupos 510 e scripts 512. O topo databela de resultado 500 inclui uma coluna de taxa de execução 517 e dimen-sões 515. Cada grupo 510 inclui uma linha para o valor de dimensão-alvo.
Por exemplo, conforme mostrado na tabela, os valores de dimensão-alvopara as dimensões "Autenticação de ID", "Autenticação de Alt", "Atualizaçãode Senha", "Autenticação de Grupo" e "Privilégios" conforme relacionado aogrupo de "Plano de Teste" correspondem a 5003, 2345, 45,3, 0 e 0, respec-tivamente. Os valores de dimensão-alvo para as dimensões "Autenticaçãode ID", "Autenticação de Alt", "Atualização de Senha", "Autenticação de Gru-po" e "Privilégios" conforme relacionado ao grupo "Aplicativo de Administra-ção" correspondem a 0, 45,0, 0, 121 e 0, respectivamente.
Cada linha de script 512 inclui valores correspondentes aos valo-res de efeito de dimensão real de um script. O valor de efeito de dimensãoreal de um script corresponde aos valores de efeito de dimensão de um s-cript multiplicado pelo valor de taxa de execução na coluna de taxa de exe-cução correspondente 517. Os valores na coluna de taxa de execução 517correspondem à combinação de taxas de execução que minimiza o erro to-tal, conforme descrito acima. Neste caso, a execução dos scripts "DesabilitarConta", "Pesquisa de Conta", "Atualização de Conta" e "Login de Adminis-tração" 28,6, 10,1, 2,21 e 107 vezes por minuto, respectivamente, minimizao erro total. Quando executado de acordo com estas taxas, o script "Desabi-litar Conta" afeta as dimensões "Autenticação de ID", "Atualização de Se-nha" e "Autenticação de Grupo" 28,6 vezes por minuto e a dimensão "Privi-légios" 57,2 vezes por minuto. O script "Pesquisa de Conta" afeta as dimen-sões "Autenticação de Grupo" e "Privilégios" 10,1 vezes por minuto. O script"Atualização de Conta" afeta as dimensões "Autenticação de ID" e "Autenti-cação de Grupo" 2,21 vezes por minuto e a dimensão "Privilégios" 4,42 ve-zes por minuto. Finalmente, o script "Login de Administração" afeta as di-mensões "Autenticação de ID", "Autenticação de Grupo" e "Privilégios" 107vezes.
Cada grupo 510 também inclui uma linha de ajuste 505. A linhade ajuste 505 inclui valores que descrevem quão próximo o tráfego geradopelo modelo pode estar do tráfego de alvo. Um escore de 0% significa que oalvo foi completamente perdido, e um valor de 100% é uma combinação per-feita. Há muitas formas para interpretação dos dados na tabela de resultado500. Casos em que o escore de ajuste é de 0% podem indicar que nenhumscript toca em uma dimensão de medida. Quando este é o caso, o aplicativode modelo de carga será incapaz de gerar uma solução que gere tráfegopara aquela dimensão. Este problema pode ser corrigido pela introdução denovos scripts ou pela expansão dos scripts existentes.
Os casos em que o escore de ajuste é baixo para várias dimen-sões métricas compartilhadas por um script pode indicar que usuários domundo real, a partir de onde a informação alvo vem, estão utilizando um a-plicativo em particular de uma forma inesperada. Por exemplo, se um scriptfor da página A para a página B, então, para a página C cada vez, mas osusuários do mundo real se desviam da página B 90% do tempo, pode nãohaver uma boa solução.
Se houver muito poucas medidas, e estas medidas forem afeta-das igualmente por vários scripts, então, pode haver muitas soluções possí-veis. Embora qualquer uma destas soluções possam se adequar à carga dealvo, apenas uma é correta. A provisão de dados de alvo adicionais ou deestimativas pode corrigir a situação. Infelizmente, pode não ser óbvio quan-do este problema ocorre, já que o percentual de ajuste pode ser muito bom.Pode precisar ser identificado de forma pró-ativa. Uma pista pode ser umpadrão de repetição na carga gerada, conforme o modelo tentar distribuir osvalores igualmente, mas isto nem sempre ocorre.
Quando há dados limitados compartilhados por vários scripts Eeles têm proporções inválidas, o modelo pode vir com uma solução bizarraque envolve um número negativo de execuções por minuto. Isto ocorrequando o modelo tenta resolver uma proporção inválida, mas não há dadossuficientes para limitação a um comprometimento realístico. Normalmente, omodelo não consideraria uma solução negativa, porque criaria uma grandequantidade de erro, já que nunca se aproximaria dos valores de alvo positi-vos. Contudo, se as medidas de alvo forem compartilhadas por outros s-cripts, e já forem altas demais devido a proporções inválidas, então, rodarum script um número negativo de vezes poderá parecer uma boa idéia (ma-tematicamente). Contudo, isto não é possível no mundo real, então, esteproblema deve ser resolvido com novos scripts e dados adicionais.
A figura 6 é um fluxograma que descreve as operações do apli-cativo de modelo de carga descritas acima. No bloco 600, a informação defootprint para vários scripts utilizados para se testar um sistema de compu-tador pode ser especificada. Conforme descrito acima, uma footprint de s-cript é uma medida da forma pela qual um script afeta o sistema de compu-tador, conforme representando pelo número de vezes por período de tempoque o script exerce operações do sistema de computador. O recebimento dainformação de footprint pode envolver a especificação de uma informação,tal como uma lista de dimensões de medida, que podem ser afetadas peloscript, os valores numéricos para cada dimensão de medida que mede oefeito de uma execução individual daquele script, e a duração mínima espe-rada quando se roda o script em um ambiente limpo. Esta informação podeser especificada através da tabela de exemplo 325 da figura 3 ou de umainterface de usuário diferente.
No bloco 605, a informação alvo pode ser especificada. Confor-me descrito acima, a informação alvo inclui valores de dimensão-alvo cor-respondentes a um número desejado de vezes por período de tempo quecada dimensão acima deve ser afetada. A informação pode incluir uma listade medidas, pesos para cada medida, valores para as dimensões associa-das a cada medida, e fatores de crescimento para cada medida. Esta infor-mação pode ser especificada através da tabela de exemplo 420 da figura 4ou de uma interface de usuário diferente.
No bloco 610, um fator de crescimento pode ser aplicado a todosos valores de dimensão-alvo, de modo a se predizer algum estado futuropara se guiar o modelo, quando da feitura de comprometimentos. O fator decrescimento pode ser aplicado quando os valores de dimensão-alvo forembaseados em valores históricos. O fator de crescimento pode permitir con-verter os valores de dimensão-alvo históricos em valores de dimensão-alvoque sejam mais representativos do estado atual do sistema de computador.Por exemplo, todos os valores de dimensão-alvo podem ser dobrados parase criarem valores de dimensão-alvo históricos para valores mais atuais.
No bloco 615, os pesos podem ser aplicados a todos os valoresde dimensão-alvo para uma dada medida. Os pesos podem ser utilizadospara a definição da importância relativa das medidas. Os pesos podem sermanualmente especificados ou normalizados autenticação. Os pesos manu-ais podem ser utilizados para a provisão de um tratamento especializadopara um grupo de medidas. Os pesos normalizados podem ser utilizadospara se nivelarem os efeitos de medidas escalonadas diferentes. Neste ca-so, as atribuições de peso podem ser com base no valor de dimensão-alvomáximo, em valores de dimensão-alvo médios ou na soma de valores dedimensão-alvo em uma medida.
No bloco 620, o aplicativo de modelo de carga pode determinaro número ótimo de vezes para execução de scripts, de modo a se minimiza-rem as diferenças entre o número de vezes que as dimensões são testadase os valores de dimensão-alvo. O aplicativo de modelo de carga pode utilizarum algoritmo de LLS ou outro algoritmo adequado utilizado para a determi-nação de um conjunto de coeficientes que minimize o erro de um sistema deequações. Por exemplo, o algoritmo de LLS pode determinar o número ótimode vezes para execução dos vários scripts, de modo a se minimizar a dife-rença geral entre os valores de dimensão-alvo e os valores de dimensãoreais. Após a determinação da informação, o aplicativo de modelo de cargapode gerar uma tabela de resultado, tal como a tabela de resultado 500 dafigura 5. A tabela de resultado pode ser comunicada para um visor, de modoque um operador possa interpretar os resultados.
No bloco 625, os scripts podem ser executados de acordo comtaxas de execução determinadas no bloco 620. Por exemplo, com referênciaà figura 1, o processador 115 pode executar os scripts de teste 105 de acor-do com um modelo de carga 120, de modo a se testar a funcionalidade dosvários sistemas de computador, tais como um servidor de e-mail 125, umservidor da web 130 e um servidor de banco de dados 135. Alternativamen-te, o modelo de carga pode ser comunicado para um outro sistema que sejaoperativo para se testar o sistema sob carga.
A figura 7 ilustra um sistema de computador geral 700 o qualpode representar o processador 115 do sistema de teste 100 mostrado nafigura 1; ou o servidor de e-mail 125, o servidor da web 130 e o servidor debanco de dados 135 mostrados na figura 1; ou qualquer outro dispositivo decomputação referenciado aqui. O sistema de computador 700 pode incluirum conjunto de instruções 745 que podem ser executadas para se fazer comque o sistema de computador 700 realize qualquer um ou mais dos métodosou das funções baseadas em computador mostradas aqui. O sistema decomputador 700 pode operar como um dispositivo independente ou pode serconectado, por exemplo, usando-se uma rede, a outros sistemas de compu-tador ou dispositivos periféricos.
Em um emprego em rede, o sistema de computador pode operarna capacidade de um servidor ou como um computador de usuário clienteem um ambiente de rede de usuário de servidor - cliente, ou como um sis-tema de computador de par em um ambiente de rede de par a par (ou distri-buído). O sistema de computador 700 também pode ser implementado comoou incorporado em vários dispositivos, tais como um computador pessoal(PC), um tablet PC, um conversor de sinal de freqüência (STB), um assisten-te digital pessoal (PDA), um dispositivo móvel, um computador palmtop, umcomputador laptop, um computador de mesa, um dispositivo de comunica-ções, um telefone sem fio, um telefone com fio, um sistema de controle, umacâmera, um scanner, uma máquina de fac-símile, uma impressora, um equi-pamento de radiochamada, um dispositivo de confiança pessoal, um apare-lhagem para web, um roteador de rede, um comutador ou uma ponte, ouqualquer outra máquina capaz de executar um conjunto de instruções 745(seqüenciais ou de outra forma) que especifique ações a serem feitas poraquela máquina. Em uma modalidade, o sistema de computador 700 podeser implementado usando-se dispositivos eletrônicos que provejam comuni-cação de voz, vídeo ou dados. Ainda, embora um sistema de computadorúnico 700 possa ser ilustrado, o termo "sistema" também deve ser tomadocomo incluindo qualquer coleção de sistemas ou subsistemas que individualou conjuntamente executem um conjunto ou múltiplos conjuntos de instru-ções para a realização de uma ou mais funções de computador.
Conforme ilustrado na figura 7, o sistema de computador 700pode incluir um processador 705, tal como uma unidade de processamentocentral (CPU), uma unidade de processamento gráfica (GPU) ou ambas. Oprocessador 705 pode corresponder ao processador 115 do sistema de teste100. O processador 705 pode ser um componente em uma variedade desistemas. Por exemplo, o processador 705 pode fazer parte de um computa-dor pessoal padrão ou de uma estação de trabalho. O processador 705 podeser um ou mais processadores gerais, processadores de sinal digital, circui-tos integrados específicos de aplicação, arranjos de porta programável decampo, servidores, redes, circuitos digitais, circuitos analógicos, combina-ções dos mesmos, ou outros dispositivos conhecidos agora ou desenvolvi-dos mais tarde para a análise e o processamento de dados. O processador705 pode implementar um programa de software, tal como um código geradomanualmente (isto é, programado).
O sistema de computador 700 pode incluir uma memória 710que pode se comunicar através de um barramento 720. A memória 710 podeser uma memória principal, uma memória estática ou uma memória dinâmi-ca. A memória 710 pode incluir, mas não está limitada a meios de armaze-namento que podem ser lidos em computador, tais como vários tipos demeios de armazenamento voláteis e não voláteis, incluindo, mas não limi-tando, uma memória de acesso randômico, uma memória apenas de leitura,uma memória apenas de leitura programável, uma memória apenas de leitu-ra eletricamente programável, uma memória apenas de leitura eletricamenteapagável, uma memória flash, uma fita ou um disco magnético, meios óticose similares. Em um caso, a memória 710 pode incluir uma memória cache oude acesso randômico para o processador 705. De forma alternativa ou adi-cional, a memória 710 pode ser separada do processador 705, tal como umamemória cache de um processador, a memória do sistema ou uma outramemória. A memória 710 pode ser um dispositivo de armazenamento exter-no ou um banco de dados para o armazenamento de dados. Os exemplospodem incluir um disco rígido, um disco compacto ("CD"), um disco de vídeodigital ("DVD"), cartão memory stick, um cartão memory stick, um disco flexí-vel, um dispositivo de memória de barramento serial universal ("USB"), ouqualquer outro dispositivo operativo para o armazenamento de dados. Amemória 710 pode ser operável para o armazenamento de instruções 745executáveis pelo processador 705. As funções, os atos ou as tarefas ilustra-dos nas figuras ou descritos aqui podem ser realizados pelo processadorprogramado 705 executando as instruções 745 armazenadas na memória710. As funções, os atos ou as tarefas podem ser independentes do tipo emparticular de conjunto de instrução, meio de armazenamento, processadorou estratégia de processamento, e podem ser realizados por software,hardware, circuitos integrados, firmware, microcódigo e similares, operandosozinhos ou em combinação. Da mesma forma, as estratégias de processa-mento podem incluir um processamento múltiplo, tarefa múltipla, processa-mento em paralelo e similares.
O sistema de computador 700 ainda pode incluir um visor 730,tal como um visor de cristal líquido (LCD), um diodo emissor de luz orgânico(OLED), um visor de painel plano, um visor de estado sólido, um tubo deraios catódicos (CRT), um projetor, uma impressora ou outro dispositivo deexibição conhecido agora ou desenvolvido mais tarde para a extração deuma informação determinada. O visor 730 pode atuar como uma interfacepara o usuário ver o funcionalidade do processador 705, ou especificamentecomo uma interface com o software armazenado na memória 710 ou emuma unidade de drive 715.
Adicionalmente, o sistema de computador 700 pode incluir umdispositivo de entrada 725 configurado para permitir que um usuário interajacom qualquer um dos componentes do sistema 700. O dispositivo de entra-da 725 pode ser um teclado numérico, um teclado completo ou um dispositi-vo de controle de cursor, tal como um mouse, ou um joystick, um visor detela de toque, um controle remoto ou qualquer outro dispositivo operativopara interagir com o sistema 700.O sistema de computador 700 também pode incluir uma unidadede disco ou de drive ótico 715. A unidade de drive de disco 715 pode incluirum meio que pode ser lido em computador 740, no qual um ou mais conjun-tos de instruções 745, por exemplo, software, podem ser embutidos. Ainda,as instruções 745 podem realizar um ou mais dos métodos ou uma lógica,conforme descrito aqui. As instruções 745 podem residir completa ou pelomenos parcialmente na memória 710 e/ou no processador 705, durante umaexecução pelo sistema de computador 700. A memória 710 e o processador705 também podem incluir meios que podem ser lidos em computador, conforme discutido acima.
A presente exposição contempla um meio que pode ser lido emcomputador 740 que inclui instruções 745 ou recebe e executa instruções745 em resposta a um sinal propagado, de modo que um dispositivo conec-tado a uma rede 750 possa comunicar voz, vídeo, áudio, imagens ou quais-quer outros dados pela rede 750. As instruções 745 podem ser implementa-das com hardware, software e/ou firmware, ou qualquer combinação dosmesmos. Ainda, as instruções 745 podem ser transmitidas ou recebidas pelarede 750 através de uma interface de comunicação 735. A interface de co-municação 735 pode ser uma parte do processador 705 ou pode ser umcomponente em separado. A interface de comunicação 735 pode ser criadaem software ou pode ser uma conexão física em hardware. A interface decomunicação 735 pode ser configurada para conexão com uma rede 750,meios externos, o visor 730 ou quaisquer outros componentes no sistema700, ou combinações dos mesmos. A conexão com a rede 750 pode seruma conexão física, tal como uma conexão de Ethernet com fio, ou pode serestabelecida de forma sem fio, conforme discutido abaixo. Da mesma forma,as conexões adicionais com outros componentes do sistema 700 podem serconexões físicas ou podem ser estabelecidas de forma sem fio.
A rede 750 pode incluir redes com fio, redes sem fio ou combi-nações das mesmas. A rede sem fio pode ser uma rede de telefonia celular,uma rede 802.11, 802.16, 802.20, ou WiMax. Ainda, a rede 750 pode seruma rede pública, tal como a Internet, uma rede privada, tal como uma intra-net, ou combinações das mesmas, e pode utilizar uma variedade de protoco-los de rede agora disponíveis ou desenvolvidos mais tarde, incluindo, masnão limitando, protocolos de rede baseados em TCP / IP.
O meio que pode ser lido em computador 740 pode ser um meioúnico ou o meio que pode ser lido em computador 740 pode ser um meioúnico ou múltiplos meios, tal como um banco de dados centralizado ou dis-tribuído, e/ou caches associados e servidores, que armazenam um ou maisconjuntos de instruções. O termo "meio que pode ser lido em computador"também pode incluir qualquer meio que possa ser capaz de armazenar, co-dificar ou portar um conjunto de instruções para execução por um processa-dor ou que pode fazer com que um sistema de computador realize qualquerum ou mais dos métodos ou das operações mostrados aqui.
O meio que pode ser lido em computador 740 pode incluir umamemória de estado sólido, tal como cartão de memória ou outro pacote quealoje uma ou mais memórias apenas de leitura não voláteis. O meio que po-de ser lido em computador 740 também pode ser uma memória de acessorandômico ou uma outra memória regravável volátil. Adicionalmente, o meioque pode ser lido em computador 740 pode incluir um meio magneto-óticoou ótico, tal como um disco ou fitas ou um outro dispositivo de armazena-mento para a captura de sinais de orifício passante, tal como um sinal co-municado por um meio de transmissão. Um anexo de arquivo digital a um e-mail ou um outro arquivo ou conjunto de arquivos de backup de informaçãoindependente pode ser considerado como um meio de distribuição que podeser um meio de armazenamento tangível. Assim sendo, a descrição podeser considerada como incluindo qualquer um ou mais dentre um meio quepode ser lido em computador ou um meio de distribuição e outros equivalen-tes e meios sucessores, em que dados ou instruções possam ser armaze-nados.
De forma alternativa ou adicional, implementações de hardwarededicado, tais como circuitos integrados específicos de aplicação, arranjoslógicos programáveis e outros dispositivos de hardware podem ser construí-dos para a implementação de um ou mais dos métodos descritos aqui. Asaplicações que podem incluir o aparelho e os sistemas de várias modalida-des amplamente podem incluir uma variedade de sistemas eletrônicos e decomputador. Uma ou mais modalidades descritas aqui podem implementarfunções usando dois ou mais módulos ou dispositivos de hardware interco-nectados específicos com sinais de controle e de dados relacionados quepodem ser comunicados entre e através dos módulos, ou como porções deum circuito integrado específico de aplicação. Assim sendo, o presente sis-tema pode envolver implementações de software, firmware e hardware.
Assim sendo, o método e o sistema podem ser realizados emhardware, software ou uma combinação de hardware e de software. O mé-todo e o sistema podem ser realizados de uma forma centralizada em pelomenos um sistema de computador ou de uma forma distribuída em que ele-mentos diferentes estão espalhados através de vários sistemas de computa-dor interconectados. Qualquer tipo de sistema de computador ou outro apa-relho adaptado para a realização dos métodos descritos aqui é adequado.Uma combinação típica de hardware e de software pode ser um sistema decomputador de finalidade geral com um programa de computador que,quando estiver sendo carregado e executado, controle o sistema de compu-tador, de forma que realize os métodos descritos aqui.
O método e o sistema também podem ser embutidos em umproduto de programa de computador, o qual inclui todos os recursos permi-tindo a implementação dos métodos descritos aqui, e que, quando carregadoem um sistema de computador, é capaz de realizar estes métodos. O pro-grama de computador no presente contexto significa qualquer expressão,em qualquer linguagem, código ou notação, de um conjunto de instruçõespretendidas para se fazer com que um sistema tendo uma capacidade deprocessamento de informação realize uma função em particular diretamenteou após um ou ambos os seguintes: a) conversão para uma outra lingua-gem, código ou notação; b) reprodução de uma forma de material diferente.
A partir do precedente pode ser visto que as modalidades mos-tradas aqui proveem uma abordagem para a otimização do teste de siste-mas de computador. Por exemplo, medidas e dimensões para um sistemapodem ser determinadas. Então, a footprint de scripts de teste pode ser de-terminada. A footprint pode incluir valores de efeito de dimensão correspon-dentes ao número de vezes que uma dimensão é afetada por um script. Emseguida, valores de dimensão-alvo correspondentes a um número desejadode vezes por período que cada dimensão deve ser afetada são especifica-dos. Então, um algoritmo de LLS é utilizado para a determinação do númerode vezes para execução do script no período, de modo a se minimizar a dife-rença entre o número real de vezes que as dimensões são afetadas e osvalores de dimensão-alvo. Finalmente, os scripts são executados no sistemade computador pelo número determinado de vezes no período de tempo. Osistema de computador por sua vez exerce operações de outros sistemas decomputador de acordo com os scripts.
Embora o método e o sistema tenham sido descritos com refe-rência a certas modalidades, será entendido por aqueles versados na técni-ca que várias mudanças podem ser feitas e equivalentes podem ser substi-tuídos, sem que se desvie do escopo. Além disso, muitas modificações po-dem ser feitas para adaptação de uma situação ou de um material em parti-cular aos ensinamentos, sem que se desvie de seu escopo. Portanto, é pre-tendido que o presente método e o sistema não sejam limitados à modalida-de em particular descrita, mas que o método e o sistema incluam todas asmodalidades caindo no escopo das reivindicações em apenso.