Como são feitos os testes de software nas startups de tecnologia?


10

Eu já vi muitos artigos de pesquisa e blogs de tecnologia que apresentam os benefícios dos testes de software. Eu tenho convencido disso. Mas como todas as pesquisas de teste de software são conduzidas por grandes empresas de software, não acredito que elas realmente se apliquem a startups. Desde que as startups têm necessidades e restrições diferentes em comparação às grandes empresas de software.

Então, isso levantou as questões. As startups de tecnologia devem escrever testes automatizados? Em caso afirmativo, eles são feitos da mesma maneira que as grandes empresas de software? (teste de fumaça, teste de regressão, etc.) É melhor que você possa consultar alguns artigos de pesquisa sobre esse assunto ... desde que eu não consegui encontrar nenhum por conta própria.

(Devo admitir que, embora ainda esteja no início da minha carreira, mas ainda não vi uma startup que esteja seriamente comprometida em escrever testes automatizados)


5
Entrei em uma pequena startup de 10 anos e fui o primeiro a adicionar testes que são executados à noite. Não porque eu era um gênio, mas foi a primeira vez que o gerente (também programador) reconheceu que era hora de adicioná-los e que eles finalmente tinham mão de obra. Os estratagemas geralmente precisam sobreviver primeiro e aperfeiçoar depois. Concedido, essa inicialização foi iniciada por não técnicos, portanto esse recurso teve que ser "inserido".
Job

5
Startup de 10 anos ...?
pap

Dilbert disse : "Se as melhores práticas são adotadas por todos na indústria, as melhores práticas se tornam mediocridade". Eu acho que isso é meio verdade, heh.
Md_codes

Start-up com 10 anos de idade ... eles devem estar usando Java: design de 3 anos + desenvolvimento 7 :) apenas brincando (eu sou um desenvolvedor Java dev)
nuvio

Respostas:


11

Sempre há um conflito entre o que deve ser feito e o que realmente temos tempo. Sim, muitas startups renunciam ao desenvolvimento orientado a testes e testes automatizados para economizar um tempo para colocar um projeto em funcionamento.

Os sites de redes sociais e as empresas de aplicativos móveis são as grandes bolhas agora e são ferozmente competitivas. Às vezes, a diferença entre ir ao ar em 4 meses versus 5 meses significa que você perde.

O tempo de colocação no mercado é fundamental e, se o sucesso acontecer, é hora de escalar, e haverá tempo de sobra para refatorar o software não testado, que não vale a pena, em algo que vale a pena.


O tempo de lançamento no mercado é meio que um mito. Os participantes atrasados ​​em um mercado podem surpreender os players existentes: friendster> myspace> facebook.
Joeri Sebrechts

@JoeriSebrechts Eu li um artigo interessante sobre a progressão do software e como ele se relaciona com o sucesso dos que entram mais tarde. Existem variáveis ​​em jogo, o período de segurança para um participante tardio com uma solução semelhante é igual à quantidade de tempo que a base de usuários de um software pode transformar de Early Adopters em General Users. Solução semelhante, é claro, significa recursos que são semelhantes e não inovadores em comparação com o primeiro participante no mercado (por exemplo, o Facebook foi inovador em comparação ao MySpace). Quando uma massa crítica de Early Adopters é atingida, os usuários em geral começam a migrar.
maple_shaft

12

Teste de software não é uma religião. É apenas uma ideia muito boa.

Você diz que não tem mão de obra para escrever testes agora? OK, tudo bem. Daqui a seis semanas, você terá a mão de obra para encontrar o bug que está travando seu aplicativo, que seria encontrado imediatamente se você tivesse os testes adequados em prática?

Muitos testes podem atrasar o desenvolvimento. Muito pouco teste também pode retardá-lo. Você precisa encontrar o equilíbrio certo, e geralmente é difícil dizer onde está. E nada disso é específico para grandes ou pequenas empresas.


4

Por muitos anos, enquanto trabalhava em pequenas empresas e start-ups, fiquei com a má compreensão de que "não tinha tempo suficiente para escrever testes de unidade para o meu código" .

Quando escrevi testes, eles estavam inchados, coisas pesadas que só me incentivaram a pensar que só deveria escrever testes de unidade quando soubesse que eram necessários.

Recentemente, fui encorajado a usar o Test Driven Development e achei uma revelação completa .

Agora estou firmemente convencido de que "não tenho tempo para não escrever testes de unidade" .

