Return-Path: X-Original-To: apmail-perl-modperl-archive@www.apache.org Delivered-To: apmail-perl-modperl-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 458F8174B4 for ; Tue, 7 Oct 2014 22:14:35 +0000 (UTC) Received: (qmail 58162 invoked by uid 500); 7 Oct 2014 22:14:34 -0000 Delivered-To: apmail-perl-modperl-archive@perl.apache.org Received: (qmail 58129 invoked by uid 500); 7 Oct 2014 22:14:34 -0000 Mailing-List: contact modperl-help@perl.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list modperl@perl.apache.org Received: (qmail 58097 invoked by uid 99); 7 Oct 2014 22:14:34 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Oct 2014 22:14:34 +0000 X-ASF-Spam-Status: No, hits=2.2 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [209.85.218.47] (HELO mail-oi0-f47.google.com) (209.85.218.47) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Oct 2014 22:14:29 +0000 Received: by mail-oi0-f47.google.com with SMTP id a141so5885716oig.20 for ; Tue, 07 Oct 2014 15:14:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=K+qhOytwLVUKiDblGsE+eRnwYh71nkUhPHzHtiP8F3g=; b=VY7mk50vLX2Xm1gi6l/TBYM6F2VsAOztZFcvX3WN65LFCK9tbZvpce7gd8J2Age+2H IwThSAY4vI9/O5CqOPGTgRyEYhB0ZRqU3uIeJZqKhTVjxmAy07+E9OWG/bcaAQUVJZVG YrjTnZPiIgZoBcgBJKe28a6WDXHEbseTyp76yVMye+dXMyh5rSdKeBoTUl2FU/Wue6sc ZWnmXXSTRSHhLzxEN0jP9UBoSdNCXBoJ2iJ94CCz/mI8jqYOj+AAZxW52PI8aJVnpo7V du3BBXmDX2tTDUhwXkgw3vqNip8AgI4SvYqAm5rvDDP+EiWixQiH3GHWvi/egk9NzWQM 0rAA== X-Gm-Message-State: ALoCoQkN5GDidpAsEhVlqgBEicjHKz/99mJFq97JSNb8VbZ4rS5n5MwCisd0jYVESInDJV1k+fer MIME-Version: 1.0 X-Received: by 10.60.93.165 with SMTP id cv5mr7635805oeb.17.1412720048773; Tue, 07 Oct 2014 15:14:08 -0700 (PDT) Received: by 10.202.213.84 with HTTP; Tue, 7 Oct 2014 15:14:08 -0700 (PDT) In-Reply-To: <20141007233157.24958387013fcd377994296a@wanadoo.fr> References: <0485FFA2-2D08-4CB1-8314-D668C336B8BA@hypercube-llc.com> <55EEF0B3C5BF2744B2248754D717EE4C28F48B6D@USASHEXMB03.LYV.LiveNation.com> <20141007233157.24958387013fcd377994296a@wanadoo.fr> Date: Tue, 7 Oct 2014 18:14:08 -0400 Message-ID: Subject: Re: beginning and testing From: John Dunlap To: Vincent Veyron Cc: Mark Hedges , "modperl@perl.apache.org" Content-Type: multipart/related; boundary=047d7b33d558ad332b0504dc8468 X-Virus-Checked: Checked by ClamAV on apache.org --047d7b33d558ad332b0504dc8468 Content-Type: multipart/alternative; boundary=047d7b33d558ad33280504dc8467 --047d7b33d558ad33280504dc8467 Content-Type: text/plain; charset=UTF-8 That is heavily dependent on the architecture of your application but, architecture permitting, this is why you need to have different types of tests. In my case, I work with a SOFEA(Service Oriented Front End Architecture) which is the formal way of saying that I have a html/javascript front end which talks to HTTP/REST/JSON web services via Ajax calls which originate from a web browser. In this kind of architecture, for example, you can create integration tests which test the end-to-end behavior of your system between the web service client(a web browser in this case but could just as easily be an iphone) and all of the server-side components all the way down to your data store(usually a relational database) and back again. Unit tests, by contrast, are generally for testing isolated behavior within a small subset of your code base. Automated user interface testing, by contrast, is an entirely different(and very complicated) topic requiring entirely different tools. This kind of testing isn't simply concerned with the UI behaving correctly but also with verifying that it behaves correctly in as many browsers, operating systems, and browser versions as possible. I've previously used tools like Selenium for this kind of testing with great success. On Tue, Oct 7, 2014 at 5:31 PM, Vincent Veyron wrote: > On Tue, 7 Oct 2014 17:42:56 +0000 > Mark Hedges wrote: > > > > I have found Apache::Test extremely useful for testing web > applications. Don't let anyone tell you to run manual tests, that is a > recipe for confusion and error as you try to modify code later. > > > > How do you use that with a web application that is a work in progress, > though? > > I write mod_perl modules that output html forms. One has to write a test > that sends requests and compares the responses with an expected result. But > that result changes every time I make the slightest change in code, which > happens quite often and in multiple places. So maintaining the test suite > on top of the code base seems appealing in theory, but I found it > overwhelming in practice. > > I can see it happening for a well matured app that changes rarely, but for > a new one? > > > -- > Regards, Vincent Veyron > > https://libremen.com/ > Legal case, contract and insurance claim management software > -- John Dunlap *CTO | Lariat * *Direct:* *john@lariat.co * *Customer Service:* 877.268.6667 support@lariat.co --047d7b33d558ad33280504dc8467 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
That is heavily dependent on the architecture of your appl= ication but, architecture permitting, this is why you need to have differen= t types of tests. In my case, I work with a SOFEA(Service Oriented Front En= d Architecture) which is the formal way of saying that I have a html/javasc= ript front end which talks to HTTP/REST/JSON web services via Ajax calls wh= ich originate from a web browser. In this kind of architecture, for example= , you can create integration tests which test the end-to-end behavior of yo= ur system between the web service client(a web browser in this case but cou= ld just as easily be an iphone) and all of the server-side components all t= he way down to your data store(usually a relational database) and back agai= n. Unit tests, by contrast, are generally for testing isolated behavior wit= hin a small subset of your code base. Automated user interface testing, by = contrast, is an entirely different(and very complicated) topic requiring en= tirely different tools. This kind of testing isn't simply concerned wit= h the UI behaving correctly but also with verifying that it behaves correct= ly in as many browsers, operating systems, and browser versions as possible= . I've previously used tools like Selenium for this kind of testing wit= h great success.

