locust-logo

Efetuando teste de carga com o Locust

Os testes de carga consistem em colocar uma demanda em um sistema de software ou dispositivo e medir a sua resposta. Este tipo de teste é realizado para determinar o comportamento de um sistema sob condições normais e picos de carga. Ela ajuda a identificar a capacidade máxima de operação de uma aplicação, bem como os gargalos e determinar qual elemento está causando lentidão.

Uma das ferramentas mais conceituadas nesse tipo de testes é o Apache JMeter™, porém hoje iremos abordar o Locust, uma ferramenta escrita em Python extremamente simples e poderosa.
(mais…)

Lançamentos Novatec: Android, Pentest e Segurança Web

capa_ampliada9788575224793

Android Essencial

Título é um resumo do conteúdo do best-seller Google Android

Android Essencial é um resumo do livro Google Android – 5ª edição, com o objetivo de preparar o leitor rapidamente para o mercado. É para leitores que precisam aprender rapidamente, seja por questões de estudos ou por uma necessidade de trabalho.

O Android é o sistema operacional móvel mais utilizado no mundo, e o objetivo deste livro é apresentar ao leitor os conceitos essenciais do desenvolvimento de aplicativos para Android, por meio de uma explicação simples e prática.

Android Essencial utiliza o Android Studio, focado nas boas práticas de interface do Google e do Material Design, e oferece uma abordagem prática direcionada ao desenvolvimento de aplicativos. Durante a leitura você vai desenvolver um aplicativo completo, com boa usabilidade de interface e com acesso a web services e banco de dados, além de utilizar recursos de multimídia e mapas.

O livro também apresenta capítulos resumidos dos principais conceitos da arquitetura do Android, como notificações, intents, broadcast receivers, services, alarmes, mensagens de push, câmera e fotos. 

Sobre o autor

Ricardo R. Lecheta é formado em Ciências da Computação e pós-graduado em Gestão do Desenvolvimento de Software pela PUC-PR. Atualmente, trabalha com desenvolvimento e consultoria de tecnologias mobile para diversas plataformas. Pode ser contatado pelo email [email protected].

Capa_PentestSemFio_2015_12_09.indd

Pentest em redes sem fio

Conteúdo aborda as principais formas de ataque que podem ser usadas para acessar redes sem fio

O livro Pentest em redes sem fio tem o intuito de capacitar o leitor a entender e realizar o pentest em redes sem fio. Como complemento da obra Introdução ao pentest, do mesmo autor, este livro é focado exclusivamente em redes sem fio, mostrando as principais formas de ataque que um indivíduo mal-intencionado pode utilizar para acessar a sua rede sem fio.

Simulando o pensamento de um cracker, este livro apresenta os passos e as técnicas necessárias para se obter o acesso à rede sem fio:

  • Conhecer o funcionamento de uma rede sem fio na teoria e na prática: quais são os principais tipos de criptografia e como funcionam.
  • Testar laboratórios e ambientes simulados: vamos entender por que os principais sistemas criptográficos falham e por que é tão simples hackearuma rede sem fio.
  • Realizar o mapeamento de redes sem fio com softwares específicos para essa finalidade (GPS USB) e descobrir a localização física dos pontos de acesso.
  • Saber como se defender por meio dos softwares de monitoramento e de detecção de intruso (wIDS e wIPS).
  • Aprender a criar, de forma didática e explicativa, as redes sem fio mais seguras que existem: redes empresariais com certificados digitais autoassinados.
  • Com todo esse armamento em mãos, realizar uma simulação de pentest e, ao final, aprender como é feita a escrita de um relatório de pentest para redes sem fio.

Pentest em redes sem fio aborda os testes de intrusão em redes sem fio em detalhes. Após a leitura, certamente as redes nunca mais serão as mesmas.

Sobre o autor

Daniel Moreno é autor do livro Introdução ao pentest (Novatec Editora, 2015), bacharel em Ciências da Computação pela UNESP (campus de Rio Claro) e usuário Linux desde 2008. Atualmente, é pentester e analista de redes. Entusiasta da área de segurança da informação, também escreve e ministra treinamentos sobre o assunto.

Capa_SegDesenvWeb_2016_02_01.indd

Segurança para desenvolvedores web

Título ensina a proteger aplicações em novas áreas, como os micro serviços 