Na minha experiência, desenvolvendo com testes em mente, você acaba com interfaces mais limpas, classes e módulos mais focados e, geralmente, mais código SOLID testável.

Toda vez que trabalho com código legado que não possui testes de unidade e preciso testar algo manualmente, fico pensando "isso seria muito mais rápido se esse código já tivesse testes de unidade" . Toda vez que tenho que tentar adicionar a funcionalidade de teste de unidade ao código com alto acoplamento, fico pensando "isso seria muito mais fácil se tivesse sido escrito de maneira desacoplada" .

Se há uma coisa que eu descobri ao longo dos anos, se você está trabalhando em uma empresa iniciante, precisa ser ágil , e não apenas no sentido da metodologia de desenvolvimento de software . Para mim, o TDD é uma ferramenta importante que permite iniciar e manter a agilidade .


1

Não se trata de quem deveria fazer testes de software. Testes de software são uma espécie de filosofia de desenvolvimento de software. Os testes de software estabelecem a base de uma boa qualidade de software e, em uma startup, a qualidade de software é um bônus quando a aquisição por uma grande empresa está chegando;)


1

As práticas recomendadas são de todo o setor, esteja você transformando a avó em um site ou criando o sistema de orientação para um satélite. Eles sempre devem ser seguidos por aqueles que querem se considerar profissionais, por isso são chamados de MELHORES práticas.


Você pode se surpreender ao saber que as práticas recomendadas não são de todo o setor. thedailywtf.com
Gary Willoughby

@Gary é mais um setor amplamente teórico, ou parte desse mundo utópico, em que os projetos têm cronogramas realistas e o html tem significado semântico e os gerentes admitem que não possuem conhecimento técnico que os ajudaria a tomar melhores decisões ...
Ryathal

"Práticas recomendadas" geralmente significa fazer coisas como todo mundo faz, produzindo um resultado médio. A empresa média estabelecida se sai razoavelmente bem, mas a startup média de tecnologia não chega longe o suficiente para cair espetacularmente.
David Thornley

11
@DavidThornley - Não, acho que "melhores práticas" é o que a maioria das pessoas acredita que deveria fazer, independentemente de terem tempo, energia ou aprovação da gerência para fazê-lo. * 8 ')
Mark Booth

@ Mark Booth: Normalmente, quando ouvi a frase, significa o que eu disse. YMMV, é claro. No entanto, Ryathal se refere a um mundo em que os projetos têm cronogramas realistas, e isso não é necessariamente possível nos negócios. O lançamento de um produto com dois meses de atraso pode ser irrelevante ou fatal (principalmente para uma startup que pode estar correndo o risco de ficar sem dinheiro) e, irritantemente, muitas vezes há um forte argumento comercial para conseguir algo que funcione mais rápido o mais rápido possível. Acho difícil acreditar em "melhores práticas" que podem condenar uma empresa.
David Thornley

1

Sim, as startups às vezes cortam cantos e não implementam testes adequados. Às vezes, isso é apropriado (para projetos pequenos o suficiente ou quando tempo / dinheiro são críticos)

Isso não é exclusivo para startups. Um de nossos fornecedores contratados de TI ainda possui um ambiente de teste. Tudo é feito diretamente para viver e esta é uma grande empresa multinacional de software (assustadora!)


1

Eles deveriam? Sim. Eles fazem isso na prática, não com a frequência que deveriam.

O motivo mais comum é a falta de recursos, que inclui o tempo do desenvolvedor, o custo da contratação de um testador dedicado ou em período parcial, o custo da configuração de um ambiente de teste e assim por diante. Você pode até encontrar essas desculpas em grandes configurações corporativas, bem como em pequenas empresas iniciantes.

Observando de outra maneira, o teste é uma das coisas mais fáceis de cortar em um cronograma de desenvolvimento, especialmente um com pressão de tempo muito apertada e / ou pressão de custo para produzir resultados visíveis. Juntamente com o trabalho de design detalhado, ele é considerado 'fofo' por muitos gerentes e o primeiro lugar que eles dizem "cortá-lo para que possamos fazer nosso cronograma e orçamento funcionarem", seguido por "Por que você não está codificando?".

Em algumas empresas, haverá alguém que faz testes por push. Normalmente, este será o desenvolvedor contratado e, em geral, será alguém com experiência e provavelmente alguém com algum tipo de participação financeira na empresa. Uma empresa que começa com esse "DNA" provavelmente fará testes desde o início.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.