Loading...
Answers
MenuI need advice on developing a software testing strategy quickly?
Anyone have advice on developing a testing strategy that covers realistic production scenarios? I find unit tests to be fast but not very realistic, and functional tests to be realistic but slow and brittle. Anyone have a happy medium? I'm working on a systems integration project and we're leaning on BDD with Selenium, but I'd rather know my options. Maybe a mix?
Answers
I'd recommend looking into these options:
https://www.fiverr.com/
(do a search for QA)
https://www.reddit.com/r/slavelabour/
(e.g. pay $1 per bug committed to Trello)
If you'd like to discuss managing the software testing in more detail in relation to your specific product let me know,
best,
Lee
Yes, there's a lot we can discuss.
We internally use BDD tests (Gherkin for user stories), coupled with Selenium via CoyPu wrapped around any mock-up output (in our case, Indigo Studio).
You can take a look at an example from a while ago on our YouTube Channel (Axelisys Wonder), specifically at:
https://www.youtube.com/watch?v=ZWeC56bL3Oc&list=UUdTOmUegcjXIPtZt2sVutRQ&index=11
What we typically do is:
1. Sit together with the business, BA and a Dev to develop user stories representing customer journeys using "As a... I want... So that..." often in conjunction with mock-up web pages which are then changed into static HTML pages.
2. Run through the primary scenario and develop the "Given... When... Then" statements.
3. Commit that to your Version Control system ("What?")
4. At this point, the devs or a DiT (Developer in Test - if your organisation uses that) can pull it out and wrap the mock-up in CoyPu/Selenium with references to the appropriate elements. The behaviour of the mock-up should represent the user journey. Hence the BDD test should use the same data as the mock-up did. However...
The maximum number of tests should be 2 to the power of the number of "Given" "Ands". So if you have
"GIVEN I am 17 AND I have a driving license"
This counts as 2 test variates and as such, creates upto 4 test cases.
5. As the devs work through the process, they fill out the mock-ups and push data back through the layers (perhaps walking the skeleton for the primary scenario) and filling in any data persistence layers etc. as they go. The very same tests are used to regress existing functionality too.
So the test strategy is basically to make sure you have covered as much of the valuable journey as possible (all primary scenarios/happy paths and the most valuable secondary scenarios, as long as TDD level tests can adequately cover the rest).
How do you know what is adequate? I'll direct you to a couple of articles.
Feel free to arrange a call if you need more information.
http://goadingtheitgeek.blogspot.co.uk/2015/02/code-coverage-metrics-cyclocmatic.html
http://goadingtheitgeek.blogspot.co.uk/2014/09/going-from-acceptance-tests-to-code.html
Best of luck!
There are several options you can consider, some of them have been mentioned by other experts here. I have been helping startups for the past 10 years developing executable business and marketing plans as well software customization and applications development.
If you are paying for the premium access for example you are simply still only getting a tool that extends as far as your time and skill set allow. What you could do instead is also consider another development team whom you can partner with and allocate your budgets to them to do the testing while also providing you with their expertise in software development and customization for various interfaces they can run your tests as fix or provide direct solutions. Companies like www.BetaBulls.com for example can help you with services like that and maybe even fix any errors.
You're absolutely correct in the sense that there are certainly development costs (in terms of both development time and dollars) associated with the available testing strategies. In general, BDD with Selenium should produce outcomes of sufficient quality for you.
Depending on the purpose of the underlying system and how critical it is relative to operations, other additional techniques may be advisable (such as Test Driven Development/TDD or Unit testing) in order to assure adequate coverage of critical core components.
At FarShore, nearly 20% of our staff is tasked with QA testing exclusively, so we are tackling these exact type of questions every day. We usually advise a review the system's purpose, scale, anticipated rate of change for that system's code base, budget and based on that review, recommend a testing strategy that fits best for the parameters provided.
Happy to connect and offer additional insights or help with any guidance I can.
Related Questions
-
Is it ok to use Javascript / Angular for a mobile app that uses a wearable? Is it fast enough?
If your goal is a proof of concept, use what you know and don't stress about performance yet. Other options for using a web stack to build native apps include Steroids (native transitions with web views) and React Native. From what you're describing, it doesn't seem like you'll hit any major challenges in the alpha stages. Once the project grows legs, it would probably be worth consulting with an expert to dig deeper into the architecture and requirements to make a more informed judgment. Good luck!JL
-
How do build a empowered and motivated engineering team?
I am assuming your question is more pertaining to empowering and motivating (rather than hiring). I can outline some of the practices I have seen really result in high motivation and sense of ownership among engineering teams: * Empathize - Your engineering team will work well and be more motivated if they see you as one of them rather than a person who doesn't understand their function. Show your geeky side to them, and show that you understand their thought process and drivers. * Pick their brain on big and small decisions (roadmap, usability, whatever it is) - Product teams value being heard. The more you position yourself as someone who is WANTS to listen, is keen to have their inputs, you will be surprised at how involved they can get, and also how you can actually tap into a lot of smart ideas/thoughts from them that you can develop on. * Take care to explain - show how you arrive at decisions. Share your research, competitive analysis, and even your thought process on arriving at a feature set or list of things for a release. Its stuff you would have worked on anyway - so no harm sharing with more eyes! * Share customer feedback - nothing motivates your engineers than a positive interaction with a customer. Get them to see customer feedback. Have them sit in and observe some of the usability studies. (B2B - have them see you do some demos or do a successful sales pitch) * Send out interesting articles, insights, business and tech articles with your comments/highlights to them on a regular basis (maybe twice a week?) - maybe even some analysis you did on competition or customer feedback * Engineers like working with people they feel are competent and complement the work they are doing to build a great product. So make sure they see how everyone else around them is also doing a good job and adding value and contributing to the success of the product. * Be transparent about the product/business - Make them feel they are responsible and involved in the business, not just technology. I've seen engineering teams happy about their annual goals having components relating to making revenues, keeping customers happy, or reducing costs. If they are enthused about the business as a whole, they will be more motivated with their engineering efforts * Have a mix of little experiments, R&D, attending to engineering debt, in addition to bug fixes and new features that each engineer gets to spend some time on (based on their interest) * Finally get to know each of your engineers personally, and be aware of what their priorities are. Each of us has different motivations in life, so there is no silver bullet to motivate people. When they know you care for them, they are more motivated :).SG
-
What is the software development life cycle?
I hate to say it, but Google would have got you a much faster answer than this site. I just typed in "Software life cycle" into google, and there are many great articles.DF
-
How can I take my skills and experience in product development and turn them into a compelling offering to sell as a consultant?
Seems to me that versatility is actually your greater selling point. Yes, you could concentrate on 1 niche problem that you solve over and over again for various clients. Advantage: That streamlined approach would be efficient in terms of presentation and actual work load. Disadvantage: By promoting a very specific offering, you may be introducing yourself as the wrong tool for the job ... for most potential clients. If I stumble across you and find a landing page that stresses your ability to solve Problem X while I am dealing with Problem Y, then I assume you're less relevant than you might be. That does a disservice to your diverse skill set. You can marry the best of both worlds. Here's what I'd suggest. Clients will discover you both passively and as a result of active outreach. So 1. For your active marketing efforts, identify prospects where the client really needs you for Problem X, in which you're specializing. Introduce yourself as a specialist in Problem X (which is true). 2. For your more passive, less keyword-targeted online footprint, showcase your versatility rather than your specialization. That's also true. This way, you'll seem like a better fit for a wider group of potential clients. Instead of writing you off as a specialist, they'll consider engaging you as an IT "renaissance man". Narrow the focus of your presentation when you have narrowed your demographic. Widen that focus when the demographic is wider.JP
-
What is the best programming language for building multi-platform mobile software that is scalable?
I've been involved in several projects that hinged upon this question (generally start-ups or web+mobile apps), and it's not a clean or easy answer unfortunately! Plus every developer you talk to is going to try to sell you their services, but what you need is simply the truth! I'd suggest that you consider shifting your focus away from finding a best language. That sort of premise can eliminate options that are actually quite valid solutions. Keep in mind that any mobile app will require multiple languages working in harmony - all while used in a commercially consistent and standards-based manner. That's the part that determines your technical scalability! Almost every programming language can achieve this functionality with an experienced developer on your team. The best advice I can give you, is to consult with at least two people on this, and three if your app is os-specific. The most important insight will come from a "full stack" developer. One who's got a variety of enterprise experience, and can code at all levels of the stack. This person needs to have experience in leading a team of other developers, which forces the strategy of which technologies to use and why onto their plates daily. Secondly, you'll want to consult with a "front end" developer, who can tell you what's possible using advanced OOP JavaScript techniques (like Google's angular.js), because in an absurdly fast change over the past 3 years, much of the formerly back-end work has made it's way to the front-end, and is driven by JavaScript, predominantly JSON data, and awesome API's. The game has changed and the front-enders are the poor souls dealing with this rapid shift daily. To do this, they're also fantastic JavaScript programmers, which is a language that runs on all mobile devices and all browsers, too. Love it or hate it JavaScript is the most commonly used language in the world. Finally, if your app is OS-specific, you'll want to consult with a developer who works predominantly with the OS your app is built for. This person lets you know what's possible from the device POV, should know what stacks and JavaScript approaches can and can't be done on that OS, and how to leverage the resources of the device for your app as well as extend it's functionality. BONUS - loop back to the full stack developer to double-check the claims of the front-ender and the mobile developers. Always double check with your most senior programmer ;) All of these consults together in addition to your own research and due diligence will get you comfortable and allow you to navigate on this rather daunting but deeply important journey. There aren't any turn-key options. Instead it's a series of inter-connected modules driven by different languages, and all working in tandem. Every solution will have bugs, and no one group of technologies can do everything without proper developers. If you'd like to go further down the rabbit hole, then we should definitely set-up some time to speak. Otherwise, I wish you great luck in research and encourage you to learn as much as you can! :) It's going to seem hard, and might give you a headache here or there, but learn everything you can about how different technologies "talk" to each other, and then you will be able to build a map for keeping your app and business scalable regardless of the changing tides of technology!MM
the startups.com platform
Copyright © 2025 Startups.com. All rights reserved.