Desenvolvedores web geralmente não gostam de gastar tempo deixando suas aplicações web seguras, mas isso, definitivamente, faz parte de seu trabalho.

Segurança para desenvolvedores web é um guia prático que vai ajudar nessa tarefa. O livro oferece as informações mais recentes sobre como evitar as ameaças de segurança em vários níveis, inclusive em novas áreas como os micro serviços. O leitor aprenderá a proteger sua aplicação, independentemente de onde ela executar, seja no mais recente smartphone, seja em um desktop mais antigo.

O autor John Paul Mueller oferece conselhos específicos, bem como vários exemplos de programação segura para desenvolvedores com um bom conhecimento de CSS3, HTML5 e JavaScript. Em cinco seções distintas, este livro mostra como se proteger contra vírus, ataques DDoS, violações de segurança e outras intromissões sórdidas.
Aprenda a:

  • Criar um plano de segurança para sua empresa que leve em consideração os dispositivos mais recentes e as necessidades dos usuários.
  • Desenvolver interfaces seguras e incorporar códigos de terceiros de bibliotecas, APIs e micro serviços, com segurança.
  • Usar técnicas de sandboxing, técnicas de testes internos e de terceiros e pensar como um hacker.
  • Implementar um ciclo de manutenção determinando quando e como atualizar o software de sua aplicação.
  • Usar técnicas para monitorar ameaças de segurança com eficiência bem como requisitos de treinamento que sua empresa possa usar.

Sobre o autor

John Paul Mueller é revisor técnico e autor freelance; já escreveu sobre assuntos que variam de gerenciamento de banco de dados a programação pura e de redes a inteligência artificial. É autor de 99 livros técnicos, incluindo Professional Windows 7 Development Guide (Wrox) e Start Here! Learn Microsoft Visual C# 2010 (Microsoft Press). Você pode entrar em contato com John em [email protected].

You-are-being-watched-620-by-338

Câmera IP com Webcam e Motion

O Motion é um programa que monitora o sinal de câmeras e permite fazer detecção de movimento. É uma ferramenta de grande utilidade para quem deseja fazer streamming de vídeo, mais precisamente criar uma câmera IP.

Escrito em C e disponível para várias distribuições Linux, fazendo uso da interface video4linux, permite a captura de jpeg, ppm e mpeg com um baixo consumo de memória.

As câmeras IPs ganharam grande destaque pela sua facilidade de uso, e preço relativamente acessível. Hoje é simples monitorar a sua casa e enviar imagens para o seu smartphone quando algum movimento for detectado.

(mais…)

firefox-logo.bee1d85af18f

Firefox 38 adiciona suporte a imagens responsivas e Ruby annotations

A nova atualização do Mozilla Firefox está sendo liberada hoje (12/05), e traz novas funcionalidades como:

    • Suporte a imagens responsivas pelo atributo img
    • Suporte a WebSockets na thread Web Worker, esta sendo separada a thread da interface
    • Suporte a Ruby Annotation Markup
    • Novas preferências baseadas em abas
    • Suporte a renegociação e multi-stream para WebRTC
    • vários outros

Enquanto o Firefox 38 não é oficialmente anunciado, você pode encontrar os arquivos no FTP da Mozilla. Para saber mais sobre as novas funcionalidades, veja o blog Mozilla Hacks e na página Mozilla Developer.

Via Phoronix

Laravel 5

Laravel 5 do começo ao fim [parte 4]

Neste post veremos uma peça fundamental de um workflow que tento sempre seguir, o famoso “TDD”, que em tradução livre ficaria algo como “Desenvolvimento Orientado a Testes”, que seria a parte de teste com Laravel 5, caso não tenha visto, veja outras partes dessa série nos links abaixo:

Algo que muitos programadores simplesmente ignoram, seja por preguiça ou qualquer outro motivo obscuro, é a parte de automação de testes. Muitos ainda utilizam a velha prática de testar na mão as funcionalidades do software, porém isto não é algo recomendado uma vez que existem grandes chances de você simplesmente esquecer de realizar algum teste importante de alguma funcionalidade, além de claro, esse processo é extremamente maçante e sinceramente  desnecessário ser realizado por mentes humanas.