On Tue, Oct 7, 2014 at 5:31 PM, Vincent Veyron <<= a href=3D"mailto:vv.lists@wanadoo.fr" target=3D"_blank">vv.lists@wanadoo.fr= > wrote:
On Tue, 7 Oct 2014= 17:42:56 +0000
Mark Hedges <Mark.Hedges@Ticketmaster.com> wrote:
>
> I have found Apache::Test extremely useful for testing web application= s.=C2=A0 Don't let anyone tell you to run manual tests, that is a recip= e for confusion and error as you try to modify code later.
>

How do you use that with a web application that is a work in progress, thou= gh?

I write mod_perl modules that output html forms. One has to write a test th= at sends requests and compares the responses with an expected result. But t= hat result changes every time I make the slightest change in code, which ha= ppens quite often and in multiple places. So maintaining the test suite on = top of the code base seems appealing in theory, but I found it overwhelming= in practice.

I can see it happening for a well matured app that changes rarely, but for = a new one?


--
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Regards,= Vincent Veyron

https://libremen.com/
Legal case, contract and insurance claim management software



--
--047d7b33d558ad33280504dc8467-- --047d7b33d558ad332b0504dc8468 Content-Type: image/png; name="100x60.png" Content-Disposition: inline; filename="100x60.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_hwm90qu91_146b4d583171a8e6 iVBORw0KGgoAAAANSUhEUgAAAGQAAAA8CAYAAACQPx/OAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz AAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAffSURB VHic7Zx/cFTVFcc/5+6+TQJECVZpBUZERmcQpWKnSrV2tDOdgUl/hLC0ZBcqpdmo1VpApTNiFVtb i6MRY0WSYFAI2izp0jqd0hla+4cjVloGOoIULVOwPyydseVHDHlv953+QQPZ3bfJ5seG98f7zOzM 23PuPffsft+779y7LxFVJcA/mPOdQEA2gSA+IxDEZwSC+IxAEJ8RCOIzAkF8RiCIzwgE8RmBID4j EMRnBIL4jEAQnxF2WuM35hqtC+3dRDsy5yOhkcbeEJ8hIS7oa7Mc/TN3tv+nFON1dnZenRap7Gsz mczb0Wj0VDH9w6q6K8/aNbYK+O/IpHh+UaPPoXyur80OaU0EtpdiPBfZaFRuyLKFQnOAN4vpH0xZ PiMQxGcEgviMURUkmUxOSiaTFaM5pjE8oK7O7fuy3fAbo5lDLsnkL6YX8oVHI4FNmzaVj7tg/H2Y 0HdxM9OB7tEYF8Ba1v5Wrq1stAYvhGSakttSGTfEiq/W1BzKcvU01+U95RCxIlXc3jYiVda2bamo Ck8AlwGo8BI5ghgl7ar+AzFHEfeoZDKHotHoB3nBmuIX9JSzNqsv6lj17ffQuLDCHmetRJiH8gnQ tkj91kd7WupWgLkyq48r662Gzft6WuLVQPXAn0JVkGMietRVjhDmcNnS9sNeLZM/S/0B5frs7qTU cKz3rSjzgCmAoyrPiDrfj0ajx6GEV0gyuf2TGF2HcEtfuyhLctsqICJnjlTAhNPJztQz9unyNbHY 3BO97bpC9hgLqyGnb09326K1oXHWa8AV9J5ewrT/H3xJ0KyyV8XdAewT1U8hZMUrjKIKApAGuzWW zITclRVLX34/p1n+dyrUiPfDPZaIrkTCizs6U6vfeftPG0tyD0kmU3MwuguyxRgEYWBFpPz0gVQq ddFAjUOO+QlwxRDHGhpKNJQ2B50Ni2eNQLRLBJqvnnltY0kEiUZrdhnca1F+OcxQkzIuTw7Qpgzh i8McZ6iM0ZC7HkSGGed9RL+2oLbm3pJNWbW1te8C1du2bZ+roo3AVWc8+qyIdBUbRxVNJpMX9s6x HmRQfpDfkb0Dx9Y3jci6ItIIKUwGPg9kbYugzHGaFy2zErSeeeuuMmqq+okVUeF+YCbQraprRTM/ jkaj3TAKVdaCBV/5VXNz886qiy6+B3gYN/PYAq8b9tBJRxLtjwylY1nD1h3AjmLb97TFpkmancDl fe165gptBVhYW/vrgeIkt6UWYXgnhN4/v3b+kb6+USl7E4mEAzyVSqW2HD/ZdaLfxk3zyqicmL1W +agrzV0dRW3OlZKype2H7da676GyOcuhMqX30GlePDtjsjczy8PhvVlVq6YbovOjR73GGBVBeqmp qTk2UJueigl3imM3ZhmtyBsRuKlkiQ0CwbynZJdMKkw+d6zPGdWszcXT6fSt5fC73vfRqLcYMEqC 9DTHvwBaK8J1aPbZk4sRqvIqRNWSru7tjUtmipv5hitcLy4T+20slOebuJg1t4Z5+LX0cHPxFKRH 7QllI7H9vmaNcS499JQI9561DVCPeJbroiXb4nGa6xoQeVqhXJQB8yvIZVPDgKcgBndCsWEMHtsY 4uSsNIeIc+m7CaWPGD7D2Rj7tIqsh/yzfqgIbv62kFv892kQj/JQ8lfTg+aFZZWK/rCAtwvk994v jhToM+KoK414XxMZYE+B/Pb3H1X25ZtYSOPCoqbdsMBuhTk59mqnOf51K7HlxWKCeJFOd89CJK8e F9WnLSofJLHhI69+Pa3x74hqo5dvRGmaV0Z51Q25ZoGdVtipY2nHv726Oa3xGz1/ZT0XYI/HvDvd GWs9YcHdA6VlFN3t5VDRNqc1to6meL834UKokRkeZteCxwqJMZrYFeOvAkK59owrjxcSoxhU9Y+e duFbdkvs1e62RVO8/L2EIyfTnfY46yHgyhyfqPJtu1zvpiV2EPQ9KLBFloMroeVG8VqNG1vMZyOQ KiZOKVHX7RLJ0wNjuAX4zVDjRuq37rdbYj8Hvuzhrg6lTbXdEvsryH4lvaKs/pWs7fcwyzu6zYa6 210jr+P9g5UBZoDnGe9JSDOPKLrXe3rWrXZr7FVcDnj1FSHvKZhSUJb46WG7pe4E5Jbhutppid2s yOt4/AGmCpMHKsTsTChhhTI3CXysQJOpoFONhPO2fMIA4Yatu+zW+I9QfbCYD1MMkfqXDzgtdb9V uC3HVY4SHXJ5OWKoQt3zIA/kOMyZnPU2rxwLpn3yX2fFG3fHS8fslngCNInHtNgfZ6+IyDe3rAYW AR8OJkBhVNOZ8BKBAVfn54vI+PRDwJ4RCVY5MUurSP2WlBg+AxwcTJisKSpS3/5KWs1MVLYAfxtu jhV3vPh323FmUaJnoIZNtMOOnHJuFtEnAXekw1vL2t+KnHJmg64FDlFg3duXvJX6mMTmfwKLAU49 v+QSS9KzjZGPDyoR45zdqxl7V8cHQE1Xa93EsMo1RmUSooOasFxCHwKM7eG4Y7E0x93/E5auPi5G NmV3sM5dFcs7ui24j6b4o+kxXKOuTmOQ0wwAY7scT/vyju4IrAJW8cKyyrRz+joVuRxRsUL2X3Kb S/CPA/xF8FyWzwgE8RmBID4jEMRnBIL4jEAQnxEI4jMCQXxGIIjPCATxGYEgPiMQxGcEgviMQBCf EQjiMwJBfEYgiM8IBPEZ/wONLbmWkFlv2gAAAABJRU5ErkJggg== --047d7b33d558ad332b0504dc8468--