Pré-requisitos - Allmatech ALM Team
Hands-On LabGerenciamento de Laboratórios com Visual Studio 2012Vers?o do Lab:11.0.50727.1 (RTM)?ltima atualiza??o:21/08/2012Tradu??o: 12/09/2012índice TOC \h \z \t "Heading 3,2,pp Topic,1,PP Procedure start,3" vis?o geral PAGEREF _Toc333320817 \h 3Exercício 1: preparando uma maquina agente de teste PAGEREF _Toc333320818 \h 4Exercício 2: configurando um controlador de teste PAGEREF _Toc333320819 \h 5Exercício 3: criando um ambiente padr?o PAGEREF _Toc333320820 \h 7Exercício 4: prepara??o para testes automatizados PAGEREF _Toc333320821 \h 18Exercise 5: criando e executando uma defini??o Build-Deploy-Test PAGEREF _Toc333320822 \h 26Vis?o GeralNeste laboratório, você vai aprender sobre alguns dos novos recursos e melhorias no gerenciamento de laboratório para o Visual Studio 2012. Isso inclui a cria??o de ambientes padr?es, que permite adicionar ambiente de teste no lab management, sem pré-requisitos de infraestrutura e nenhuma configura??o necessária no Team Foundation Server, além disso, n?o há mais a necessidade de gastar muito tempo com os agentes de teste, como existe apenas um tipo de agente de teste e os agentes s?o automaticamente instalados nos ambientes de teste. Após concluir este laboratório, você terá uma boa ideia de como é fácil e rápido obter uma constru??o, implanta??o e configura??o de teste de fluxo de trabalho usando o seu existente ambiente de desenvolvimento.Pré-requisitosPara conclus?o deste laboratório, você vai precisar do Visual Studio 2012, máquina virtual fornecida pela Microsoft. Para mais informa??es sobre a utiliza??o da máquina virtual, consulte este blog post.Sobre o cenário Fabrikam Fiber Este conjunto de hands-on-lab usa uma empresa fictícia, Fabrikam Fiber, seve de exemplo sobre os cenários que você está aprendendo. Fabrikam Fibra oferece televis?o a cabo e servi?os relacionados para os Estados Unidos. Eles est?o crescendo rapidamente e adotaram o Windows Azure para hospedar seu web site voltado para os clientes diretamente para os usuários finais, que lhes permitam bilhetes de autoatendimento e técnicos de rua. Eles também usam uma aplica??o local MVC para seus representantes de servi?o e para cliente administrar os seus pedidos.Neste conjunto de laboratórios práticos, você vai participar uma série de cenários que envolvem a equipe de desenvolvimento e testes em fibra Fabrikam. A equipe, que é composta de 8-10 pessoas, decidiu usar o Visual Studio ferramentas de gest?o de ciclo de vida de aplicativos para gerenciar seu código fonte, executar sua cria??o, testar seus sites, e planejar e acompanhar o projeto.ExercíciosEste hands-on lab inclui os seguintes exercícios:Preparando uma maquina agente de testeConfigurando um controlador de testeCriando um ambiente padr?oPrepara??o para testes automatizadosCriando e executando uma defini??o build-deploy-testTempo estimado para conclus?o deste laboratório: 60 minutos.Exercício 1: Preparando uma Máquina Agente de TesteNeste exercício, vamos preparar a segunda máquina virtual que será utilizada mais tarde neste laboratório. Para minimizar o tamanho do download e simplificar a prepara??o necessária, vamos criar e usar outra inst?ncia do Visual Studio 2012 máquina virtual como uma máquina de agente de teste.Nota: As instru??es fornecidas nesta se??o aplicam-se para o Hyper-V executado no Windows Server 2008 R2 SP1, mas as etapas gerais geralmente se aplicam ao Windows 8 Hyper-V.Neste ponto, você já deve ter uma instancia da maquina virtual Visual Studio 2012 configura??o depois de seguir a sec??o pré-requisitos deste documento. Execute esta etapa de instala??o se já n?o concluída.No Hyper-V Manager, crie um snapshot da maquina virtual de trabalho e renomeie com o algum nome parecido com “Visual Studio 2012 Base”.Bot?o direito sobre a base do snapshot e selecione a op??o Export.Na janela Export Virtual Machine, escolha o local que tenha espa?o e isso é em um diferente disco físico (se possível) .Clique no bot?o Export para iniciar o processo de exporta??o. Isso vai tomar alguns minutos para se completar.Depois da exporta??o completa clique no bot?o Import Virtual Machine dentro do Hyper-V Manager.Selecione o local das exporta??es recentes e tenha certeza de ter selecionado o “Copy the virtual machine (create a new unique ID)” op??es em import settings.Inicie a primeira instancia da maquina virtual (o nome da maquina é VSALM).Inicie a segunda instancia da maquina virtual e mude o nome da maquina virtual para VSALM2. Execute o arquivo ConImagemVSALM2.bat encontrado no c:\util para mudar o nome da maquina virtual e realizar outras configura??es necessárias. Você pode logar como Administrator – todos usuários possui a senha: P2ssw0rd.Reinicie a maquina recém formada VSALM2 de modo que o novo nome ganhe efeito.Garanta que as duas maquinas virtuais se comuniquem entre elas. Uma maneira de fazer isto e garantir que a configura??o de ambas esteja usando a configura??o Internal Only e adaptador de rede virtual seja configurada igualmente como VLAN. Entre em VSALM2 e garanta que você pode pingar na maquina VSALM abra uma janela do prompt de comando e digite “ping -4 VSALM”. Se este for um sucesso, você está pronto para continuar com o laboratório.Capture um Snapshot da maquina virtual VSALM2 de modo que você pode redefinir o laboratório mais tarde se desejar.Exercício 2: Configurando um Controlador de TesteNesse exercício você vai aprender como configurar um controlador de teste. O software Test Controller já está instalado e configurado na maquina virtual, ent?o nos vamos dar uma olhada rápida nisso.Login como Adam. Todos os usuários possuem a senha: P2ssw0rd.Inicie o Test Controller Configuration Tool no Start | All Programs | Microsoft Visual Studio 2012.Figura SEQ Figure \* ARABIC 1Iniciando o Test Controller Configuration ToolNa janela ConImagem Test Controller, observe que o test controller já está registrado como com um team project e aquele laboratório dec onta de servi?o é especificado. Registrando com um team project collection vai nos habilitar a criar um ambiente virtual de testes automatizados posteriormente nesse laboratório. Se você só quiser rodar os testes do Visual Studio, você faria em vez de manter o controlador de teste n?o registrados.Imagem SEQ Figure \* ARABIC 2Configura??o doTest Controller Clique no bot?o Close e saia sem aplicar as configura??es.Figura SEQ Figure \* ARABIC 3Saindo da configura??o do test controller sem mudan?asNota: Se você quiser fazer altera??es na configura??o do controlador de teste para fins fora do laboratório, executar o script ConImagemTestController.bat encontrada na pasta c:\util na máquina virtual.Temos algumas modifica??es n?o-padr?o no lugar para que URLs demo venha funcionar corretamente (como ), e esse script temporariamente desativa essas modifica??es para que o test controller possa concluir corretamente a configura??o.Exercicio 3: Criando um ambiente padr?oNeste exercício, você vai aprender como é facil criar um novo ambiente pad?o para usar com os seus cenários de testes automatizados. Para o propósito deste laboratório, nós vamos criar o ambiente padr?o na segunda máquina virtual que preparamos previamente. Note que isso realmente n?o importa se esta é uma máquina real ou uma máquina virtual, rodando no Hyper-V ou no VMware, contanto que você possa se conectar a ele, você pode usá-lo para o seu teste.Inicie o Microsoft Test Manager noStart | All Programs | Microsoft Visual Studio 2012.Figura SEQ Figure \* ARABIC 4Iniciando o Microsoft Test ManagerMicrosoft Test Manager vai se conectar em um team project que foi o ultimo na inicializa??o passada. Selecione o bot?o Home no canto superior esquerdo para selecionar um projeto diferente.Figura SEQ Figure \* ARABIC 5Local do home buttonClique no link Change Project.Figura SEQ Figure \* ARABIC 6Mudando o projeto ativoQuando você estiver solicitado conex?o em um team project, selecione o VSALM -> FabrikamFiberCollection -> FabrikamFiber e selecione o bot?o Connect Now. Se você for solicitado para que feche todos os itens abertos, vá em frente e fa?a isso.Imagem SEQ Figure \* ARABIC 7Conectando-se a um team projectSelecione o plano de teste Default.Imagem SEQ Figure \* ARABIC 8Selecionando um plano de testeNo Microsoft Test Manager, selecione a flecha no menu principal logo a direita do Testing Center e selecione Lab Center.Imagem SEQ Figure \* ARABIC 9Navegando para o Lab Center no Microsoft Test ManagerSelecione o bot?o New na se??o do ambiente.Imagem SEQ Figure \* ARABIC 10Criando um novo ambiente padr?o.No nosso caso, nos vamos criar um novo standard environment, o que significa que vamos usar uma máquina existente que já está configurado e pronto para testar. Para o nome do novo ambiente digite “Fabrikam BDT” selecione o padr?o para Build-Deploy-Test e ent?o selecione o bot?o Next para continuar.Imagem SEQ Figure \* ARABIC 11Criando um novo ambiente padr?o.Nota: No Visual Studio 2012, n?o haverá mais suporte para recursos de modelos máquinas virtuais de, que ser?o geridos em SCVMM 2012, em vez de em Lab Manager. Existe também uma melhor separa??o de interesses entre o Team Foundation Server administradores e administradores SCVMM, como a conta de servi?o do TFS já n?o tem de ser um administrador em todos os hosts.Selecione o bot?o Add Machine.Imagem SEQ Figure \* ARABIC 12Adicionando uma maquina ao novo ambiente padr?oNós vamos usar a maquina virtual duplicada aqui, ent?o digite “VSALM2” para o nome do computador selecione o “Web Server”.Para user name “.\Adam” e “P2ssw0rd” para o password.Imagem SEQ Figure \* ARABIC 13Adicionando maquina ao novo ambiente padr?oNota: Você pode adicionar mais máquinas no ambiente, se necessário para preencher papéis diferentes para testes, tais como servidor de banco de dados, controlador de domínioSelecione o step Advanced no lado esquerdo.Imagem SEQ Figure \* ARABIC 14Passando para a etapa avan?ada ambiente de instala??oAqui nós podemos selecionar o test controller associado com o novo ambiente e opcionalmente configurado para rodar teste UI. Selecione o check box “ConImagem environment to run UI tests”,selecione Web Server, siga em frente e especifique que a conta Adam vai ser usada para rodar o agente de teste.Imagem SEQ Figure \* ARABIC 15Configurando o agente de teste para rodar o UI testeSelecione o bot?o Verify para verificar as sele??es feitas para o novo ambiente padr?o. Enquanto você espera, observe que o assistente garante que o controlador de teste está disponível, que as máquinas e credenciais fornecidas v?o funcionar, e que a máquina ainda n?o faz parte de um outro ambiente.Imagem SEQ Figure \* ARABIC 16Verificando o novo ambiente selecionado e feitoApós verifica??o do passo, selecione o bot?o Finish para iniciar o processo de instala??o do agente de teste no ambiente. Observe que a instala??o do agente de teste e a configura??o prosseguem automaticamente.Nota: A instala??o e configura??o do agente de teste está cuidando para você, enquanto que com as vers?es anteriores, você tinha que fazer isso sozinho. Vai levar alguns minutos até para que o agente de teste instale e para o ambiente novo padr?o para estar pronto para ser utilizado. Como o agente de teste está instalado, a VM irá reiniciar automaticamente, se necessário.Imagem SEQ Figure \* ARABIC 17Iniciando o processo de cria??o do ambiente padr?o você está esperando o agente de teste ser instalado e configurado, observe que o status da instala??o passa por uma série de estados para mantê-lo informado de progresso. Esta etapa vai levar algum tempo para ser concluído.Imagem SEQ Figure \* ARABIC 18Status da cria??o do ambiente padr?o Depois que o test agente machine tiver reiniciado automaticamente (VSALM2), a conta de Adam será logada automaticamente e a cria??o do ambiente será finalizada. Levar?o alguns minutos para que o processo se conclua, mas uma vez pronta, você deve ver que na janela Test Agent Status irá aparecer o status Online. Imagem SEQ Figure \* ARABIC 19Tela Test Agent Status rodando o test agent machineTambém, observe que o ambiente é relatado inicialmente no estado Ready (pronto) dentro do Microsoft Test Manager. Pode levar alguns minutos para que a máquina controladora de teste relate o estado Ready mesmo depois que a Máquina Agente de Test esteja online. Estamos agora preparados para criar um fluxo automatizado Build-Deploy-Test.Imagem SEQ Figure \* ARABIC 20Microsoft Test Manager mostrando que o ambiente está pronto (Read)Exercício 4: Prepara??o Para o Teste AutomatizadoNeste exercício, você usará um teste codificado de interface existente para automatizar um caso de teste existente e criar configura??es de teste para indicar que gostaríamos de usar um novo ambiente padr?o para realizar testes automatizados.Vamos supor que já temos um caso de teste no lugar que tem sido utilizado pela equipe Fabrikam Fiber para testes manuais, e que já tem uma grava??o associada a ela. Adicionalmente, o time criou um coded UI test baseado na grava??o permitindo-lhes iniciar um teste automatizado a qualquer momento em ambiente de desenvolvimento.Inicie o Visual Studio 2012 no atalho na barra de tarefas em Start | All Programs | Microsoft Visual Studio 2012.Imagem SEQ Figure \* ARABIC 21Iniciando o Visual Studio 2012Abra a solution FabrikamFiber.CallCenter do branch de Dev no Source Control Explorer.Imagem SEQ Figure \* ARABIC 22Janela do Source Control Explorer Selecione Build | Build Solution no menu principal para compilar a solu??o. Isso irá garantir que os coded UI tests estar?o disponíveis quando selecionar uma automatiza??o para o caso de teste existente.No Team Explorer – Home, selecione o link New Query.Imagem SEQ Figure \* ARABIC 23Criando uma query temporáriaNa janela new query, mude a cláusula do campo Work Item Type com o valor “Test Case”, e ent?o selecione o bot?o Run.Imagem SEQ Figure \* ARABIC 24Localizando o caso de teste existenteDê um duplo clique no caso de teste com o título de “Create new customer record” para abrir o work item. Imagem SEQ Figure \* ARABIC 25Abrindo o caso de teste existenteSelecione o link da aba Associated Automation.Imagem SEQ Figure \* ARABIC 26Local do link Associated AutomationSelecione o bot?o de reticências (…) para escolher um teste a ser usado para a automatiza??o.Imagem SEQ Figure \* ARABIC 27Local do bot?o reticênciasNa janela Choose Test, selecione o teste CodedUITestMethod1 e selecione o bot?o OK.Imagem SEQ Figure \* ARABIC 28Selecionando o teste a ser usado para automatiza??oSelecione o bot?o Save Work Item para salvar o caso de teste.Imagem SEQ Figure \* ARABIC 29Salvando o novo caso de testeObserva??o: Você pode também usar a ferramenta command line (tcm.exe) para criar casos de teste de uma biblioteca de testes automatizados.Agora que temos o caso de teste com a automatiza??o, vamos criar as configura??es de teste para usarmos mais tarde nos exercícios. No Microsoft Test Manager, navegue para Lab Center – Test – Settings e selecione o bot?o New. Imagem SEQ Figure \* ARABIC 30Criando configura??es de testes automatizadosPara a propriedade Name, digite “Fabrikam BDT Test Settings”. Depois selecione a op??o Automated.Imagem SEQ Figure \* ARABIC 31Criando configura??es de testes automatizadosSelecione o passo Roles no lado esquerdo e selecione a única regra que está listada. Esta regra se relaciona ao ambiente Fabrikam BDT que você criou no exercício anterior.Imagem SEQ Figure \* ARABIC 32Criando configura??es de testes automatizadosSelecione o passo Data and Diagnostics para ver as op??es de coleta de dados que você pode opcionalmente habilitar para a regra Web Server.Imagem SEQ Figure \* ARABIC 33Passo Data and Diagnostics para as configura??es de testePara fins deste lab, deixe as op??es padr?o selecionadas e ent?o selecione o passo Advanced. Observe que podemos especificar itens de implanta??o adicionais, scripts a serem rodados após a execu??o do teste e mais.Imagem SEQ Figure \* ARABIC 34Passo Advanced para as configura??es de testeSelecione o bot?o Finish para salvar a nova configura??o de teste automatizado.Imagem SEQ Figure \* ARABIC 35Criando configura??es de teste automatizadoExercício 5: Criando e Rodando uma defini??o Build-Deply-TestNeste exercício, você irá aprender como criar uma defini??o de build que irá compilar, implantar e testar a solution Fabrikam Fiber usando o plano de teste e o ambiente padr?o que você acabou de criar.O primeiro passo é simplesmente criar uma build definition que usaremos como parte do fluxo build-deploy-test.No Visual Studio, navegue até Team Explorer – Builds e selecione o link New Build Definition.Imagem SEQ Figure \* ARABIC 36Criando uma nova defini??o de buildObserva??o: Nós podemos tecnicamente utilizar a defini??o de build existente “Nightly Fabrikam (Dev)” como parte do nosso fluxo build-deploy-test, mas o nome do build indica que está configurado para rodar em um agendamento, ent?o nós vamos em frente e criar uma nova defini??o. Digite “FabrikamFiber Dev branch build” para o nome da defini??o de build e ent?o vá para a aba Workspace.Imagem SEQ Figure \* ARABIC 37Criando uma nova defini??o de buildNa aba Workspace, mude a propriedade Source Control Folder para $/FabrikamFiber/Dev e ent?o vá para a aba Build Defaults.Imagem SEQ Figure \* ARABIC 38Criando uma nova defini??o de buildNa aba Build Defaults, configure a saída do build para o local \\vsalm\ffdrops e ent?o vá para a aba Process.Imagem SEQ Figure \* ARABIC 39Criando uma nova defini??o de buildObserva??o: A pasta drop foi configurada previamente na máquina virtual. Se você precisar criar a sua própria pasta drop no compartilhamento de rede, você deve garantir que a conta usada pelo build controller tem acesso apropriado.Na aba Process, amplie a se??o Advanced e altere a propriedade Disable Tests para True. Nós só queremos que esta defini??o de build seja responsável por criar o build que será usado para o teste automatizado.Imagem SEQ Figure \* ARABIC 40Desabilite a execu??o de testes para o buildPressione Ctrl + S para salvar a nova defini??o de build.Agora vamos criar uma defini??o de build que iremos executar no nosso desejado fluxo build-deploy-test usando todas as pe?as que configuramos para o teste automatizado.Selecione o link New Build Definition na janela Team Explorer – Builds.Digite “Build Deploy Test” para o nome da defini??o de build e ent?o vá para a aba Workspace.Imagem SEQ Figure \* ARABIC 41Criando uma nova defini??o de build para o fluxo build-deploy-testNa aba Workspace, mude a propriedade Source Control Folder para $/FabrikamFiber/Dev e ent?o vá para a aba Build Defaults.Imagem SEQ Figure \* ARABIC 42Criando uma nova defini??o de build para o fluxo build-deploy-testNa aba Build Defaults, configure o build para que ele n?o copie os arquivos de saída para uma pasta drop e vá para a aba Process.Imagem SEQ Figure \* ARABIC 43Criando uma nova defini??o de build para o fluxo build-deploy-testNa aba Process, selecione o bot?o Show Details.Imagem SEQ Figure \* ARABIC 44Criando uma nova defini??o de build para o fluxo build-deploy-testSelecione o arquivo LabDefaultTemplate.11.xaml como o build process template.Imagem SEQ Figure \* ARABIC 45Criando uma nova defini??o de build para o fluxo build-deploy-testSelecione a linha Lab Process Settings na se??o de par?metros do processo de build, e ent?o selecione o bot?o reticências para iniciar o assistente Lab Workflow Parameters.Imagem SEQ Figure \* ARABIC 46Criando uma nova defini??o de build para o fluxo build-deploy-testSelecione o passo Enviroment no lado esquerdo e ent?o selecione o ambiente recentemente criado “Fabrikam BDT”.Imagem SEQ Figure \* ARABIC 47Definindo configura??es do lab process para o fluxo build-deploy-test workflowSelecione o passo Build no lado esquerdo e ent?o selecione “FabrikamFiber Dev branch build”. Deixe como padr?o selecionado queue new build.Imagem SEQ Figure \* ARABIC 48Definindo configura??es do lab process para o fluxo build-deploy-test workflowSelecione o passo Deploy no lado esquerdo e ent?o selecione a op??o “Deploy the build”.Imagem SEQ Figure \* ARABIC 49Definindo configura??es do lab process para o fluxo build-deploy-test workflowNós agora precisamos especificar qual script rodar no ambiente de teste afim de implantar nosso build para teste. Clique no bot?o Add para adicionar uma máquina de deployment na lista, e ent?o selecione dentro da coluna “Deployment script and arguments”."$(BuildLocation)\Deploy\deploy.bat" "$(BuildLocation)"Observa??o: Este script de implanta??o simplesmente executa um script que faz o trabalho sujo ao implantar a aplica??o FabrikamFiber Web depois de compilada. O arquivo deploy.bat é parte do projeto FabrikamFiber.Web e está configurado para deixar os arquivos de saída no local de build. O local do build (localizado em \\vsalm\ffdrops) também é passado como par?metro para o script de implanta??o para que ele saiba onde pegar a última vers?o da aplica??o.Pressione a tecla Tab para aceitar as altera??es no campo.Imagem SEQ Figure \* ARABIC 50Definindo configura??es do lab process para o fluxo build-deploy-test workflowSelecione o passo Test no lado esquerdo e ent?o selecione a op??o “Run these tests in the enviroment”. Certifique-se que “Fabrikam BDT Test Settings” está selecionado.Imagem SEQ Figure \* ARABIC 51Definindo configura??es do lab process para o fluxo build-deploy-test workflowSalve o par?metros do fluxo alterados selecionando o bot?o Finish.Imagem SEQ Figure \* ARABIC 52Salvando as altera??es dos par?metros do fluxoSalve a defini??o de build pressionando Ctrl + S.? hora de testar nosso novo fluxo build-deploy-test. Na vis?o Team Explorer – Builds, clique com o bot?o direito do mouse no build Build Deploy Test e selecione a op??o Queue New Build.Imagem SEQ Figure \* ARABIC 53Enfileirando o fluxo build-deploy-test Na janela Queue Build, use as op??es padr?o e selecione o bot?o Queue para continuar.Imagem SEQ Figure \* ARABIC 54Enfileirando o fluxo de build-deploy-testUma vez o build enfileirado, dê um duplo clique no build da se??o My Builds do Team Explorer para abri-lo.Imagem SEQ Figure \* ARABIC 55Monitorando o processo de buildObserva??o: O fluxo build-deploy-test deve levar alguns minutos para ser concluío os testes automatizados est?o rodando no ambiente de teste, você pode assistir a execu??o do coded UI test na máquina virtual VSALM2. Você provavelmente n?o deveria fazer isso, já que é fácil interferir no teste usando o mouse e o teclado, ent?o, uma alternativa pode ser habilitar a op??o Video Recorder quando especificar as configura??es de teste.Imagem SEQ Figure \* ARABIC 56Teste de Interface codificado rodando em um ambiente de testeUma vez o build concluído, veja o resumo para ter certeza que tudo foi como o esperado.Imagem SEQ Figure \* ARABIC 57Visualiza??o do Resumo do BuildAgora vamos realizar algumas mudan?as na aplica??o web para que o nosso teste capture uma falha. Isso irá mostrar como o nosso fluxo build-deploy-test pode nos ajudar a capturar a refress?o dos erros na interface do usuário.No Solution Explorer, carregue o arquivo Create.cshtml do projeto FabrikamFiber.Web (localizado na pasta Views\Customers) e comente o bot?o input que tem o valor “Create” para simular um esquecimento acidental do desenvolvedor deixando uma mudan?a que quebra a interface do usuário.Imagem SEQ Figure \* ARABIC 58Simulando um erro na interface do usuárioSalve suas altera??es pressionando Ctrl + S.Na janela Team Explorer – Pending Change,s selecione o bot?o Check In.Imagem SEQ Figure \* ARABIC 59Check in de mudan?asVolte a janela Team Explorer – Builds, enfileire novamente a defini??o de build Build Deploy Test e observe que o site atualizado está compilado, implantado no ambiente de teste, o coded UI test identifica que um bot?o está faltando, e o relatório do build mostra que o teste falhou como o esperado.Imagem SEQ Figure \* ARABIC 60Coded UI test rodando em um ambiente de teste com o bot?o faltandoImagem SEQ Figure \* ARABIC 61Falha no teste como esperado ................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.