O objetivo dos testes basicamente é encontrar falhas, através da execução de funções ou conjunto de funções do software, comparando os resultados obtidos das execuções dessas funções com resultados previamente conhecidos.

Existem diversas ferramentas disponíveis para a automação de testes no PHP, algumas possuem um nível extremamente detalhado de definição dos testes a serem realizados, outros são mais “simples” de serem usados, podemos citar aqui algumas como o PHPUnit, Behat, PHPSpec, entre outros.

O Laravel, assim como praticamente todo framework que se prese, prevê que o usuário programador teste seu programa. Para isto ele utiliza de fábrica basicamente duas ferramentas, o PHPUnit, muito comumente utilizado, e o PHPSpec, outra ferramenta muito boa que cheguei a utilizar bastante e possui um conceito muito interessante de teste, contudo por ser considerado um padrão no mundo PHP utilizaremos o PHPUnit, uma ferramenta para testes unitários.

Mãos na massa

Vamos primeiramente dar uma olhada nos arquivos de testes que já vêm junto com o Laravel.

Na raiz do projeto você verá que existe uma pasta chamada “tests”, como é de se esperar esta pasta contém todos os arquivos de testes do seu projeto.

Inicialmente você verá dentro desta pasta basicamente dois arquivos: “ExampleTest.php” e “TestCase.php”, abra o primeiro arquivo, você verá algo como o mostrado abaixo.

Como podemos ver, neste arquivo existe uma classe chamada “ExampleTest”, uma classe de exemplo que vem por padrão na instalação do laravel, essa classe estende de outra classe chamada “TestCase”, a classe da qual todos seus testes devem estender, que está no outro arquivo presente nesta mesma pasta.

Observação : Abaixo citarei alguns padrões utilizados pelo PHPUnit, para mais informações e maiores detalhes do framework de testes, visite sua página oficial aqui

Antes de mais nada, vamos esclarecer algo, uma boa prática para testes responde o que é provavelmente uma das dúvidas que fica nas pessoas sobre o tema, “O que afinal devo testar ?”, por via de regra você deve testar TODAS as funcionalidades do seu sistema para ter certeza que está tudo funcionando. Uma outra dúvida que também pode estar presente é como testar, por via de regra você deve tentar ao máximo simular o usuário, tente testar as operações da maneira como o usuário ou o programador as utilizaria e com os resultados que eles esperariam.

Continuando, na classe “ExampleTest”, existe uma função chamada “testBasicExample”, sem entrar em maiores detalhes do que está sendo feito por trás, apenas observando os nomes das funções usadas, podemos deduzir que na primeira linha está sendo feito uma chamada para a URL “/” com o método “call”, usando o verbo GET que vimos no post anterior, e logo após na linha seguinte está sendo verificado.

No PHPUnit, é uma boa prática, porém não é obrigatório criar uma classe de testes para cada classe do seu projeto, usando o sufixo “Test”, e todas as funções de teste ou tem o prefixo “test” no nome ou possuem a tag @test como comentário antes da função para serem reconhecidas pelo PHPUnit, além disso os métodos ou funções de verificação de valor tem o prefixo “assert” que em inglês significa “afirmar”, ou seja, você está afirmando que o valor de resultado da função passada como parâmetro corresponde ao outro valor passado como parâmetro, testar é isso, você passa uma função e compara se o valor retornado é o que você esperava.

Vamos alterar essa função para verificar se nossa rota de tarefas está funcionando, mude o código para o mostrado abaixo:

$response = $this->call('GET', '/tarefa');

Por fim, é necessário que o PHPUnit execute nossos testes, vá com o terminal na pasta raiz do projeto e execute o seguinte comando:

vendor/bin/phpunit

Basicamente o PHPUnit carrega as configurações do arquivo “phpunit.xml” na pasta raiz e procurará todos as funções de testes presentes na pasta “tests”, executando-as. O resultado mostrado esperado é que não ocorra nenhum erro, e portanto uma mensagem como “OK (1 tests, 1 assertions)” em verde deve ser mostrada.

Bem pessoal a parte de testes com o PHPUnit é bastante extensa, não espero abranger tudo num único post, contudo caso queiram mais detalhes peço que vejam a documentação oficial do PHPUnit, ela é bastante abrangente, e pelo amor das minhas linhas de código TESTEM SEUS PROGRAMAS!!!, até a próxima o.