TEAM International partners with Lulu Enterprises, Inc to support publishing on demand business.
The Client
Lulu is an online publishing company offing print on demand (POD) solutions that with a click of a mouse allow to create a book, publish it, distribute, sell and print to order.
Engagement
TEAM International is performing software development and quality assurance for Lulu. Our dedicated team is closely integrated with Lulus Research Triangle Park development team and collaborates on a number of shared projects. The application utilizes various technologies requiring highly skilled IT professionals with in-depth experience in web development (PHP, Java), PostgreSQL and Oracle database.
Methodology
Agile SCRUM, 2 week iterations. Roles: Product Owner, Developer and QA
Testing Process
QA/Testers get involved into the project from the Requirements Analysis stage. QA/Tester participates in all discussions with Developers and Product Owner to minimize the quantity and severity of design flaws as early as possible. This was QA/Tester understands all technical aspects of the system: DB scheme, backend services that power functionality and their interfaces, QA are not limited to black-box testing via UI.
Each iteration starts with the set of defined technical stories and each story is tested by QA. For backend white-box testing us used, for stories assuming UI systems testing is performed.
White-box Testing
Each Developer and QA/Tester has his/her own sandbox test environment on virtual machine. White-box testing is performed in the sandbox and begins when QA/Tester pulls the code from the source control repository, then builds and deploys the service. Using API interfaces a tester writes code in Python to test the service. QA/Tester starts using Fiddler (that allows to test the service via http) to get quick test results and then writes automation tests using Robot Framework that could be reused. QA/Terser verifies that data and test results are correctly stored or prepares the test data for testing directly in the database using the SQL console. White-box testing allows immediate bug identification therefore systems testing receives high quality components to build the system. During systems testing QA can easily identify the issue as they have the knowledge of the system structure.
Systems Testing
System testing is performed in the shared production-like test environment.
|
All the features are tested from the users perspective. QA is not allowed to prepare test data in the database or using API interfaces directly. All the testing is performed via UI using the Black-box approach. The aim is to validate all business scenarios defined in the high level user stories and ensure the proper functioning of the system. Tools used are browsers, bash console to start/stop jobs, database console in the read-only mode, Rally and Bugzilla.
Regression Testing
Regression testing is performed before the releases and its goal is to ensure we did not break anything that was working before. It is also performed in the shared production-like environment. While the tools and approach used are similar with System Testing, the testing target is different. During Systems testing we test new functionality and during regression testing we test legacy functionality.
Technologies and Tools
Rally (requirements management)
Wiki (requirements management)
Bugzilla (defect tracking)
Mercurial (source control)
Puppet (configuration management)
Maven (build system)
Robot Framework (test automation)
Fiddler (allows test web-services via http)
SQL console (to test DB)
Download the Case Study in PDF
|